..
Modern Beautiful API Response Design: Prologue
TOC
Overview
API 응답 시스템은 보통 프로젝트 후반에 뒤늦게 손보게 된다. 초반에는 기능 구현이 우선이라 예외 메시지, HTTP 상태 코드, 에러 JSON 포맷이 제각각으로 흩어지기 쉽다.
하지만 시스템이 커질수록 이 파편화는 곧 협업 비용이 된다. 프론트엔드는 매번 다른 에러 형태에 맞춰 분기해야 하고, 백엔드는 로그에서 의도된 비즈니스 실패와 실제 장애를 구분하느라 시간을 낭비한다.
견고하고 예측 가능한 API를 만들려면 세 가지를 함께 설계해야 한다.
- 예외를 어떤 기준으로 분류할 것인가
- 그 예외를 어떤 공통 응답 포맷으로 번역할 것인가
- 그 번역 책임을 아키텍처 어디에 둘 것인가
이 시리즈는 바로 이 세 질문에 답하기 위한 글이다. 첫 글에서는 전체 그림과 연재 순서를 정리하고, 이어지는 글들에서 예외 계약, 응답 포맷, 예외 핸들러의 위치를 순서대로 다룬다.
목표
이 시리즈가 해결하려는 핵심 목표는 아래와 같다.
- 예외 계약 정리: 예외를 계층별로 분류하고, 상태 범주와 식별 코드를 분리한다.
- 응답 포맷 통일: 내부 예외를 일관된 외부 API 응답으로 번역한다.
- 아키텍처 정합성 확보: 예외 번역 책임을 헥사고날 아키텍처에 맞는 위치에 둔다.
연재 계획
- [프롤로그] 왜 API 응답 설계를 별도로 다뤄야 하는가
현재 글 보기 - [1편] 서버 내부에서 실패를 어떻게 모델링할 것인가: Internal Exception Model
modern-beautiful-api-response-design-internal-exception-model.html - [2편] 클라이언트에게 어떤 에러 계약을 보여줄 것인가: External Error Contract
2026-03-17-modern-beautiful-api-response-design-external-error-contract.html - [3편] 내부 모델과 외부 계약을 어디서 연결할 것인가: Exception Translation Layer
2026-03-18-modern-beautiful-api-response-design-exception-translation-layer.html
약속 (Our Principle)
- 분리: 예외 분류, 응답 포맷, 번역 책임을 한 글에 모두 밀어 넣지 않는다.
- 명확성: 클라이언트와 서버가 모두 이해할 수 있는 안정적인 계약을 지향한다.
- 정합성: 단순한 코드 스타일이 아니라 아키텍처 책임 분리까지 함께 검토한다.
Next Step
다음 포스트에서는 Modern Beautiful API Response Design: Internal Exception Model 을 다룬다. 먼저 서버 내부에서 실패를 어떻게 모델링할지부터 정리한다.