coldrain-f / whale-voca

日本語 상용한자 2,136자와 관련 단어들을 효율적으로 암기할 수 있는 단어 암기 모바일 앱 서비스입니다.
0 stars 0 forks source link

[React Native] 단어장 목록 조회 FlatList 사용으로 변경하기 #2

Closed coldrain-f closed 1 year ago

coldrain-f commented 1 year ago

Description

기존엔 ScrollView + Array의 map()함수로 화면을 그리고 구조로 되어있다. 이를 FlatList를 사용하여 화면을 그리도록 변경하면 데이터가 많아질수록 성능이 향상된다고 한다.

FlatList를 사용하여 화면을 그리도록 변경 작업을 진행하자

Works

coldrain-f commented 10 months ago

해당 이슈를 등록했을 당시에는 그냥 ScrollView에 데이터를 뿌리는 것보다 FlatList를 사용하면 데이터가 많을수록 성능이 향상된다고만 알고 있었지, 개발에 급급해서 왜 그런진 모르고 사용했었다.

최근에 FlatList에 뿌리는 데이터가 많아지면서 다시 알게 된 사실인데, FlatList를 사용하면 화면 렌더링 시 한 번에 모든 데이터를 불러오지 않고 개발자가 설정한 만큼만 불러온다. 그 후엔 스크롤을 내릴수록 설정한 수만큼 추가로 불러오는 듯하다.

데이터 수가 적고 컴포넌트가 단순할 때는 로딩이 빨라서 몰랐지만, 데이터 수가 많아지고 컴포넌트가 복잡해지니 로딩 속도가 눈에 띌 만큼 시간이 걸리게 되어 데이터가 더 많아지면 어떻게 하지 하는 걱정을 하고 있었는데 FlatList 덕분에 그렇게 까지 걱정하진 않아도 될 듯 하다.

물론 지금도 체감상 로딩이 오래 걸리는 편인 것 같아서 성능 최적화 기법을 찾아보긴 해야 할 것 같다.