HTTP 상태 코드와 오류 응답 설계
·
IT
API를 만들 때 오류가 나면 무조건 500을 주거나, 반대로 무조건 200에 {"success": false}를 담아 보내는 경우가 있다. 둘 다 나중에 문제가 된다. 이 글은 HTTP 상태 코드를 실제 상황에 어떻게 대응시킬지와, 오류 응답 본문을 어떻게 설계할지를 정리한다.200에 실패를 담으면 안 되는 이유먼저 가장 흔한 안티패턴부터. 모든 응답을 200으로 주고 본문에 성공 여부를 담는 방식이다.HTTP/1.1 200 OK{"success": false, "message": "권한이 없습니다"}동작은 한다. 문제는 HTTP 계층의 도구들이 전부 무력해진다는 것이다.로드 밸런서와 모니터링은 상태 코드로 오류율을 센다. 전부 200이면 오류율이 0%로 보인다. 실제로는 절반이 실패하고 있어도 대시보..