<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Pagination on Gukin Han</title>
    <link>https://gukin.dev/tags/pagination/</link>
    <description>Recent content in Pagination on Gukin Han</description>
    <generator>Hugo</generator>
    <language>ko-kr</language>
    <lastBuildDate>Fri, 15 Aug 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://gukin.dev/tags/pagination/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>정규화부터 캐싱까지 - 상품 목록 페이지네이션 최적화 과정</title>
      <link>https://gukin.dev/posts/read-heavy-pagination-optimization/</link>
      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://gukin.dev/posts/read-heavy-pagination-optimization/</guid>
      <description>&lt;h2 id=&#34;요약&#34;&gt;요약&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;정규화 쿼리(집계 + 정렬)&lt;/strong&gt; → 풀스캔 + filesort로 &lt;strong&gt;~17초&lt;/strong&gt; 소요.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;역정규화 + 정렬 포함 인덱스&lt;/strong&gt; → &lt;strong&gt;~227ms&lt;/strong&gt; (약 76배 향상).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OFFSET 페이지네이션&lt;/strong&gt; → 인덱스 순차 스캔 시작 → 임계점에서 Table Scan + Filesort로 전환 → 이후 응답시간 급등.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;전환 전 일정한 속도&lt;/strong&gt;는 InnoDB 버퍼 풀/캐시 히트율 덕분.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keyset(Seek) 페이지네이션&lt;/strong&gt; → 깊은 페이지에서도 일정 성능 (421ms → 31ms, 92.6% 단축).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;인덱스 설계&lt;/strong&gt;는 핫 트래픽 패턴(브랜드 + 인기순/최신순/최저가순)에 맞춘 3개의 복합 인덱스 유지가 가성비 최적.
&lt;ul&gt;
&lt;li&gt;설계 원칙: 필터 선두 → 정렬키 → tie-breaker(id)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;캐시(Cache-Aside)&lt;/strong&gt; 적용 시 200RPS에서도 DB I/O 부하 없이 ms 단위 응답 가능.
&lt;ul&gt;
&lt;li&gt;단, TTL·Evict 정책·실시간성 요구사항·정합성 유지·스탬피드 방지 등 고려 필수.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;결론: &lt;strong&gt;정규화/역정규화 → 인덱스 설계 → 페이지네이션 전략 → 캐싱&lt;/strong&gt;이 단계적으로 맞물려 성능을 좌우함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;문제-정의와-가설&#34;&gt;문제 정의와 가설&lt;/h2&gt;
&lt;p&gt;웹 서비스에서는 쓰기 보다 &lt;strong&gt;읽기 트래픽이 압도적으로 많다&lt;/strong&gt;는 글을 읽거나 실제로 경험해봤을 것이다.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
