Skip to content

서비스 배포 프로세스

본 문서는 서비스 레포의 배포 프로세스를 설명합니다.

브랜치 구조

브랜치환경용도
feat/*Local기능 개발 (feat, fix, chore, design, refactor, test, docs...)
testTest 서버QA 진행
mainStage 서버E2E 테스트 (PR 리뷰 완료된 코드)
releaseProduction 서버실서버 배포

워크플로우

┌─────────────────────────────────────────────────────────────────────────┐
│                           Service Branching                             │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│   feature/*          test            main             release           │
│       │                │               │                  │             │
│       │    merge       │               │                  │             │
│       ├───────────────>│               │                  │             │
│       │                │               │                  │             │
│       │              [QA]              │                  │             │
│       │                │               │                  │             │
│       │                │      PR       │                  │             │
│       ├────────────────┼──────────────>│                  │             │
│       │                │               │                  │             │
│       │                │             [E2E]                │             │
│       │                │               │                  │             │
│       │                │               │        PR        │             │
│       │                │               ├─────────────────>│             │
│       │                │               │                  │             │
│       │                │               │              [Deploy]          │
│                                                                         │
│   ───────────────────────────────────────────────────────────────────>  │
│      Local           Test            Stage           Production         │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

상세 프로세스

1. Feature 브랜치 생성 및 개발

bash
# main에서 feature 브랜치 생성
git checkout main
git pull origin main
git checkout -b feat/my-feature

브랜치 네이밍 컨벤션:

  • feat/ - 새로운 기능
  • fix/ - 버그 수정
  • chore/ - 빌드, 설정 등 기타 작업
  • design/ - 디자인 관련 수정
  • refactor/ - 코드 리팩토링
  • test/ - 테스트 코드
  • docs/ - 문서 작성
  • ...

2. Test 브랜치에서 QA

개발 완료 후 test 브랜치에 머지하여 테스트 서버에 배포합니다. Vercel을 통해 자동 배포됩니다.

bash
git checkout test
git merge feat/my-feature
git push origin test

a. 테스트 서버에서 QA 진행


3. Main 브랜치로 PR 생성

QA 완료 후 main 브랜치를 향해 Pull Request를 생성합니다.

bash
# GitHub에서 PR 생성
# base: main <- compare: feat/my-feature

a. 코드 리뷰 요청
b. 리뷰어 피드백 반영
c. Approve 후 머지


4. E2E 테스트 (Stage)

main 브랜치에 머지되면 Stage 서버에 배포되고 E2E 테스트가 실행됩니다.

E2E 테스트 스케줄 (금요일 오후 제외)

  • 오전 10:30
  • 오후 15:30

5. Release 브랜치로 배포

E2E 테스트 성공 후 release 브랜치를 향해 PR을 생성합니다.

bash
# GitHub에서 PR 생성
# base: release <- compare: main
  • PR의 제목은 251223 오전 정기 배포 혹은 251223 오후 정기 배포와 같은 형태로 작성합니다.
  • 이 PR은 별도 리뷰 없이 머지 가능
  • 머지 시 Production 서버에 자동 배포

환경별 요약

항목FeatureTestMainRelease
환경LocalTest 서버Stage 서버Production
용도개발 중QAE2E 테스트실서버
배포-VercelVercelVercel