🧭 프로젝트 개요

대용량 데이터 편집 시 발생하는 전체 리렌더링 병목을 부분 업데이트 구조로 개선하고 목록 가상화를 적용한 프로젝트

⚠️ 문제 및 해결 요약

👉 전체 리스트 리렌더링으로 인한 성능 병목

→ Row 단위 업데이트 구조(O(N) → O(1))로 변경하고, Virtualization(React Virtuoso)을 적용하여 렌더링 범위를 화면 내 요소로 제한

문제 원인 분석

문제 해결 상세


💥개선 결과 (Result – Before / After)

구분 측정 시나리오 지표 원본(Before) 개선본(After)
렌더링 1,000 rows 초기 렌더 Initial Render Time 4,918ms 139.33ms
렌더링 Row 1개 수정 리렌더 Row 수 1,000 Rows 1 Row
스크롤 3,000 rows 리스트 스크롤 Max Frame Duration 149ms 33.4ms
스크롤 3,000 rows 리스트 스크롤 Worst FPS 환산 약 6.7 FPS 약 29.9 FPS
스크롤 3,000 rows 리스트 스크롤 Long Task 수 (>50ms) 19건 1건
인터랙션 검색어 3글자 입력 Interaction Latency 1,330ms 29ms
가상화 1,000 rows / 22컬럼 Total DOM Nodes 수 64,458 1,977~4,103
메모리 1,000 rows 모두 로드 Heap Memory 179MB 8.9~13.9MB

**아래 영상은 테스트용 더미데이터(10만건)로 구성된 화면이며, 실제 개인정보를 포함하고 있지 않습니다.

회원명부_움짤_재촬영4.gif

↔️ 설계 판단 및 트레이드 오프