상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
달리기를 할 때의 올바른 발 착지 방법은?
뮌헨의 유명한 스포츠 이벤트는 무엇인가요?
뮌헨의 유명한 문화 행사 일정은 어떻게 되나요?
말레이시아의 전통적인 아침 식사는 무엇인가요?
핫야이에서 즐길 수 있는 액티비티는 무엇인가요?
핫야이에서의 여행 중 추천하는 지역 문화 체험은 무엇인가요?
대만의 17세기 전통 의복은 어떤 모습이었나요?
카테킨이 혈당 조절에 미치는 영향은?
과신이 개인의 목표 설정에 미치는 영향은?
과신이 사회적 지지망에 미치는 영향은?
내재가치 평가에서 미래 현금 흐름의 예측은 어떻게 이루어지나요?
내재가치와 기업의 재무 성과 간의 관계는 무엇인가요?
Previous
Next
수정하기 - React.memo는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`React.memo`는 React에서 제공하는 고차 컴포넌트(Higher Order Component)로, 주로 성능 최적화를 위해 사용됩니다. 이 기능은 컴포넌트가 동일한 props를 받을 때, 불필요한 리렌더링을 방지하여 애플리케이션의 성능을 향상시키는 데 도움을 줍니다. 기본 개념 React는 기본적으로 상태(state)나 props가 변경될 때마다 컴포넌트를 리렌더링합니다. 그러나 어떤 경우에는 props가 변경되지 않았음에도 불구하고 컴포넌트가 리렌더링되는 것이 비효율적일 수 있습니다. `React.memo`는 이러한 상황에서 유용하게 사용됩니다. 사용법 `React.memo`는 함수형 컴포넌트를 감싸는 형태로 사용됩니다. 다음은 기본적인 사용 예시입니다. ```javascript import React from 'react'; const MyComponent = React.memo(({ name }) => { console.log('Rendering:', name); return <div>Hello, {name}!</div>; }); ``` 위의 예시에서 `MyComponent`는 `name` prop이 변경되지 않는 한 리렌더링되지 않습니다. 만약 부모 컴포넌트가 리렌더링되더라도 `name` prop이 동일하다면 `MyComponent`는 다시 렌더링되지 않습니다. 커스텀 비교 함수 기본적으로 `React.memo`는 얕은 비교(shallow comparison)를 사용하여 props의 변경 여부를 판단합니다. 그러나 필요에 따라 커스텀 비교 함수를 제공하여 더 복잡한 비교 로직을 구현할 수 있습니다. 다음은 그 예시입니다. ```javascript const MyComponent = React.memo( ({ name, age }) => { console.log('Rendering:', name); return <div>{name} is {age} years old.</div>; }, (prevProps, nextProps) => { return prevProps.name === nextProps.name && prevProps.age === nextProps.age; } ); ``` 위의 예시에서 커스텀 비교 함수는 `name`과 `age`가 모두 동일할 때만 리렌더링을 방지합니다. 언제 사용해야 할까? `React.memo`는 다음과 같은 경우에 유용합니다: 1. 리렌더링 비용이 높은 컴포넌트 : 복잡한 UI를 렌더링하는 컴포넌트는 리렌더링 비용이 크므로, `React.memo`를 사용하여 성능을 최적화할 수 있습니다. 2. 상태가 자주 변경되는 부모 컴포넌트 : 부모 컴포넌트의 상태가 자주 변경되지만, 자식 컴포넌트의 props는 자주 변경되지 않는 경우에 유용합니다. 3. <a href='https://sangseek.com/sangseeks/불변성 유지/ko'>불변성 유지</a> : props가 불변성을 유지하는 경우, `React.memo`를 통해 성능을 더욱 향상시킬 수 있습니다. 주의사항 - `React.memo`는 모든 경우에 성능을 향상시키는 것은 아닙니다. 간단한 컴포넌트나 props가 자주 변경되는 경우에는 오히려 성능 저하를 초래할 수 있습니다. - `React.memo`는 함수형 컴포넌트에만 적용됩니다. <a href='https://sangseek.com/sangseeks/클래스형 컴포넌트/ko'>클래스형 컴포넌트</a>에는 사용할 수 없습니다. - `React.memo`는 props가 변경되지 않는 경우에만 리렌더링을 방지하므로, 상태가 변경되는 경우에는 여전히 리렌더링이 발생합니다. 결론 `React.memo`는 React 애플리케이션에서 성능을 최적화하는 데 매우 유용한 도구입니다. 적절한 상황에서 사용하면 불필요한 리렌더링을 방지하고, 사용자 경험을 개선할 수 있습니다. 그러나 모든 컴포넌트에 적용하는 것은 바람직하지 않으며, 성능을 측정하고 최적화할 필요가 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기