Deploy-gate-3

이지예·2026년 8월 7일

개발

목록 보기
14/58

Controller에서 Service까지 요청 흐름 분석

오늘은 ApprovalController를 중심으로 API 요청이 실제로 어디까지 전달되는지 분석했다.

주요 API

Controller에는 다음과 같은 API가 정의되어 있다.

POST /approval/check
POST /approval/request
POST /approval/{id}/approve
POST /approval/{id}/reject
GET  /approval/history

각 API의 역할을 나눠보면 다음과 같다.

API역할
/approval/check현재 배포 가능한지 확인
/approval/request승인 요청 생성
/{id}/approve승인
/{id}/reject거부
/history승인 이력 조회

Controller의 역할

/approval/check를 보면 Controller에서 모든 판단을 수행하지 않는다.

ApprovalResult result =
    approvalCheckService.check(
        request.user(),
        request.stack(),
        request.action()
    );

Controller는 요청 데이터를 받아 Service에 넘긴다.

즉,

HTTP Request
    ↓
Controller
    ↓
Service
    ↓
Business Logic

이라는 구조다.

그리고 Service에서 반환된 ApprovalResult의 Decision에 따라 HTTP 상태 코드를 결정한다.

ALLOWED → 200 OK
PENDING → 202 Accepted
DENIED  → 403 Forbidden

오늘 배운 점

Controller에 모든 로직을 넣는 것이 아니라,

Controller
→ HTTP 처리

Service
→ 비즈니스 로직

으로 책임을 분리하는 이유를 실제 코드에서 확인할 수 있었다.

코드를 분석할 때도 Controller에서 끝내는 것이 아니라 해당 메서드가 호출하는 Service까지 따라가야 실제 기능을 이해할 수 있다는 점을 배웠다.

profile
github: @dlwldP

0개의 댓글