기본 패턴
json
{
"nickname": null
}설명
null은 값이 "비어 있음"을 나타내는 명시적 값이고, missing은 key 자체가 존재하지 않는 상태입니다.- 읽는 쪽에서는 둘을 전혀 다르게 해석할 수 있습니다. 예를 들어
nickname: null은 "의도적으로 비움"일 수 있고, key 없음은 "아직 보내지 않음"일 수 있습니다. - JSON Schema의
required는 key 존재 여부를 다룹니다. key가 존재하지만 값이null인 경우는 별도type규칙으로 판단합니다. - PATCH API나 부분 업데이트에서는 null과 missing의 의미를 문서로 분명히 하지 않으면 데이터 삭제와 미수정이 섞이기 쉽습니다.
- 좋은 API는 "없음", "알 수 없음", "의도적 초기화"를 한 값으로 뭉개지 않고 필요하면 구분합니다.
짧은 예제
text
PATCH 해석 예
- { "nickname": null } -> 닉네임을 비운다
- { } -> 닉네임을 건드리지 않는다빠른 정리
| 상태 | 의미 예시 |
|---|---|
| key 없음 | 보내지 않음, 수정하지 않음 |
null | 명시적으로 값 없음 |
required 위반 | key 자체가 빠짐 |
type 위반 | key는 있지만 값 종류가 맞지 않음 |
주의할 점
null과 missing을 같은 의미로 문서화하지 않으면, 소비자마다 다른 해석을 하게 됩니다.
특히 업데이트 API와 설정 병합 로직에서는 이 차이를 먼저 정하고 예제로까지 남겨 두는 편이 좋습니다.
참고 링크
2 sources