🤔 왜 커스텀 상태 코드를 사용해야 할까?
가장 쉬운 예로 400번대를 예로 들어보겠습니다.
- 404 Not Found: 요청한 리소스가 없음
예를 위의 404 에러는 표준 http 에러 상태 코드인데요 표준으로 쓰이는 만큼 굉장히 포괄적이고 일반적인 상황에 모두 적용할 수 있게 설계가 되어 있습니다. 그런데 실제로 프로젝트를 진행함에 있어서 요청한 리소스가 없는 모든 경우에 404를 적용하게 되면 구체적이지 못하기 때문에 불편해지게 됩니다.
따라서, 프로젝트를 진행함에 있어서 조금 더 구체적으로 커스텀 에러를 설정하고 약속을 정해두면 조금 더 쉽게 상태 코드를 이해할 수 있게 됩니다.
예를 들어, 멤버를 찾을 수 없는 경우 MEMBER-4001를 사용하도록 약속했다고 생각해 봅시다. 직관적으로 Member에 대한 상태 코드임을 확인할 수 있고 400번대 에러라는 느낌을 받을 수 있습니다.
물론 프로젝트를 진행하는 사람들끼리 정하는 약속이기 때문에 정답은 없습니다 😏
✅ 대부분 어떤 커스텀 상태 코드를 사용할까?
📌 Case 1.
Enum의 첫 번째 필드는 우리가 흔히 사용하는 Http Status입니다. Account의 가장 첫 번째 NOT_FOUND_ACCOUNT는 404 에러 즉 리소스를 찾을 수 없다는 에러인데 그 뒤에 나오는 2000이 커스텀 에러 코드입니다.
Account와 관련된 에러는 2000번대로 정해두고 10씩 올라가는 코드를 사용하는 것을 확인할 수 있습니다.
📌 Case 2.
이 예시에서는 COMMOM과 ACCOUNT등 어디에서 발생하는 에러인지 표시하는 것은 동일하나 001부터 시작해서 올라가는 것을 확인할 수 있습니다. 역시 알아보기 쉬운 커스텀 에러 코드입니다.
💡 내가 생각했던 좋은 상태코드
최근에 동아리 스터디를 하게 되면서 감명을 받았던 상태 코드입니다.
커스텀 상태 코드를 공부하면서 대부분의 커스텀 상태 코드의 경우에는 400번대 에러에 관한 상태 코드 예시를 많이 보았습니다. 이번 스터디에서 배우게 된 것은 COMMON과 MEMBER 등을 붙이는 것은 동일하나 4001로 시작하게 만드는 방법입니다.
이렇게 커스텀 상태 코드를 설계하면 어떤것에 대한 에러인지도 알아보기 쉽고 무슨 상태 메시지를 표현하는지도 알아보기 쉬워서 좋다고 생각했습니다.
대부분의 경우에 400번대 에러에 대한 커스텀 상태 코드를 많이 만들었지만, 만약 5XX 번대 서버 에러나 2XX 성공 코드에 대해서도 커스텀 상태 코드가 필요하게 된다면 확장적인 측면에서 굉장히 유리하다고 생각했습니다!
프로젝트마다 유리한 커스텀 코드에는 정답이 없다고 생각합니다! 프로젝트의 주제와 더 맞고 팀원들과 의사소통하기 유용한 커스텀 코드를 만들어 보세요 😲
Reference:
티스토리 - [Spring Boot] Custom Error Code가 필요한 이유와 에러 코드 문서화 🔗
티스토리 - [백엔드의 협업] HTTP 표준 대신에 커스텀 status code 사용하기 🔗
'프로젝트' 카테고리의 다른 글
배포의 모든 것 - 2. RDS와 Session Manager (0) | 2025.02.25 |
---|---|
배포의 모든 것 - 1. AWS 시작하기 및 EC2 띄우기 (5) | 2025.01.25 |
Restful API Endpoint를 어떻게 설계해야 할까? (1) | 2025.01.14 |
DDD(Domain Driven Design) 구조 알아보기 (5) | 2025.01.14 |
API 응답 통일을 파헤치다 (0) | 2025.01.01 |