시스템 설계 · 중급
HATEOAS(Hypermedia as the Engine of Application State) 원칙이 RESTful API 설계에서 가지는 의미는 무엇이며, 이 원칙을 적용했을 때 얻을 수 있는 장점과 실제 적용 시 고려해야 할 점은 무엇인지 설명해주세요.
힌트 · HATEOAS는 API의 discoverability를 높여 클라이언트와 서버 간의 결합도를 낮추고 유연성을 제공하지만, 구현 복잡도가 증가할 수 있습니다.
API 독립성동적 API 탐색클라이언트 유연성결합도 감소URI 변경 용이성
모범답안
HATEOAS는 RESTful API 설계에서 클라이언트가 서버의 응답에 포함된 링크를 통해 다음 상태로 전이할 수 있도록 하는 원칙입니다. 즉, API 사용법을 문서가 아닌 응답 자체에서 배우도록 하는 것이죠.
장점으로는 API의 독립성이 높아져 서버 구조가 변경되어도 클라이언트가 유연하게 대응할 수 있다는 점입니다. URI가 변경되더라도 클라이언트는 응답에 포함된 링크를 따라가기만 하면 되니까요.
하지만 HATEOAS를 적용하면 응답 구조가 복잡해지고, 클라이언트 구현도 더 어려워질 수 있습니다. 또한, 초기 API 설계 단계에서 링크 관계를 충분히 고려해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 API 설계 면접 질문
- 일관성 있는 API 에러 응답 설계의 중요성은 무엇이며, HTTP 상태 코드와 에러 응답 본문(Error Response Body)을 어떻게 구성하여 클라이언트에게 유용하고 명확한 정보를 제공할 수 있는지 설명해주세요.
- 대량의 데이터를 효율적으로 조회하는 API를 설계할 때, 페이지네이션(Pagination), 필터링(Filtering), 정렬(Sorting) 기능을 어떻게 구현하는 것이 일반적이며, 각 기능 설계 시 고려해야 할 사항은 무엇인지 설명해주세요.
- API 설계에서 멱등성(Idempotency)이 중요한 이유는 무엇이며, POST, PUT, DELETE와 같은 HTTP 메서드를 사용할 때 멱등성을 어떻게 보장할 수 있는지 구체적인 사례를 들어 설명해주세요.
- 마이크로서비스 아키텍처에서 API Gateway의 역할은 무엇이며, API Gateway가 API 설계 원칙 준수 및 서비스 운영 효율성 측면에서 어떤 이점을 제공하는지 설명해주세요.
- 분산 환경에서 API의 멱등성(Idempotency)을 보장하기 위한 설계 원칙과 구현 전략에 대해 설명하고, 특히 결제 시스템과 같이 중요도가 높은 트랜잭션에서 발생할 수 있는 잠재적 문제점과 해결 방안을 제시하시오.
- URI, Header, Query Parameter, Content Negotiation 등 다양한 API 버전 관리 전략의 장단점을 비교하고, 대규모 서비스에서 여러 클라이언트와 빠르게 진화하는 요구사항을 동시에 만족시키면서 API 호환성을 유지하기 위한 최적의 버전 관리 전략과 그 이유를 설명하시오.