- 서버 요청 시 분명한 실패 응답임에도 HTTP 상태 코드가 200으로 돌아오며 실패 내용이 담겨 있는 경우가 발생합니다. 🤯
- Datadog 같은 모니터링 툴 사용 시, 로그인 시도나 존재하지 않는 이미지 요청 등 모든 요청이 로그에 기록되어 실제 에러와 의도된 실패를 구분하기 어렵게 만듭니다. 📊
- 모니터링 및 로그 기록 관점에서, 의도된 실패(예: 잘못된 로그인 시도)는 200 OK로 처리해도 괜찮을 수 있다는 시각이 있습니다. ✅
- RFC 9457과 같은 표준을 활용하여 응답 메시지 바디에 별도의
status 필드를 포함함으로써 실제 상태를 명확히 명시할 수 있습니다. 📝
- 응답 바디에 상태 코드를 중복해서 넣는 이유는 HTTP 상태 코드가 프록시나 캐시에 의해 변경될 수 있고, 200 OK로 응답된 실패 상황에서 바디의
status 필드가 HTTP 스펙에 맞는 실제 응답 코드를 나타낼 수 있기 때문입니다. 🔄
- HTTP 상태 코드와 실제 의도된(비즈니스 로직 상의) 상태 코드가 서로 달라질 수 있으므로, 응답 바디에 다시 상태를 명시하는 것이 중요합니다. ↔️
데브허브 | DEVHUB | 실패했는데 상태 코드가 200인 경우…?