3관문. Virtualization (Windowing)
관문 3 / 7
10만 개 아이템 리스트를 가상화하여 보이는 부분만 렌더링되도록 구현하라.
📖 이론 비급
Virtualization: 보이는 것만 그린다
10만 개의 DOM 노드를 한 번에 렌더하면 초기 로딩과 스크롤이 모두 느려진다. 가상화(Windowing)는 현재 뷰포트에 보이는 아이템만 DOM에 유지한다.
@tanstack/virtual: 계산 로직만 제공하는 headless 가상화 라이브러리.
useVirtualizer가 각 아이템의 위치와 렌더 여부를 계산하고,
스크롤 컨테이너를 실제 전체 높이로 설정하여 스크롤바를 자연스럽게 유지한다.