JSON데이터 설계 패턴

API 응답 구조 설계

JSON API 응답에서 data, meta, error 같은 상위 구조를 어떻게 안정적으로 잡으면 좋은지와 확장성을 정리합니다.

마지막 수정 2026년 3월 20일

기본 패턴

json
{
  "data": {
    "id": 101,
    "title": "JSON Guide"
  },
  "meta": {
    "requestId": "req_123",
    "version": 1
  }
}

설명

  • API 응답은 대개 최상위를 object로 두는 편이 확장에 유리합니다. 나중에 meta, error, paging 같은 필드를 추가하기 쉽기 때문입니다.
  • 성공 데이터와 부가 정보를 분리하면 소비자가 필요한 부분을 안정적으로 찾을 수 있습니다.
  • 에러 응답도 string 하나보다 code, message, details처럼 구조화해 두는 편이 디버깅과 자동 처리에 유리합니다.
  • 배열을 최상위로 바로 반환하면 단기적으로는 간단하지만, 이후 메타데이터를 넣을 때 응답 구조를 깨야 할 수 있습니다.
  • 응답 구조는 "현재 필드 수"보다 "앞으로 무엇이 더 붙을 수 있는가"를 기준으로 잡는 편이 좋습니다.

짧은 예제

json
{
  "error": {
    "code": "INVALID_INPUT",
    "message": "title is required"
  }
}

빠른 정리

설계 요소장점
최상위 object확장성 확보
data 분리핵심 payload 접근이 쉬움
meta 분리버전, 페이지, requestId 추가 용이
구조화된 error디버깅과 자동 처리에 유리

주의할 점

응답 구조를 자주 바꾸면 소비자 코드가 빠르게 깨집니다. 최상위 구조는 가능한 일찍 안정화하고, 이후 확장은 필드 추가 중심으로 가는 편이 호환성 관리에 유리합니다.

참고 링크

2 sources