패스잇
시스템 설계 · 중급

대량의 데이터를 효율적으로 조회하는 API를 설계할 때, 페이지네이션(Pagination), 필터링(Filtering), 정렬(Sorting) 기능을 어떻게 구현하는 것이 일반적이며, 각 기능 설계 시 고려해야 할 사항은 무엇인지 설명해주세요.

힌트 · 쿼리 파라미터를 활용하여 offset/limit 또는 cursor 기반 페이지네이션을 구현하고, 필터링 및 정렬 기준을 명확히 정의하여 유연한 데이터 조회를 지원합니다.

Offset-Based PaginationCursor-Based Pagination인덱스쿼리 최적화데이터 일관성

모범답안

대량의 데이터를 효율적으로 조회하는 API 설계 시 페이지네이션, 필터링, 정렬은 필수적입니다.

페이지네이션은 주로 Offset-Based 방식과 Cursor-Based 방식을 사용합니다. Offset-Based는 offsetlimit 파라미터를 사용하여 특정 페이지를 조회하는 방식인데, 데이터 변경이 잦을 경우 페이지가 밀리는 문제가 발생할 수 있습니다. Cursor-Based는 마지막으로 조회한 데이터의 ID 값을 기준으로 다음 데이터를 조회하는 방식이라 데이터 일관성을 유지하는 데 유리합니다.

필터링은 쿼리 파라미터를 통해 다양한 조건으로 데이터를 검색할 수 있도록 설계합니다. 예를 들어, ?status=active&category=electronics 와 같이 조건을 조합할 수 있도록 합니다.

정렬 역시 쿼리 파라미터를 활용하여 특정 필드를 기준으로 오름차순 또는 내림차순으로 정렬할 수 있도록 합니다. ?sort=name&order=asc 와 같은 방식입니다.

각 기능 설계 시에는 데이터베이스 인덱스를 적절히 활용하여 쿼리 성능을 최적화하는 것이 중요합니다. 또한, API 사용자가 쉽게 이해하고 사용할 수 있도록 명확한 API 명세와 문서화를 제공해야 합니다.

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

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

함께 보는 API 설계 면접 질문

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