프론트엔드 개발 · 중급
React에서 컴포넌트 리렌더링이 발생하는 조건과 최적화 방법에 대해 설명해주세요.
힌트 · React.memo, 상태 분리, 불변성 유지를 생각해보세요.
Props 변경State 변경Context 변경PureComponentReact.memo
모범답안
React 컴포넌트는 기본적으로 다음과 같은 조건에서 리렌더링됩니다.
- Props 변경: 컴포넌트에 전달되는 props가 이전과 달라질 때 리렌더링됩니다.
- State 변경: 컴포넌트 내부의 state가
setState를 통해 업데이트될 때 리렌더링됩니다. - Context 변경: 컴포넌트가 구독하고 있는 Context의 값이 변경될 때 리렌더링됩니다.
- 부모 컴포넌트 리렌더링: 부모 컴포넌트가 리렌더링되면 자식 컴포넌트도 기본적으로 리렌더링됩니다.
리렌더링 최적화 방법으로는 다음과 같은 것들이 있습니다.
React.memo: props 변경을 얕게 비교하여 불필요한 리렌더링을 방지합니다. 함수형 컴포넌트에 적용할 수 있습니다.PureComponent: 클래스형 컴포넌트에서 props와 state를 얕게 비교하여 리렌더링을 최적화합니다.- 상태 분리: 컴포넌트의 state를 필요한 부분만 관리하도록 분리하여 불필요한 리렌더링을 줄입니다.
- 불변성 유지: state나 props를 업데이트할 때 항상 새로운 객체를 생성하여 불변성을 유지하면 React가 변경을 더 쉽게 감지하고 최적화할 수 있습니다. 예를 들어, 배열을 업데이트할 때
push대신concat이나 스프레드 연산자를 사용합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.