아키텍처
시스템 구성도
Section titled “시스템 구성도”┌──────────────┐ ┌──────────────┐ ┌──────────────┐│ GitHub │────→│ IDP Server │────→│ ArgoCD ││ (OAuth + │ │ (Hono API) │ │ (GitOps) ││ Webhook) │ └──────┬───────┘ └──────┬───────┘└──────────────┘ │ │ │ ▼┌──────────────┐ ┌──────┴───────┐ ┌──────────────┐│ Build Service│────→│ PostgreSQL │ │ Kubernetes ││ (GitHub │ │ (Drizzle) │ │ (Runtime) ││ Actions) │ └──────────────┘ └──────────────┘└──────────────┘ │ ▼┌──────────────┐│ ECR (AWS) ││ (Container ││ Registry) │└──────────────┘외부 서비스 역할
Section titled “외부 서비스 역할”| 서비스 | 역할 | 연결 방식 |
|---|---|---|
| GitHub OAuth | 사용자 인증 + 저장소 접근 | OAuth2 + App Installation |
| GitHub Actions | CI/CD 빌드 파이프라인 | Webhook 콜백 |
| GitHub Webhook | Push 이벤트 → 자동 배포 | Webhook |
| ArgoCD | GitOps 배포 오케스트레이션 | REST API + Token |
| AWS ECR | 컨테이너 이미지 레지스트리 | Docker Push |
| Kubernetes | 애플리케이션 런타임 | ArgoCD 간접 관리 |
| PostgreSQL | 데이터 영속화 | Drizzle ORM |
| 앱 | 방식 | 트리거 |
|---|---|---|
| Web | Vercel | Push to main |
| Server | Docker → ECR → ArgoCD → K8s | Push to apps/server/** |
| DB | Docker Compose (개발용) | 수동 |
# GitHubGITHUB_CLIENT_ID / GITHUB_CLIENT_SECRETGITHUB_APP_ID / GITHUB_APP_PRIVATE_KEYGITHUB_APP_SLUGGITHUB_BUILD_SERVICE_REPOGITHUB_WEBHOOK_SECRET
# ArgoCDARGOCD_HOST / ARGOCD_TOKENARGOCD_REPO_URL / ARGOCD_TARGET_REVISIONARGOCD_PROJECT / ARGOCD_DESTINATION_SERVER
# InfraECR_REGISTRYJWT_SECRET / WEBHOOK_SECRETDB_HOST / DB_PORT / DB_USER / DB_PASSWORD / DB_NAME