이 문서는 frontend / backend 두 레포에 동일하게 넣어두세요.
이슈 → 브랜치 → 개발 → PR → 리뷰 → 머지
- 이슈 먼저 만들기 — 모든 작업은 이슈 생성으로 시작합니다.
- 이슈에서 브랜치를 따서 개발합니다.
- 작업이 끝나면 PR을 올리고, 해당 이슈를 연결합니다.
- 리뷰어 1명 승인 후 머지합니다.
- 개발을 시작하기 전에 먼저 이슈를 만듭니다. (기능·버그·문서 등 모든 작업)
- 이슈에는 무엇을, 왜 하는지 간단히 적습니다. 필요하면 체크리스트로 할 일을 나눕니다.
- 이슈 제목도 커밋처럼
종류: 내용형식을 권장합니다. (예:[FEATURE] 지역별 축제 목록 API) - 만들어진 이슈 번호(
#12등)를 브랜치·PR에서 참조합니다.
main은 항상 동작하는 상태로 유지합니다. 직접 push 하지 않고 PR로만 머지합니다.- 모든 작업은 이슈에서 출발해
main에서 새 브랜치를 따서 진행합니다. - 머지가 끝난 브랜치는 삭제합니다.
| 종류 | 용도 |
|---|---|
feat |
새 기능 |
fix |
버그 수정 |
refactor |
리팩터링 |
docs |
문서 |
chore |
설정·잡일 |
- 내용엔 이슈 번호만 무조건 붙입니다. 예:
feat/#12(이슈#12)
feat:새 기능fix:버그 수정docs:문서style:포맷·세미콜론 등 (동작 변화 없음)refactor:리팩터링test:테스트chore:빌드·설정
예시: feat: 시·군 클릭 시 세부지도로 이동
- 이슈를 먼저 만들었는지 확인합니다. (이슈 없는 PR은 지양합니다.)
- 작업 시작 전
main을 최신으로 당겨옵니다. (git pull origin main) - 이슈에서 브랜치를 따서 개발합니다.
- 큰 덩어리 대신 작은 단위로 자주 PR을 올립니다.
- PR 템플릿을 채우고, 본문에
Closes #12처럼 이슈를 연결합니다.Closes/Fixes/Resolves를 쓰면 머지 시 이슈가 자동으로 닫힙니다.
- 리뷰어 1명 승인 후 머지합니다.
- 머지 후 작업 브랜치를 삭제합니다. (이슈는 자동으로 닫힙니다.)
.env등 비밀값(TourAPI 키, JWT 시크릿, 스토리지 키)은 절대 커밋하지 않습니다.- 공유가 필요하면
.env.example에 변수 이름만 적습니다(값은 비워둠). - 작업 전 항상
main최신화 → 충돌을 작게 유지합니다.