4.2 KiB
4.2 KiB
1. 협업 & 작업 프로세스 (Workflow)
1.1. Tool Chain
- 문서화 (Documentation)
- Google Documents : 구글 드라이브 링크
- Notion : 노션 SPMS 홈 링크
- 이슈 관리 (Issue Tracking)
- YouTrack : YouTrack SPMS 프로젝트 링크
- 코드 관리 (Code Repository)
- Gitea : Gitea SPMS 프로젝트 링크
- Commnication
- Discord
- Slack
1.2. Task LifeCycle
- 모든 개발 작업은 YouTrack Issue 생성 없이는 시작할 수 없다.
- 프로젝트 관리는 YouTrack에서, 형상관리는 Gitea에서 수행한다.
1. 이슈 등록 (Require)
-
작업할 단위 기능을 해당하는 YouTrack에 등록한다. (Gitea Issue 미사용)
요약 (Require)
작업_제목(예시: 로그인 API 구현)- 기존의
[분류]에 해당하는 부분은유형필드로 대체하므로 적지 않는다. - 설명 (Require)
- 현재 작업하는 내용에 대한 리스트 작성한다.
- 그외의 기획서 링크가 있다면 본문에 첨부한다.
필드 설정 (Require)
- 다음 사용자 지정 필드는 반드시 선택한다.
- 파트 (Require): 작업할 서비스를 선택한다.
- 우선순위 (Require): 긴급/ 높음/ 보통/ 낮음/ 없음
- 유형 (Require): Feature(기능 개발)/ Bug(버그)/ Design(디자인)/ Refactor(리팩토링)/ Improvement(기능 개선)/ Chore(설정 관리)/ Documentation(문서 작업)
- 상태 (Require): 대기/ 진행중/ 확인 대기/ 완료
- Milestones
- 배포 버전 관리 (Gitea의 Milestones 생성 불필요)
- 형식: v1.0.0, MVP, CBT 등
- Sprints
- 작업 기간 관리
- 형식: 2026-01 Sprint 1 등
- 담당자
- 개발 담당(복수 선택 가능)을 선택한다.
- 이슈를 생성해줬다면 해당 이슈가 프로젝트에 맞게 애자일 보드에 배치다 잘 되었있는지 확인한다.
2. Branch 생성
- 1에서 생성한 YouTrack Issue ID(
SPMS-nn) 확인후 브랜치 생성한다. - 형식:
모델/이슈ID-작업요약- 모델: Git 전략의 1. Branching Model (Git-Flow 방식) 참고
- 이슈ID: 이슈번호의 생략하지 않고 전부 작성한다.
- 작업 요약:
동사-명사형식으로 작성하며 영문으로 작성하고 둘간의 연결은-로 한다. - 예: feature/SPMS-1-login-api
3. 개발 & Commit
- 로컬에서 작업 후 커밋시, YouTrack 연동을 위해 메시지 규칙을 엄수한다.
- 커밋 메시지의 형태는 Conventional Commits 의 규칙을 따른다.
- Git 전략의 2. Commit Message 참고
- 단, YouTrack 에 따라서 형식은
타입: 설명 (이슈ID)로 지정한다.- 예: feat: 로그인 UI 작업 (Close SPMS-1)
4. Pull Request (PR)
- 작업 완료 후 develop 브랜치로 PR을 생성한다.
- PR은 피치못한 사정이 있지 않는 한 최소 1명 이상의 리뷰를 거쳐야 한다.
- PR 본문에 작업 내용과 테스트 결과를 요약한다.
- Git 전략의 3. Pull Request(PR) Message 참고
5. Merge & Close
- 코드 리뷰 (Self-Review 포함) 후 Merge 한다.
- 자동 완료
- 커밋 메시지에 특정 명령어를 사용했다면 Merge 시 YouTrack 이슈가 자동으로
해결됨상태로 지정된 값 중 최상단 값의 상태로 변경된다. - 다른 상태로 변경하고 싶다면 이슈 ID 작성 부분에 해당 값의 영어 이름을 넣어준다.
- 대기: Available
- 진행 중: In Progress
- 확인 대기: To Verify
- 완료: Done
- 수동 완료**:** 명령어를 누락했다면, 개발자가 직접 YouTrack에서 상태를 변경해야 한다.
- YouTrack 애자일 보드는 '상태(State)' 필드에 따라 자동으로 카드가 이동하므로, 별도의 보드 관리가 필요 없다.