CI/CD 파이프라인
브랜치 전략
main ───────────────────── 운영 배포 (prod)
└── develop ───────────── 통합 배포 (dev)
├── feat/#번호 ── 기능 개발
└── fix/#번호 ── 버그 수정
feat/*→develop: 리뷰 1명 이상 승인 후 머지develop→main: 릴리스 단위로 PR 생성
워크플로우 목록
| 파일 | 트리거 | 역할 |
|---|---|---|
deploy.yml | main push (Backend/** 변경) | 백엔드 배포 |
frontend-deploy.yml | develop push (Frontend/** 변경) | 프론트엔드 → Cloudflare Workers |
docs-deploy.yml | develop push (Frontend/apps/docs/** 변경) | 문서 → Cloudflare Pages |
update-api-client.yml | develop push (openapi.yaml 변경) | Zod 클라이언트 자동 생성 |
frontend-e2e.yml | PR · main push | Playwright E2E 테스트 |
chromatic.yml | PR · main push | Storybook Chromatic 퍼블리시 |
백엔드 배포 흐름
Backend/ 하위 파일이 변경된 커밋이 main에 push되면 자동 실행됩니다.
main 브랜치 push
│
├─ 1. Docker 멀티스테이지 빌드
│ (Java 17 + Gradle bootJar, 의존성 레이어 캐시)
│
├─ 2. DockerHub에 이미지 push
│
└─ 3. EC2 SSH 접속 → 배포
├── docker-compose pull (최신 이미지 수신)
├── docker-compose up -d --force-recreate
└── docker image prune (이전 이미지 정리)
OpenAPI 자동 동기화 흐름
openapi.yaml이 변경되면 프론트엔드 타입/클라이언트 코드를 자동으로 갱신합니다.
develop push (openapi.yaml 변경)
│
├─ 1. 백엔드 openapi.yaml 경로 자동 탐색
├─ 2. 이전 버전과 비교 → 변경된 API 목록 요약
├─ 3. openapi-ts로 Zod 클라이언트 코드 생성
└─ 4. 자동 PR 생성 → 리뷰 후 머지