패스잇
시스템 설계 · 심화

RESTful API 설계에서 HATEOAS(Hypermedia as the Engine of Application State) 원칙을 실질적으로 적용했을 때의 이점과 직면할 수 있는 기술적, 운영적 어려움은 무엇이며, 이러한 어려움을 극복하고 HATEOAS를 효과적으로 활용하기 위한 구체적인 방안을 제시하시오.

힌트 · 클라이언트-서버 결합도 감소, API 탐색성 향상이라는 이점과 함께, 복잡한 클라이언트 구현, 서버 측 로직 복잡성 증가 등의 어려움을 다룹니다.

API 발견성느슨한 결합클라이언트 자율성복잡도 증가캐싱 전략

모범답안

HATEOAS를 적용하면 API 변경 시 클라이언트 코드를 수정할 필요가 줄어들어 클라이언트-서버 간 결합도를 낮추고 API 탐색성을 높일 수 있습니다. 클라이언트는 서버가 제공하는 링크를 통해 다음 상태로의 전환을 스스로 결정할 수 있게 됩니다.

하지만 클라이언트 구현이 복잡해지고 서버 측 로직 또한 링크 정보를 동적으로 생성해야 하므로 복잡도가 증가할 수 있습니다. 또한, 링크 정보가 매 응답에 포함되므로 응답 크기가 커져 성능에 영향을 줄 수도 있습니다.

이러한 어려움을 극복하기 위해선, 우선 API 설계 단계에서부터 HATEOAS를 고려하여 일관성 있는 링크 구조를 설계해야 합니다. 또한, 클라이언트 라이브러리를 통해 링크 해석 및 API 호출을 자동화하고, 서버 측에서는 링크 생성을 위한 별도의 모듈을 구축하여 코드 재사용성을 높일 수 있습니다. 캐싱 전략을 적절히 활용하여 불필요한 링크 정보 생성을 줄이는 것도 중요합니다.

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

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

함께 보는 API 설계 면접 질문

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