[Devops] NCP Container Registry를 활용한 Frontend CI/CD 파이프라인 최적화#59
Merged
flowersayo merged 8 commits intodevfrom Jan 15, 2026
Merged
[Devops] NCP Container Registry를 활용한 Frontend CI/CD 파이프라인 최적화#59flowersayo merged 8 commits intodevfrom
flowersayo merged 8 commits intodevfrom
Conversation
- CD 워크플로우: SSH_PRIVATE_KEY 하나로 통합 (기존 3개 키 → 1개 키) - CICD_GUIDE.md: 공통 SSH 키 사용 가이드로 변경 - 필요한 Secrets 9개 → 7개로 감소 - SSH 키 생성 및 배포 가이드 개선 - frontend/README.md: Docker Compose 실행 방법 추가
- CI: PR의 target 브랜치(base_ref)와 비교하도록 변경 - feature->dev PR: dev 브랜치와 비교 - dev->main PR: main 브랜치와 비교 - 변경된 서비스만 정확하게 감지하여 CI 실행 - CD: SSH 키를 공통 키(SSH_PRIVATE_KEY)로 통합 - 필요한 Secrets: 9개 → 7개로 감소 - 관리 편의성 향상 - 문서 업데이트: - CICD_GUIDE.md: base 브랜치 비교 로직 설명 추가 - CICD_GUIDE.md: 공통 SSH 키 설정 가이드로 변경 - frontend/README.md: Docker Compose 실행 방법 추가
- detect-changes.sh: check_service_change 함수의 return 1이 set -e로 인해 스크립트 종료하는 문제 해결 - 모든 check_service_change 호출에 '|| true' 추가 - 개별 서비스 플래그를 변경 여부와 관계없이 항상 설정하도록 수정 - test-detect-changes.sh: 동일한 수정 적용 - useWaitingQueue.ts: axios를 lib/api.ts의 get 함수로 재변경
ParkTjgus
approved these changes
Jan 15, 2026
- Frontend는 GitHub Actions에서 이미지 빌드 후 NCP Registry에 푸시 - 프론트엔드 서버는 이미지만 pull하여 배포 (1시간 빌드 시간 해결) - Backend 서비스들은 기존대로 서버에서 직접 빌드 - 하이브리드 배포 전략으로 서비스 특성에 맞는 최적 방식 적용 변경사항: - CD 워크플로우에 Docker Buildx 및 Registry 푸시 단계 추가 - 빌드 캐시를 Registry에 저장하여 빌드 속도 개선 - Frontend 배포 방법을 README에 문서화 - CICD_GUIDE.md에 하이브리드 전략 및 NCP Registry 설정 가이드 추가
- dev→main PR의 CI 단계에서 Frontend 이미지를 NCP Registry에 푸시 - feature→dev PR에서는 Docker 빌드 테스트만 수행 (푸시 안 함) - CD 워크플로우는 CI가 빌드한 이미지를 pull하여 배포만 수행 - 이미지 빌드와 배포를 분리하여 검증된 아티팩트만 배포 장점: - CI 통과 = 이미지 검증 완료 - CD는 검증된 이미지만 배포하므로 안정성 향상 - dev→main PR에서 이미지를 미리 준비하여 배포 시간 단축
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🛠 개발 기능(작업 내용)
🧭 Summary
NCP Container Registry를 활용한 Frontend CI/CD 파이프라인 최적화 및 하이브리드 배포 전략 구현
🔗 Linked Issue
🛠 개발 기능(작업 내용)
1. Frontend NCP Container Registry 도입
2. CI/CD 워크플로우 분리 및 최적화
3. 하이브리드 배포 전략
4. CI/CD 문서화
5.기타
🧩 주요 고민과 해결 방법
1. 빌드 시간 최적화
고민: 소형 프론트엔드 서버에서 1시간 빌드 → 배포 병목
해결:
2. CI와 CD의 책임 분리
고민: CD에서 빌드하면 배포 시간이 길고, 빌드 실패 시 롤백 복잡
해결:
3. 하이브리드 전략 설계
고민: 모든 서비스를 Registry로 전환해야 하나?
해결:
4. 캐시 전략
고민: Registry 캐시가 없는 첫 실행은 느림
해결 방안 (향후 적용 고려):
🔍 리뷰 포인트
1. CI 워크플로우 (.github/workflows/ci.yml)
github.base_ref == 'main' && github.event_name == 'pull_request'2. CD 워크플로우 (.github/workflows/cd.yml)
${{ github.sha }}사용하여 커밋 추적3. 문서화
4. GitHub Secrets 추가 필요
NCP_REGISTRY_URL: NCP Container Registry URLNCP_REGISTRY_USERNAME: Registry 사용자명NCP_REGISTRY_PASSWORD: Registry 비밀번호 또는 Access Token📊 성능 개선 효과
NCP_REGISTRY_URL,NCP_REGISTRY_USERNAME,NCP_REGISTRY_PASSWORD)📝 후속 작업 (Optional)
📋 Code Review Priority Guideline