Day 29 · 3/5
🌿 중급 백엔드

페이징(Pagination)이란?

쉽게 이해하기

페이징은 책을 페이지별로 나눠서 보는 것과 똑같아요. 책을 펼치면 한 페이지씩 보잖아요. 만약 책 전체 내용을 한 페이지에 다 넣으면 너무 길어서 읽을 수가 없죠. 웹사이트도 마찬가지로 게시글 1000개를 한 번에 보여주면 로딩도 느리고 보기도 힘드니까, 10개씩 나눠서 보여주는 거예요.

핵심 정리

많은 데이터를 한 번에 보여주지 않고 여러 페이지로 나눠서 보여주는 방식이에요.

자세히 알아보기

페이징은 대량의 데이터를 일정 개수씩 나눠서 보여주는 기법이에요. 쇼핑몰 상품 목록이나 블로그 게시글 목록에서 '1, 2, 3... 다음' 버튼을 본 적 있죠? 그게 바로 페이징이에요. 서버는 한 번에 모든 데이터를 보내는 대신, 페이지 번호(page)와 페이지당 개수(limit 또는 per_page) 정보를 받아서 필요한 부분만 잘라서 보내요. 예를 들어 'https://api.example.com/posts?page=2&limit=10' 같은 요청을 보내면, 서버는 11번째부터 20번째 게시글만 가져와서 응답해요. 데이터베이스 쿼리에서는 OFFSET과 LIMIT을 사용해서 구현하죠. 이렇게 하면 네트워크 전송량도 줄고, 브라우저 렌더링 속도도 빨라져요. 페이징에는 크게 두 가지 방식이 있어요. 첫 번째는 전통적인 페이지 번호 방식(Offset-based Pagination)이고, 두 번째는 '더보기' 버튼을 누르면 계속 추가되는 커서 방식(Cursor-based Pagination)이에요. 인스타그램이나 트위터처럼 무한 스크롤하는 SNS는 커서 방식을 주로 써요. 실무에서는 페이징 없이 수천 개의 데이터를 한 번에 보내면 서버도 느려지고 사용자 경험도 나빠져요. 그래서 API 설계할 때 페이징은 거의 필수예요. 백엔드에서는 ORM이나 데이터베이스 쿼리로 페이징을 구현하고, 프론트엔드에서는 페이지 번호나 커서 정보를 쿼리 파라미터로 전달해요.