IllegalArgumentException을 400 Bad Request로 매핑하는 것이 항상 올바른 방법은 아님을 지적
4xx와 5xx의 명확한 구분을 통해 오류의 책임 소재를 파악하는 것이 중요함을 강조
BusinessException과 같은 커스텀 예외를 정의하여 400 Bad Request를 매핑하는 전략 제시
4xx는 클라이언트 오류, 5xx는 서버 오류를 의미한다. 따라서 400 Bad Request는 클라이언트의 잘못된 요청, 500 Internal Server Error는 서버 내부 문제로 발생한다. 구체적으로, 5xx 응답은 즉각적인 대응이 필요하며, 모니터링 시스템에서 감지해야 한다. 반면, 4xx 오탐은 운영팀의 대응 지연을 초래할 수 있다.
IllegalArgumentException은 클라이언트 입력뿐 아니라 서버 내부 로직 오류로도 발생할 수 있다. 따라서 무분별한 400 Bad Request 매핑은 문제 파악 지연을 야기한다. 커스텀 예외를 정의하고, 클라이언트의 잘못이 명확할 때만 400을 반환하는 것이 좋다. 결과적으로 API 유지보수를 용이하게 한다.
BusinessException과 같은 커스텀 예외를 정의하여 400 Bad Request를 매핑한다. 구체적으로, 클라이언트의 잘못이 명확한 경우에만 해당 예외를 발생시킨다. 따라서 예외 코드와 상세 메시지를 통해 클라이언트에게 정확한 정보를 전달할 수 있다. 반면, 예상치 못한 예외는 500으로 처리하여 서버 문제임을 명확히 한다.