SPMS_API/SPMS.API/Documents/Workflow.md

4.2 KiB

1. 협업 & 작업 프로세스 (Workflow)

1.1. Tool Chain

1.2. Task LifeCycle

  • 모든 개발 작업은 YouTrack Issue 생성 없이는 시작할 수 없다.
  • 프로젝트 관리는 YouTrack에서, 형상관리는 Gitea에서 수행한다.

1. 이슈 등록 (Require)

  • 작업할 단위 기능을 해당하는 YouTrack에 등록한다. (Gitea Issue 미사용)

    요약 (Require)

    • 작업_제목 (예시: 로그인 API 구현)
    • 기존의 [분류] 에 해당하는 부분은 유형 필드로 대체하므로 적지 않는다.
    • 설명 (Require)
      • 현재 작업하는 내용에 대한 리스트 작성한다.
      • 그외의 기획서 링크가 있다면 본문에 첨부한다.

    필드 설정 (Require)

    • 다음 사용자 지정 필드는 반드시 선택한다.
      1. 파트 (Require): 작업할 서비스를 선택한다.
      2. 우선순위 (Require): 긴급/ 높음/ 보통/ 낮음/ 없음
      3. 유형 (Require): Feature(기능 개발)/ Bug(버그)/ Design(디자인)/ Refactor(리팩토링)/ Improvement(기능 개선)/ Chore(설정 관리)/ Documentation(문서 작업)
      4. 상태 (Require): 대기/ 진행중/ 확인 대기/ 완료
      5. Milestones
        • 배포 버전 관리 (Gitea의 Milestones 생성 불필요)
        • 형식: v1.0.0, MVP, CBT 등
      6. Sprints
        • 작업 기간 관리
        • 형식: 2026-01 Sprint 1 등
      7. 담당자
        • 개발 담당(복수 선택 가능)을 선택한다.
      • 이슈를 생성해줬다면 해당 이슈가 프로젝트에 맞게 애자일 보드에 배치다 잘 되었있는지 확인한다.

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 본문에 작업 내용과 테스트 결과를 요약한다.

5. Merge & Close

  • 코드 리뷰 (Self-Review 포함) 후 Merge 한다.
  • 자동 완료
  • 커밋 메시지에 특정 명령어를 사용했다면 Merge 시 YouTrack 이슈가 자동으로 해결됨 상태로 지정된 값 중 최상단 값의 상태로 변경된다.
  • 다른 상태로 변경하고 싶다면 이슈 ID 작성 부분에 해당 값의 영어 이름을 넣어준다.
    • 대기: Available
    • 진행 중: In Progress
    • 확인 대기: To Verify
    • 완료: Done
  • 수동 완료**:** 명령어를 누락했다면, 개발자가 직접 YouTrack에서 상태를 변경해야 한다.
  • YouTrack 애자일 보드는 '상태(State)' 필드에 따라 자동으로 카드가 이동하므로, 별도의 보드 관리가 필요 없다.