패스잇
모바일 개발 · 중급

React Native 애플리케이션에서 발생할 수 있는 일반적인 렌더링 성능 저하 문제를 어떻게 진단하고 해결할 수 있나요? 디버깅 도구(예: Flipper, React DevTools) 활용 방안을 포함하여 설명해주세요.

힌트 · 불필요한 리렌더링, 과도한 계산, 큰 이미지 로딩 등이 원인이 될 수 있으며, 프로파일러를 통해 병목 지점을 파악하고 `memo`, `useCallback` 등으로 최적화합니다.

React DevToolsFlipperProfilershouldComponentUpdateuseMemo

모범답안

React Native 앱의 렌더링 성능 저하 문제는 여러 가지 원인이 있을 수 있습니다. 가장 흔한 경우는 불필요한 리렌더링, 과도한 계산, 그리고 큰 이미지 로딩입니다.

진단 방법으로는 먼저 React DevTools나 Flipper의 Profiler를 활용하여 렌더링 성능 병목 지점을 파악합니다. Profiler를 통해 어떤 컴포넌트가 가장 많은 시간을 소요하는지, 그리고 왜 리렌더링되는지 확인할 수 있습니다.

해결 방법으로는 memo를 사용하여 불필요한 리렌더링을 방지하고, useCallback이나 useMemo를 사용하여 함수나 값을 메모이제이션하여 불필요한 계산을 줄일 수 있습니다. 또한, 큰 이미지는 최적화하거나 로딩 방식을 개선해야 합니다. shouldComponentUpdate를 활용하여 리렌더링 조건을 직접 제어하는 방법도 있습니다.

예를 들어, memo를 사용하면 props가 변경되지 않는 컴포넌트의 리렌더링을 막을 수 있습니다.

const MyComponent = React.memo(function MyComponent(props) {
  // render using props
});

이러한 도구와 기법들을 적절히 활용하면 React Native 앱의 렌더링 성능을 효과적으로 개선할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 React Native 면접 질문

← React Native 면접 질문 전체 보기