Deploy-gate-1

이지예·2026년 8월 7일

개발

목록 보기
12/58

Deploy-gate 프로젝트 구조와 목적 이해

들어가며

이번에는 Deploy-gate 프로젝트를 분석하면서 전체적인 구조와 프로젝트가 해결하려는 문제부터 파악해보았다.

Deploy-gate는 CI/CD 환경에서 배포를 수행하기 전에 해당 사용자가 특정 Stack을 배포할 권한이 있는지 확인하고, 필요한 경우 다른 사용자의 승인을 받도록 하는 서비스다.

단순히 배포 요청을 받으면 바로 배포하는 것이 아니라 다음과 같은 과정을 거친다.

배포 요청
   ↓
Deploy-gate에 권한 확인
   ↓
사용자 + Stack 정책 확인
   ↓
권한 판단
   ├─ ALLOWED
   ├─ DENIED
   └─ PENDING

프로젝트 구조

코드를 살펴보면서 주요 패키지의 역할을 먼저 구분해보았다.

deploygate
├── controller
├── service
├── dao
├── entity
├── dto
├── policy
├── validation
└── config

각각의 역할은 대략 다음과 같이 이해했다.

  • controller: HTTP 요청을 받는 API 진입점
  • service: 실제 비즈니스 로직
  • dao: 데이터베이스 접근
  • entity: DB와 매핑되는 객체
  • dto: API 요청/응답 객체
  • policy: 승인 정책의 실제 판단
  • validation: 예외 처리
  • config: 애플리케이션 초기 설정

특히 이번 프로젝트에서는 policy가 별도의 패키지로 분리되어 있다는 점이 눈에 띄었다.

오늘 배운 점

기존 프로젝트를 분석할 때 처음부터 모든 코드를 읽기보다는

프로젝트 목적
→ 패키지 구조
→ 주요 API
→ 호출 흐름
→ 세부 코드

순서로 접근하는 것이 전체 구조를 이해하는 데 훨씬 효율적이라는 것을 알게 되었다.

앞으로는 Deploy-gate의 실제 요청이 Controller부터 Service, Repository, DB까지 어떻게 이동하는지 단계별로 분석해볼 예정이다.

profile
github: @dlwldP

0개의 댓글