React Native

성능 최적화

FlatList 최적화, memo, useMemo/useCallback, Hermes, 프로파일링, 번들 크기

24 면접 질문·
Senior
1

React Native 성능 최적화에서 React.memo의 주요 역할은 무엇입니까?

답변

React.memo는 함수형 컴포넌트의 렌더링 결과를 메모이제이션하는 고차 컴포넌트(Higher-Order Component)입니다. 현재 props를 이전 props와 비교(기본적으로 shallow comparison)하여 불필요한 리렌더링을 방지합니다. props가 변경되지 않았다면 React는 컴포넌트를 다시 렌더링하는 대신 메모이제이션된 결과를 재사용하므로, 리스트나 복잡한 컴포넌트 트리에서 성능이 크게 향상됩니다.

2

아이템의 크기를 미리 제공하여 스크롤을 크게 최적화하는 FlatList 속성은 무엇입니까?

답변

getItemLayout은 각 요소의 높이, 너비, offset을 미리 계산할 수 있게 해주는 FlatList의 선택적 속성입니다. 이를 통해 React Native가 각 아이템을 동적으로 측정할 필요가 없어지므로, 특히 scrollToIndex로 특정 인덱스로 이동할 때 스크롤 성능이 크게 향상됩니다. 이 최적화는 모든 아이템의 크기가 동일할 때 특히 유용합니다.

3

최적화 측면에서 useMemo와 useCallback의 주요 차이점은 무엇입니까?

답변

useMemo는 비용이 큰 계산의 결과를 메모이제이션하여 그 계산된 값을 반환하고, useCallback은 함수 자체를 메모이제이션하여 그 함수를 반환합니다. useMemo는 렌더링마다 무거운 재계산을 피하는 데 유용하고, useCallback은 메모이제이션된 자식 컴포넌트에 props로 전달되는 함수가 다시 생성되는 것을 방지하는 데 필수적입니다. 재생성되면 해당 자식 컴포넌트의 React.memo 최적화가 깨집니다.

4

Hermes는 무엇이며 React Native 애플리케이션에 대한 주요 장점은 무엇입니까?

5

FlatList에 안정적인 keyExtractor 함수를 제공하는 것이 왜 중요합니까?

+21 면접 질문

다음 면접을 위해 React Native을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기