시스템 설계 · 기초
RESTful API 설계 시 URI(Uniform Resource Identifier)를 어떻게 구성해야 좋은지, 리소스 중심의 URI 설계 원칙에 대해 설명해주세요.
힌트 · URI는 리소스를 명확하게 식별해야 하며, 명사를 사용하고 계층적인 구조를 가지는 것이 좋습니다.
명사계층 구조일관성예측 가능성REST 원칙
모범답안
RESTful API 설계 시 URI는 API의 가독성과 사용성을 결정하는 중요한 요소입니다. 리소스 중심의 URI 설계를 위해 다음과 같은 원칙을 따릅니다.
첫째, URI는 리소스를 명확하게 식별해야 합니다. 따라서 동사보다는 명사를 사용하여 리소스를 표현하는 것이 좋습니다. 예를 들어, "getUsers" 보다는 "/users"가 더 적절합니다.
둘째, URI는 계층적인 구조를 가질 수 있습니다. 이는 리소스 간의 관계를 나타내는 데 유용합니다. 예를 들어, 특정 사용자의 게시물을 나타내려면 "/users/{userId}/posts"와 같이 표현할 수 있습니다.
셋째, URI는 일관성을 유지해야 합니다. API 전체에서 동일한 규칙을 적용하여 예측 가능성을 높이는 것이 중요합니다. 예를 들어, 복수형 명사를 사용하는 규칙을 정했다면 모든 리소스에 일관되게 적용해야 합니다.
이러한 원칙들을 따르면 REST 원칙을 준수하면서도 이해하기 쉽고 사용하기 편리한 API를 설계할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 API 설계 면접 질문
- REST(Representational State Transfer) API가 무엇인지 설명하고, RESTful API를 설계할 때 중요하게 고려해야 할 기본 원칙들을 간략히 언급해주세요.
- RESTful API에서 주로 사용되는 HTTP 메서드인 GET, POST, PUT, DELETE의 각각의 역할과 용도를 구체적인 예시와 함께 설명해주세요.
- API 응답에서 HTTP 상태 코드가 가지는 의미와 중요성은 무엇이며, 자주 사용되는 2xx, 4xx, 5xx 계열의 상태 코드들을 각각 하나씩 예시를 들어 설명해주세요.
- API 설계에서 '멱등성(Idempotence)'이란 무엇이며, 멱등성이 보장되어야 하는 HTTP 메서드와 그 이유에 대해 설명해주세요.
- RESTful API의 핵심 원칙 중 하나인 '무상태성(Statelessness)'이 무엇인지 설명하고, API 설계 시 무상태성을 유지하는 것이 왜 중요한지 그 장점을 언급해주세요.