OPEN HYPER STEP
← 목록으로 (React)
REACT · 25 / 34
react
CHAPTER 25 / 34
읽기 약 2
FUNCTION

React로 페이지네이션 구현


핵심 개념

useState로 현재 페이지를 관리하고 slice()로 데이터를 분할합니다. 총 페이지 수를 계산하고 이전/다음 버튼으로 이동합니다. 페이지 번호 배열을 map()으로 렌더링합니다. 페이지네이션 로직을 지우며 데이터 분할이 어떻게 사라지는지 확인하십시오.

코드 분석
REACT📋 코드 (27줄)






const { useState } = React;
  const ALL = Array.from({length:20}, (_,i) => ({id:i+1, name:`UNIT-${String(i+1).padStart(3,'0')}`, threat: Math.floor(Math.random()*5)+6}));
  const PER_PAGE = 5;

  function Pagination() {
    const [page, setPage] = useState(1);
    const total = Math.ceil(ALL.length / PER_PAGE);
    const data = ALL.slice((page-1)*PER_PAGE, page*PER_PAGE);
    return (
      <div>
        {data.map(u => <div key={u.id} style={{color:'#888', fontSize:'12px', marginBottom:'4px', padding:'4px 0', borderBottom:'1px solid #1a1a1a'}}>[{u.name}] 위협도: {u.threat}</div>)}
        <div style={{display:'flex', gap:'4px', marginTop:'12px', alignItems:'center'}}>
          <button onClick={() => setPage(p => Math.max(1,p-1))} disabled={page===1} style={{background:'#333', color:page===1?'#333':'#e8e8e8', border:'none', padding:'4px 8px', cursor:'pointer', fontFamily:'monospace', fontSize:'10px'}}>PREV</button>
          {Array.from({length:total},(_,i)=>i+1).map(p => <button key={p} onClick={()=>setPage(p)} style={{background:p===page?'#10b981':'#1a1a1a', color:p===page?'#080808':'#888', border:'none', padding:'4px 8px', cursor:'pointer', fontFamily:'monospace', fontSize:'10px'}}>{p}</button>)}
          <button onClick={() => setPage(p => Math.min(total,p+1))} disabled={page===total} style={{background:'#333', color:page===total?'#333':'#e8e8e8', border:'none', padding:'4px 8px', cursor:'pointer', fontFamily:'monospace', fontSize:'10px'}}>NEXT</button>
        </div>
      </div>
    );
  }

  ReactDOM.createRoot(document.getElementById('root')).render(<Pagination />);

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 React '페이지네이션' 컴포넌트에서
불필요한 리렌더링·메모리 누수·의존성 배열 누락을 찾고
최적화 코드로 리팩토링해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'페이지네이션'를 사용한 실전 컴포넌트를
TypeScript + Tailwind 포함 완성 코드로 만들어줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 React '페이지네이션' 사용 패턴 전체를 분석하고
번들 크기·렌더링 횟수·Core Web Vitals 개선 방안을
우선순위로 알려줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

React '페이지네이션' vs 다른 프레임워크(Vue/Svelte/Solid)의
동일 기능 구현 방식을 솔직하게 비교하고
2026년 트렌드를 알려줘.

⭐ 이것만 기억하세요
React로 페이지네이션 구현 이 3가지만 확실히 잡으세요
1.전체 데이터를 한 페이지에 나열하면 스크롤이 끝없이 길어지고, 원하는 항목을 찾기 어렵습니다
2.총 항목 수에서 페이지당 개수를 나눠 총 페이지를 계산하고, slice()로 현재 페이지 데이터만 추출합니다
3.다음 챕터에서 화면 위에 떠 있는 독립 UI인 모달 컴포넌트를 구현합니다


공유하기
진행도 25 / 34