✨ 기능 설명
2개 에이전트(Explore + architect) 교차 검증 결과, develop/main 배포가 3분+ 소요되는 가장 큰 원인이 EC2와 Docker 컨테이너 양쪽에서 동일 빌드 작업을 중복 실행하는 점으로 확인됨. CRITICAL 3건만 본 PR로 정리. 추가 최적화(BuildKit GHA cache 등)는 별도 이슈로 분리.
✨ 발견된 갭
1. 이중 빌드 (가장 큰 시간 낭비)
deploy-develop.yml:58 / deploy-main.yml:58의 "Install, Generate & Build on server" 단계가 컨테이너 빌드 직전에 동일 작업을 수행
- 그러나 EC2 빌드의 산출물(
dist/)은 컨테이너 빌드 시 어차피 버려짐 (Dockerfile 안에서 다시 pnpm install + prisma generate + tsc 수행)
- 결과: ~80초 + ~70초 = 1분 30초의 작업이 100% 중복
2. BuildKit 캐시 파괴
deploy-develop.yml:69의 docker system prune -af가 BuildKit layer 캐시까지 전부 삭제
- 매 배포가 cold build
3. .dockerignore 보강 필요
- 현재
.dockerignore에 .github, tests, *.md, *.log 등 누락
- 빌드 context 크기 불필요하게 큼
✨ 개발 목록
Commit 1 — 이중 빌드 제거 (deploy-develop / deploy-main)
Commit 2 — docker system prune 완화
Commit 3 — .dockerignore 보강
검증
✨ 별도 이슈로 분리 (HIGH 후속)
- GitHub Actions
docker/build-push-action@v5 + cache-from: type=gha 도입 (BuildKit layer 캐시 활용)
- TypeScript incremental 빌드 (효과 제한적이라 후순위)
✨ 기타 / 질문
- prisma migrate를 컨테이너 외부(EC2)에서 호출할지, 컨테이너 안에서 호출할지 — develop은
db push 매번이라 안전, main은 migrate deploy라 신중
- 추정 효과: 3분+ → 1분 30초 ~ 1분 50초 (
4050% 절감)
✨ 기능 설명
2개 에이전트(Explore + architect) 교차 검증 결과, develop/main 배포가 3분+ 소요되는 가장 큰 원인이 EC2와 Docker 컨테이너 양쪽에서 동일 빌드 작업을 중복 실행하는 점으로 확인됨. CRITICAL 3건만 본 PR로 정리. 추가 최적화(BuildKit GHA cache 등)는 별도 이슈로 분리.
✨ 발견된 갭
1. 이중 빌드 (가장 큰 시간 낭비)
deploy-develop.yml:58/deploy-main.yml:58의 "Install, Generate & Build on server" 단계가 컨테이너 빌드 직전에 동일 작업을 수행dist/)은 컨테이너 빌드 시 어차피 버려짐 (Dockerfile 안에서 다시pnpm install+prisma generate+tsc수행)2. BuildKit 캐시 파괴
deploy-develop.yml:69의docker system prune -af가 BuildKit layer 캐시까지 전부 삭제3.
.dockerignore보강 필요.dockerignore에.github,tests,*.md,*.log등 누락✨ 개발 목록
Commit 1 — 이중 빌드 제거 (deploy-develop / deploy-main)
deploy-develop.yml"Install, Generate & Build on server" 단계 삭제deploy-main.yml동일 단계 삭제prisma migrate deploy별도, develop은db push— 정합화 검토)node_modules가 최소한 prisma만 필요 — 컨테이너 안에서docker compose exec로 실행하는 안 검토Commit 2 —
docker system prune완화prune -af→prune -f --filter "until=168h"(7일 이상만 정리)Commit 3 —
.dockerignore보강.github,tests,docs/,*.md,*.log,*.test.ts,coverage/추가검증
✨ 별도 이슈로 분리 (HIGH 후속)
docker/build-push-action@v5+cache-from: type=gha도입 (BuildKit layer 캐시 활용)✨ 기타 / 질문
db push매번이라 안전, main은migrate deploy라 신중4050% 절감)