[Sprint 백엔드 초급 프로젝트 1일차] 프로젝트 시작 전, 주제부터 역할, 규칙까지
프로젝트 시작 전, 주제부터 역할, 규칙까지
백엔드 초기 프로젝트를 시작하면서 주제 선정, 팀 역할 분담, 일정 계획 등에 대한 가이드가 있었지만, 실제로 팀원분들과 대화를 나눠보니 고민할 부분이 많았다. 특히 API 문서와 기능 요구사항을 바탕으로 역할 분담을 어떻게 나눌지, 서로 다르게 사용하던 코드나 커밋 컨벤션을 어떤 기준에 맞출지가 큰 고민이었다.
아래에 오늘 논의한 결과를 정리해봤다.
주제 1. 프로젝트 주제 선정
하고 싶은 주제는 기업의 인사 데이터를 관리하는 “HR Bank”였다. 그 이유는 다른 외부적 요인 없이 기본적인 기능을 개발하고, 취업에 도움이 될만한 프로젝트라고 생각했기 때문이다.
하지만 논의 끝에 외부 Open API를 연동해 금융 지수 데이터를 처리해 볼 수 있는 Findex가 과반수로 선택되었다. 아마 Open API 연동이 매력적으로 다가왔던 것 같다.
주제 2. 일정 계획
[1단계] 설계 및 환경 구축 (3/11 ~ 3/12)
- 3/11(수): 요구사항 확정, ERD 설계, API 명세서 초안 작성. (가장 중요!)
- 3/12(목): 프로젝트 초기 설정(Spring Boot, JPA, Querydsl), DB 형상 관리(Flyway 또는 초기 스키마 공유), 공용 API 응답 규격 생성.
[2단계] 핵심 기능 개발 (3/13 ~ 3/17)
- 3/13(금): 각 담당 도메인별 기본 CRUD 구현. (팀원 A는 API 연동 클라이언트 제작 시작)
- 3/16(월): 핵심 비즈니스 로직 완성 (배치 스케줄러, No-Offset 페이징, 이동평균선 계산).
- 3/17(화): 중간 통합. 각자 만든 기능을 붙여보고 API 호출 테스트. (이때 보통 에러가 많이 터지니 하루를 통째로 비우세요.)
[3단계] 고도화 및 안정화 (3/18 ~ 3/19)
- 3/18(수): 예외 처리 강화, 성능 최적화(인덱스 확인), CSV Export 등 부가 기능 완성.
- 3/19(목): 최종 테스트 및 버그 수정. 발표용 데이터 미리 넣어두기(데이터가 없으면 시연이 힘듭니다).
[4단계] 마무리 및 발표 (3/20)
- 3/20(금): 최종 결과물 시연 및 발표.
주제 3. 역할 분담
API 명세서와 기능 요구사항을 바탕으로 도메인을 기준으로 삼아 역할을 나눴다. 지수 데이터 부분은 대시보드 기능도 포함되어 있어 한 사람만 맡기에 너무 방대하다고 생각되어서 2명으로 구성했다.
- 지수 정보: 곽인성
- 지수 데이터: 김현재, 박정현
- 연동 작업: 이승민
- 자동 연동 설정: 김혜성
주제 4. 팀 규칙 설정
개발 시작 전에 코드와 협업 규칙을 정하는 것이 중요하다고 생각했다. 그래서 패키지 구조, 메서드 명, 커밋 컨벤션, PR 규칙, Todo 규칙을 정리했다.
4-1. 코드 및 기술 규칙
- 패키지 분류는 도메인별로
- 메서드 명 컨벤션
- Entity 붙이지 않기
create,find,findAll,update,delete- 그 외 추가 기능은 재량으로 하면서, PR에서 설명
- 변수 명 컨벤션
- 영어로 번역했을 때의 앞글자
- 커밋 컨벤션
- 예시 : feat: find
- 종류
feat: 새로운 기능fix: 버그 수정docs: 문서만 변경style: 코드의 의미에는 영향을 주지 않는 변경 사항 (공백, 서식, 세미콜론 누락 등)refactor: 버그를 수정하거나 기능을 추가하지 않는 코드 변경perf: 성능을 향상시키는 코드 변경test: 누락된 테스트 추가chore: 빌드 과정이나 문서 생성 같은 보조 도구 및 라이브러리에 대한 변경 사항
4-2. PR 규칙
- PR이 Merge 되었을 때, 다같이.
-
PR Template
## 📝작업 내용 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능) ### 스크린샷 (선택) ## #️⃣연관된 이슈 ex) Closes #이슈번호, #이슈번호 ## 💬리뷰 요구사항(선택) 리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요
4-3. Todo 규칙
- GitHub Issues 이용
-
Todo template
title : [이름|날짜] 작업 요약 ## 어떤 기능인가요? > 추가하려는 기능에 대해 간결하게 설명해주세요 ## 작업 상세 내용 - [ ] TODO - [ ] TODO - [ ] TODO ## 참고할만한 자료(선택)
마무리
프로젝트를 생각하면 기능 구현에만 초점이 맞춰져 있었는데, 막상 시작해보니까 주제 선정부터 역할 분담, 팀 규칙 정리까지 많은 초기 준비가 필요하다는 것을 느꼇다.
이번 경험을 통해 초기 프로젝트 시작 전을 어떻게 준비하면 되는지 알게 되어 앞으로 좀 더 수월하게 준비할 수 있을 것 같다.
팀 Notion 주소
[SB10-3팀] Sprint Spring 백엔드 초급 팀 프로젝트
Leave a comment