AOS
주식회사 에오스모바일
← 개발자 노트
App · · 조회 12

Flutter 앱 렌더링 성능 최적화: RepaintBoundary와 Const 생성자 활용법

플러터로 제작된 하이브리드 앱의 60fps 부드러운 화면 전환을 위해 UI 리렌더링 부하를 줄이는 메모리 및 렌더 트리 최적화 실무 팁을 상세히 해설합니다.

Flutter는 강력한 크로스 플랫폼 프레임워크이지만, 복잡한 애니메이션이나 대량의 리스트를 다룰 때 프레임 드롭(Jank) 현상이 발생할 수 있습니다. 렌더링 최적화의 첫걸음은 불필요한 빌드(Build) 메서드 호출을 줄이는 것입니다. 상태가 변경되지 않는 모든 위젯에는 const 생성자를 명시하여 컴파일 시점에 단일 인스턴스로 관리되도록 유도해야 합니다. 또한, 화면의 특정 부분만 자주 업데이트되는 경우(예: 타이머, 차트 등) 해당 위젯을 RepaintBoundary로 감싸서 픽셀을 다시 그리는 범위를 국소적으로 분리해야 합니다. 본 글에서는 대용량 데이터를 처리하는 ListView.builder에서 위젯 재사용 메커니즘을 훼손하지 않기 위해 항목별 고유 키(Key)를 지정하는 올바른 패턴을 벤치마크 결과와 함께 심도 있게 살펴봅니다.