-
Notifications
You must be signed in to change notification settings - Fork 0
Project Convention
hyoguoo edited this page Apr 4, 2024
·
6 revisions
본 프로젝트 개발 진행 시 Task 관리, 작업 진행 플로우, 브랜치 규칙, 커밋 메시지 규칙, 코드 컨벤션 등 전반적인 프로젝트 컨벤션에 대한 내용을 정리한다.
Issue에 Task를 등록하고, 해당 Task에 GitHub Project를 지정하여 칸반 보드 형식으로 관리한다.
-
No Status
: 작업이 생성된 상태로, 빠르게 진행되지 않아도 되는 작업(=Pending
) -
Todo
: 작업이 진행되어야 하는 상태 -
In Progress
: 작업이 진행 중인 상태 -
Done
: 작업이 완료되어 Merge된 상태
본 프로젝트는 현재 구체적인 마감 일정이 있는 프로젝트가 아니기 때문에, 전체적인 작업 구분 및 진행 상황을 파악하기 위한 용도로 사용한다.
작업 진행은 크게 Isseu 생성
-> 작업 진행
-> PR 생성
-> 코드 리뷰
-> Merge
의 단계로 이루어지며, 자세한 내용은 아래와 같다.
- Issue 생성 및 프로젝트에 추가
-
Title
: 이슈 제목 -
Description
: 작업 리스트 -
Assignee
: 작업 담당자 지정 -
Label
: 작업의 종류에 맞게feat
,fix
,refactor
,docs
등 지정 -
Project
:Project
지정 -
Milestone
: 현재 진행 중인 마일스톤 지정
-
- Issue에 대한 브랜치 생성
-
#ISSUE_NUMBER
로 브랜치 생성
-
- 해당 브랜치에서 작업 진행
- 작업 완료 후 Pull Request 생성
-
Title
: 작업 제목(특별한 경우가 아니면 이슈 제목과 동일하게 작성) -
Description
: 작업 리스트 및 필요 시 참고할 내용 작성 -
Reviewer
: 팀원 전체 지정 -
Assignee
: 작업자 지정(페어 프로그래밍 시 페어도 함께 지정) -
Label
: 작업한 내용에 맞게feat
,fix
,refactor
,docs
등 지정 -
Project
: 지정 X -
Milestone
: 지정 X
-
- 코드 리뷰
- 리뷰어는 코드 리뷰 후
Approve
또는Request changes
선택 -
Request changes
선택 시, 작업자는 변경 사항 반영 후 재요청
- 리뷰어는 코드 리뷰 후
- Merge
- 브랜치 규칙에 설정된 Approve 조건이 충족되면 작업자가 Merge 진행
-
dev
브랜치인 경우Rebase Merge
,main
브랜치인 경우Create a merge commit
선택
기능 개발은 dev
브랜치에서 #ISSUE_NUMBER
로 브랜치를 생성하여 작업을 진행한다.
커밋 메시지는 TYPE #ISSUE_NUMBER: COMMIT_MESSAGE
형식으로 작성한다.(예시: feat #1: 위키 기능 추가
)
타입은 아래와 같이 구분한다.
Tag Name | Description |
---|---|
feat | 새로운 기능을 추가 |
mod | 기능 변경 |
fix | 버그 수정 |
refactor | 프로덕션 코드 리팩토링 |
docs | 문서 수정 |
test | 테스트 코드, 리펙토링 테스트 코드 추가, Production Code(실제로 사용하는 코드) 변경 없음 |
chore | 빌드 업무 수정, 패키지 매니저 수정, 패키지 관리자 구성 등 업데이트, Production Code 변경 없음, 필요한 주석 추가 및 변경 |
- 프로젝트 초기 작업 시 페어프로그래밍을 통한 코드 컨벤션 협의 및 적용
- IntelliJ SonarLint 플러그인 적용
- Google Java Style Guide 적용
- 그 외에 논의가 필요한 사항은 PR 혹은 코멘트를 통해 협의