Framework/Spring

API 통신 시 null 값 처리: 포함 vs. 미포함의 장단점

chanyoun 2024. 7. 22. 12:37
API 통신시 값이 null 일때 해당 값을 응답 또는 요청에 포함시켜야하나?

API 통신 시 null 값 처리: 포함 vs. 미포함의 장단점

JSON 기반의 API 통신에서 값이 null일 경우 이를 요청/응답에 포함시켜야 하는지는 자주 논의되는 주제입니다. 이 글에서는 StackOverflow 토론 내용을 기반으로 정리해 보았습니다.

 

대형 플랫폼의 사례

isitworthtoexcludenullfields

StackOverflow에서 소개된 사례에 따르면, Twitter 같은 대규모 플랫폼에서는 "someGenericProperty": null 같은 26바이트의 단순 필드 제거만으로도 하루 300GB 이상의 트래픽 절감 효과를 얻을 수 있었다고 합니다.

-> 하루 수십억 건의 API 요청이 발생하는 환경에서는 이런 미세한 최적화도 큰 비용 절감으로 이어집니다.

 

하지만 때로는, 응답에서 null 필드를 무조건 제외하는 것이 좋은 것은 아닙니다.

excludenullfieldsAnswer

 

위 글을 기반으로 대략적으로 정리를 해보자면 내용은 아래와 같습니다.

API 사용자 입장에서는 일관된 구조가 더 중요할 수 있기 때문입니다.

  • 응답에 항상 필드가 존재한다면, 데이터 부재 상황을 쉽게 파악할 수 있습니다.
  • 반대로, 필드 자체가 누락되면 데이터가 없는 것인지 / 서버 오류인지 구분하기 어려울 수 있습니다.

 

장단점 정리

 

null 필드를 포함하는 경우

  • 장점:

    • 일관된 스키마 유지 → API 사용자가 예측 가능한 구조로 개발 가능
    • 디버깅 용이 → 누락 원인 추적이 쉬움
  • 단점:

    • 응답 크기 증가 (네트워크/트래픽 비용)

 

null 필드를 제외하는 경우

  • 장점:

    • 대역폭 절감 → 대규모 트래픽 환경에서 비용 최적화 가능
    • 희소 데이터 구조에서 불필요한 데이터 제거 효과
  • 단점:

    • 일관성 부족 → 클라이언트 개발자가 조건 분기 처리 필요
    • 디버깅 시 혼란 발생 가능

 

예외적으로 제외가 유리한 경우

  • 극도로 제한된 네트워크 환경 (예: IoT, 위성 통신 등)
  • 응답 대부분이 null인 희소 데이터 구조

 

결론

  • 일반적인 서비스: null 필드를 포함해 일관성 유지 → 사용성 & 신뢰성 강화
  • 특수한 경우: 트래픽 절감이 최우선이라면 null 필드 제외 고려

즉, “대부분은 포함, 필요할 때만 제외”가 합리적인 선택입니다.