JSON데이터 설계 패턴

중첩 구조 설계

JSON 데이터를 너무 평평하게도 너무 깊게도 만들지 않기 위한 중첩 구조 설계 기준과 반복 데이터 표현 원칙을 정리합니다.

마지막 수정 2026년 3월 20일

기본 패턴

json
{
  "user": {
    "id": 1,
    "profile": {
      "name": "Kim",
      "emails": ["a@example.com", "b@example.com"]
    }
  }
}

설명

  • JSON 구조는 "이 값들이 함께 움직이는가"를 기준으로 중첩을 잡는 편이 좋습니다. 의미상 한 단위라면 object로 묶고, 반복 항목이면 array로 뽑습니다.
  • 너무 평평하면 이름 충돌이 늘고 필드 관계가 흐려집니다. 반대로 너무 깊으면 접근 경로가 길어지고 부분 갱신도 어려워집니다.
  • 반복 데이터는 보통 array로 두고, 각 항목은 같은 구조를 유지하는 편이 소비자와 검증기 모두에게 유리합니다.
  • key 이름에 의미를 과도하게 인코딩하기보다, 안정적인 필드 이름과 명시적 값을 쓰는 편이 좋습니다.
  • 장기적으로 유지할 JSON이라면 지금 편한 구조보다 "버전이 바뀌어도 덜 깨지는 구조"를 먼저 생각해야 합니다.

빠른 정리

설계 선택보통 잘 맞는 상황
object 중첩함께 속하는 필드 묶기
array반복되는 동일 항목
평평한 구조아주 작은 payload, 관계가 단순할 때
깊은 구조도메인 경계가 분명할 때만 제한적으로

주의할 점

JSON 구조를 한 번 공개하면 소비자가 그 모양에 의존하기 시작합니다. 지금은 편해 보여도 나중에 필드 추가, 선택적 값, 부분 응답이 들어올 때 어떤 구조가 더 덜 깨질지를 먼저 생각하는 편이 좋습니다.

참고 링크

3 sources