패스잇
시스템 설계 · 중급

RESTful API 설계 시 자원(Resource)을 어떻게 정의하고 URI를 구성하는 것이 좋은지 구체적인 예시를 들어 설명하고, Statelessness 원칙을 실제 API 설계에 어떻게 적용할 수 있는지 설명해주세요.

힌트 · 자원은 명사형으로, 계층적 구조를 가지며, 상태 비저장은 서버 확장성과 클라이언트 독립성을 높입니다.

명사계층 구조HTTP 메서드StatelessJWT

모범답안

RESTful API 설계 시 자원은 명사로 표현하고 계층 구조를 반영하는 것이 좋습니다. 예를 들어, 쇼핑몰 API에서 상품 목록은 /products, 특정 상품은 /products/{product_id}와 같이 URI를 구성할 수 있습니다.

Statelessness 원칙은 각 요청이 독립적으로 처리되도록 서버에 클라이언트의 상태를 저장하지 않는 것을 의미합니다. 이를 위해 JWT(JSON Web Token)를 활용할 수 있습니다. 클라이언트가 로그인하면 서버는 JWT를 발급하고, 클라이언트는 이후 요청 시 JWT를 포함하여 인증합니다. 서버는 JWT를 검증하여 사용자를 식별하고, 별도의 세션 정보를 관리하지 않아도 됩니다. 이렇게 하면 서버의 확장성을 높이고, 클라이언트의 독립성을 보장할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 API 설계 면접 질문

← API 설계 면접 질문 전체 보기