API Route는 HTTP·업무·입출력 세 층으로 나눈다

라우트 파일을 얇게 유지하면 전송 형식, 업무 규칙, 외부 기술이 서로의 변경을 끌고 다니지 않는다.

app/api/.../route.ts외부 요청이 처음 들어오는 HTTP 경계
HTTP

Handler

method·session·schema를 해석하고 결과를 status로 변환

DTO

Validated input

parseUserInput을 통과한 UserInput DTO와 검증된 id만 전달

policy

Service

중복 확인·상태 전이·트랜잭션 같은 업무 규칙

I/O

Adapter

DB·파일·외부 API 세부사항을 포트 뒤에 숨김

핵심Service가 NextResponse나 SQL을 직접 알면 경계가 섞인다. Handler는 번역, Service는 정책, Adapter는 입출력에 집중한다.