시스템 설계 · 중급
일관성 있는 API 에러 응답 설계의 중요성은 무엇이며, HTTP 상태 코드와 에러 응답 본문(Error Response Body)을 어떻게 구성하여 클라이언트에게 유용하고 명확한 정보를 제공할 수 있는지 설명해주세요.
힌트 · 에러 응답은 클라이언트가 문제를 진단하고 해결하는 데 필요한 정보를 포함해야 하며, HTTP 상태 코드는 에러 유형을, 본문은 세부 정보를 제공합니다.
HTTP 상태 코드에러 응답 본문표준화된 형식오류 코드디버깅 용이성
모범답안
일관성 있는 API 에러 응답 설계는 매우 중요합니다. 클라이언트가 예상치 못한 상황에 직면했을 때, 문제의 원인을 빠르게 파악하고 적절하게 대응할 수 있도록 돕기 때문입니다.
HTTP 상태 코드는 에러의 일반적인 유형을 나타냅니다. 예를 들어, 400은 클라이언트 측의 잘못된 요청, 500은 서버 측의 오류를 의미합니다.
에러 응답 본문은 더 자세한 정보를 제공합니다. 표준화된 형식을 사용하여 오류 코드, 오류 메시지, 문제 해결에 도움이 되는 추가 정보 등을 포함하는 것이 좋습니다. 예를 들어, "invalid_parameter", "Parameter 'email' is missing"과 같은 정보를 제공하여 디버깅을 용이하게 할 수 있습니다.
이렇게 설계하면 클라이언트는 에러를 체계적으로 처리하고, 사용자에게 적절한 피드백을 제공할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 API 설계 면접 질문
- 운영 중인 API의 변경이 불가피할 때, API 버전 관리가 왜 필요하며, 일반적으로 사용되는 버전 관리 방식에는 어떤 것들이 있는지 간략히 설명해주세요.
- RESTful API 설계 시 자원(Resource)을 어떻게 정의하고 URI를 구성하는 것이 좋은지 구체적인 예시를 들어 설명하고, Statelessness 원칙을 실제 API 설계에 어떻게 적용할 수 있는지 설명해주세요.
- API 버저닝(Versioning)을 적용하는 주요 목적은 무엇이며, URI 버저닝, 헤더 버저닝, 쿼리 파라미터 버저닝 방식의 장단점을 비교하고, 실제 프로젝트에서 어떤 상황에 적합한지 설명해주세요.
- 대량의 데이터를 효율적으로 조회하는 API를 설계할 때, 페이지네이션(Pagination), 필터링(Filtering), 정렬(Sorting) 기능을 어떻게 구현하는 것이 일반적이며, 각 기능 설계 시 고려해야 할 사항은 무엇인지 설명해주세요.
- API 설계에서 멱등성(Idempotency)이 중요한 이유는 무엇이며, POST, PUT, DELETE와 같은 HTTP 메서드를 사용할 때 멱등성을 어떻게 보장할 수 있는지 구체적인 사례를 들어 설명해주세요.
- HATEOAS(Hypermedia as the Engine of Application State) 원칙이 RESTful API 설계에서 가지는 의미는 무엇이며, 이 원칙을 적용했을 때 얻을 수 있는 장점과 실제 적용 시 고려해야 할 점은 무엇인지 설명해주세요.