시스템 설계 · 기초
API 응답에서 HTTP 상태 코드가 가지는 의미와 중요성은 무엇이며, 자주 사용되는 2xx, 4xx, 5xx 계열의 상태 코드들을 각각 하나씩 예시를 들어 설명해주세요.
힌트 · 상태 코드는 클라이언트에게 요청 처리 결과를 알려주며, 2xx는 성공, 4xx는 클라이언트 오류, 5xx는 서버 오류를 나타냅니다.
HTTP 상태 코드응답 상태200 OK400 Bad Request500 Internal Server Error
모범답안
API 응답에서 HTTP 상태 코드는 서버가 클라이언트의 요청을 어떻게 처리했는지 알려주는 중요한 정보입니다. 클라이언트는 이 코드를 통해 요청이 성공했는지, 실패했는지, 아니면 다른 조치가 필요한지 등을 판단할 수 있습니다.
2xx 계열은 성공을 의미합니다. 예를 들어, 200 OK는 요청이 성공적으로 처리되었고, 서버가 요청한 데이터를 정상적으로 반환했다는 뜻입니다.
4xx 계열은 클라이언트 측의 오류를 나타냅니다. 400 Bad Request는 클라이언트의 요청 구문이 잘못되었거나, 서버가 이해할 수 없는 요청을 보냈을 때 발생합니다. 예를 들어, 필수 파라미터가 누락된 경우에 해당될 수 있습니다.
5xx 계열은 서버 측의 오류를 의미합니다. 500 Internal Server Error는 서버에서 예상치 못한 오류가 발생하여 요청을 처리할 수 없을 때 나타납니다. 이는 서버 코드의 버그나, 데이터베이스 연결 문제 등으로 인해 발생할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 API 설계 면접 질문
- REST(Representational State Transfer) API가 무엇인지 설명하고, RESTful API를 설계할 때 중요하게 고려해야 할 기본 원칙들을 간략히 언급해주세요.
- RESTful API에서 주로 사용되는 HTTP 메서드인 GET, POST, PUT, DELETE의 각각의 역할과 용도를 구체적인 예시와 함께 설명해주세요.
- RESTful API 설계 시 URI(Uniform Resource Identifier)를 어떻게 구성해야 좋은지, 리소스 중심의 URI 설계 원칙에 대해 설명해주세요.
- API 설계에서 '멱등성(Idempotence)'이란 무엇이며, 멱등성이 보장되어야 하는 HTTP 메서드와 그 이유에 대해 설명해주세요.
- RESTful API의 핵심 원칙 중 하나인 '무상태성(Statelessness)'이 무엇인지 설명하고, API 설계 시 무상태성을 유지하는 것이 왜 중요한지 그 장점을 언급해주세요.
- 운영 중인 API의 변경이 불가피할 때, API 버전 관리가 왜 필요하며, 일반적으로 사용되는 버전 관리 방식에는 어떤 것들이 있는지 간략히 설명해주세요.