기본 패턴
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