## 변경 사항
### 1. Green-Blue 배포 스크립트 (새로움: deploy_gb.sh)
taxbaik의 배포 전략을 QuantEngine에 맞춰 로컬화
**기능**:
- Phase 1: 새 버전(Green) 준비 (배포 중단 없음)
- Phase 2: 마이그레이션 사전 검증
- Phase 3: Nginx 설정 검증
- Phase 4: 데이터베이스 마이그레이션 준비 확인
- Phase 5: 원자적 전환 (Blue → Green)
- Phase 6: 서비스 재시작
- Phase 7: 이전 버전 정리 (최근 5개 유지)
**장점**:
- 배포 중단 최소화 (원자적 링크 전환)
- 즉각 롤백 가능 (이전 버전 유지)
- 단계별 검증으로 배포 안정성 ↑
### 2. 마이그레이션 검증 스크립트 (새로움: scripts/validate_migrations.sh)
배포 전 데이터베이스 상태 검증
**검증 항목**:
- 데이터베이스 연결 테스트
- 현재 마이그레이션 버전 확인
- DbUp 마이그레이션 파일 검증
- 필수 테이블 존재 확인
- 마이그레이션 호환성 (다운그레이드 방지)
- 마이그레이션 시간 예측
**효과**:
- 배포 전 데이터 무결성 보장
- 마이그레이션 실패 사전 차단
- 롤백 필요성 제거
### 3. deploy-prod.yml 통합
- 마이그레이션 검증을 배포 전에 실행
- Green-Blue 배포 스크립트 호출
- Nginx 설정 검증 추가
- 배포 이력 로깅
## 배포 흐름 (개선)
```yaml
1. 빌드 + 테스트
2. 패키지 생성 (tar.gz)
├─ deploy_gb.sh 포함
└─ scripts/validate_migrations.sh 포함
3. Pre-Deployment 검증
├─ DB 연결 테스트
├─ 마이그레이션 호환성 확인
└─ 필수 테이블 검증
4. Green-Blue 배포 (deploy_gb.sh)
├─ Green 버전 준비
├─ Nginx 설정 검증
├─ 원자적 링크 전환
├─ 서비스 재시작
├─ 자동 롤백 (실패 시)
└─ 이전 버전 정리
5. 헬스체크 (3회)
6. Nginx 재검증
```
## 아키텍처 원칙
1. **무중단 배포** (Shadow Copy + Green-Blue)
- 링크 전환 시에만 짧은 중단
- 롤백 즉시 가능
2. **사전 검증** (Pre-Deployment)
- 배포 전 모든 조건 확인
- 배포 중단 최소화
3. **자동 복구** (Auto-Rollback)
- 헬스체크 실패 시 이전 버전 복구
- Telegram 자동 알림
## 다음 단계 (Phase 2)
- build.yml 활성화 (빌드 분리)
- Gitea Releases 활용 (아티팩트 저장)
- E2E 테스트 추가 (로그인, API)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>