NestJS · API Build

백엔드 API 구현의 수직 단면

NestJS API 구현은 controller부터 repository까지 파일을 채우는 일이 아니라, 하나의 사용자 행동이 검증·권한·도메인 처리·영속화·응답으로 닫히는 수직 단면을 완성하는 일이다.

01

계약 고정

엔드포인트 method, path, request DTO, response DTO, 오류 코드를 먼저 정한다.

02

입력 통과

ValidationPipe가 형식 오류를 걸러내고 controller는 사용자 컨텍스트를 service에 전달한다.

03

도메인 처리

service는 중복, 상태 전이, 권한 세부 조건을 확인한 뒤 transaction을 실행한다.

04

응답 변환

entity를 그대로 노출하지 않고 API 응답 모델로 매핑한다.

POST /orders
생성 명령 DTO 검증, 재고 확인, 주문 저장, 결제 준비
중복 제출 방지
GET /orders
목록 조회 사용자 범위, pagination, 정렬, projection
대량 조회 비용
PATCH /orders/:id
부분 변경 상태 전이 가능 여부와 소유권 확인
낙관적 잠금 가능
Mapper
응답 보호 비밀 필드와 내부 상태를 숨긴 DTO 반환
entity 직접 반환 금지

계층 책임 · 트랜잭션 · 오류 점검

계층 책임 controller가 비즈니스 규칙을 떠안지 않는다.
트랜잭션 여러 테이블 변경이 하나의 성공·실패 단위로 묶인다.
오류 Conflict와 BadRequest, Forbidden을 구분해 던진다.
응답 내부 entity shape 변화가 API 계약을 깨지 않는다.