개발자

일시적으로 기능을 끄고 켜는 endpoint를 위한 에러 코드는 뭐가 좋을까요?

2023년 03월 07일조회 154

백엔드 설계 중에 질문이 생겨서 남깁니다. endpoint 별로 기능을 껐다 켜는 미들웨어를 만들고 있는데, 기능이 꺼져 있을 경우 어떤 에러 코드를 반환해줄지 고민이 되더라구요. RESTful한 API를 만든다고 했을 때, 어떤 HTTP status code를 내려줘야 할까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

인기 답변

손정현님의 프로필 사진

안녕하세요! 최근에 저희도 내부적으로 이런 HTTP status code에 대한 리뷰를 했었는데, 그때 잠깐 언급된 주제여서 답변 남깁니다. 우선 저는 막연하게 403 forbidden 같은걸 내려주면 되지않을까라는 생각했습니다. 기능 자체가 없어지는 것은 아니기 때문에 접근 권한이 없다 라는 에러 코드면 괜찮다고 생각했어요. 다른 엔지니어분은 404 not found를 제안해주시더라구요. 사용자 입장에서는 권한이 없는게 아니라 기능이 없는 것과 같다라고 하시더군요. 근데 또 어떤 분은 404 not found는 resource에 관련된 거라면 이해하는데 그게 아니라면 애매하지 않냐라고 하시더라고요. 그래서 SO 같은 곳에서 여러 예시를 찾아보기도하고 chat gpt에 물어보니까 역시나 정해진 정답은 없었습니다. 404 not found를 추천해주는 사람도 많고, 403으로 구현된 api도 종종 보이더라고요. 결국 기능이 어떤 기능인가, 어떤 리소스를 조작하는가 등에 따라서 에러 코드는 달라질 수 있다고 생각합니다. 팀 내에서 논의 후 정한 것으로 구현하면 되지 않을까 싶네요 :) - https://learn.microsoft.com/en-us/rest/api/cosmos-db/http-status-codes-for-cosmosdb (여긴 403) - https://stackoverflow.com/questions/60284335/what-http-status-code-do-you-use-when-endpoint-is-disabled-by-feature-flag-fea - https://learn.microsoft.com/en-us/azure/azure-app-configuration/use-feature-flags-dotnet-core?tabs=core5x (여긴 404) - https://www.ibm.com/docs/en/alm/1.3.0?topic=reference-api-http-status-codes (여긴 404)

profile picture

익명

작성자

2023년 03월 08일

친절한 답변 감사합니다! 첨부해 주신 링크도 확인해 볼게요 :)

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!