[React] 15강. useMemo - 언제 쓰고 언제 쓰지 말아야 할까

admin | | 조회 5


[주요 목차]

useMemo란 무엇인가?

useMemo의 사용 사례와 장점

실전 예제와 최적화 팁


안녕하세요! 오늘은 리액트에서 성능 최적화를 위해 자주 사용되는 `useMemo`에 대해 알아보려고 해요. 리액트 애플리케이션을 개발하면서 성능이 저하되는 경우가 많죠. 특히 상태가 변경될 때마다 불필요한 계산이 반복된다면 더욱 문제가 될 수 있어요. 그래서 `useMemo`를 사용하면 특정 값의 계산 결과를 메모이제이션하여 불필요한 연산을 방지할 수 있어요. 이 글을 통해 `useMemo`의 개념과 사용 방법, 그리고 실제 예제를 통해 성능을 최적화하는 방법을 배워보세요!


[React] 15강. useMemo - 언제 쓰고 언제 쓰지 말아야 할까 - 본문 이미지 1 - React[React] 15강. useMemo - 언제 쓰고 언제 쓰지 말아야 할까 · 본문 이미지 1

useMemo란 무엇인가?

useMemo는 리액트에서 제공하는 훅으로, 연산의 결과를 메모리에 저장해두어 동일한 입력값으로 다시 호출할 때 계산을 생략할 수 있게 해줘요. 이는 성능을 향상시키는 데 큰 도움이 되죠. 예를 들어, 카운트와 같은 상태가 변경될 때마다 계산이 필요 없는 값이 있다면, useMemo를 사용하여 해당 계산을 저장해두고, 그 값이 필요한 경우에만 계산하도록 할 수 있어요.

이 방식은 특히 배열이나 객체와 같은 복잡한 데이터 구조에서 효과적이에요. 예를 들어, 배열에서 짝수만 필터링하는 작업을 생각해 볼까요? 데이터가 많아질수록 필터링 작업은 성능 저하를 일으킬 수 있는데, 이때 useMemo를 활용하면 불필요한 계산을 줄일 수 있어요.

[React] 15강. useMemo - 언제 쓰고 언제 쓰지 말아야 할까 - 현장 스냅 2 - React[React] 15강. useMemo - 언제 쓰고 언제 쓰지 말아야 할까 · 현장 스냅 2

useMemo의 사용 사례와 장점

useMemo를 사용하는 대표적인 사례는 데이터가 많은 배열을 필터링하거나 정렬할 때에요. 예를 들어, 1에서 1,000,000까지의 숫자 중 짝수만 구하는 경우를 생각해볼 수 있어요. 만약 상태가 변경될 때마다 이 작업이 반복된다면 성능이 크게 저하되겠죠.

이럴 때 useMemo를 사용하면, 상태가 변경되었을 때만 필터링 작업을 다시 수행하도록 설정할 수 있어요. 이렇게 하면, 데이터가 많아도 성능 저하 없이 원활하게 작동할 수 있죠.

또한, useMemo는 캐시된 값을 재사용하므로, 컴포넌트가 다시 렌더링될 때마다 같은 계산을 반복하는 것을 피할 수 있어요. 이는 특히 컴포넌트가 자주 업데이트되는 경우 유용해요.

[React] 15강. useMemo - 언제 쓰고 언제 쓰지 말아야 할까 - 실전 화면 3 - React[React] 15강. useMemo - 언제 쓰고 언제 쓰지 말아야 할까 · 실전 화면 3

실전 예제와 최적화 팁

이제 실제 예제를 통해 useMemo를 어떻게 활용할 수 있는지 알아볼게요. 먼저, 상태를 관리할 컴포넌트를 만들어보세요. 카운트 버튼과 짝수/홀수 상태를 표시하는 컴포넌트를 작성할 수 있어요. 이때, 상태가 변경될 때마다 짝수/홀수를 계산하는 로직이 필요하죠.

이런 경우, useMemo를 사용하여 짝수/홀수 계산을 메모이제이션할 수 있어요. 아래와 같은 형태로 구현해보세요:

javascript const evenNumbers = useMemo(() => { return numbers.filter(num => num % 2 === 0); }, [numbers]); // numbers가 변경될 때만 재계산

이렇게 하면, numbers가 변경되지 않는 한 evenNumbers는 이전 계산 결과를 재사용하게 되죠. 이를 통해 성능을 크게 향상시킬 수 있어요.

마지막으로, useMemo를 사용할 때는 남용하지 않도록 주의하세요. 간단한 계산에는 오히려 성능을 저하시킬 수 있으니, 복잡한 계산이 필요할 때만 사용하는 것이 좋아요.


[자주 묻는 질문]

useMemo는 언제 사용해야 하나요?

`useMemo`는 성능 최적화가 필요할 때 사용합니다. 특히 배열이나 객체와 같은 복잡한 데이터에서 필터링, 정렬 등의 작업을 수행할 때 효과적이에요. 상태가 자주 변경되는 경우 불필요한 계산을 방지할 수 있어요.

useMemo를 남용하면 어떤 문제가 발생하나요?

`useMemo`를 남용하면 오히려 성능이 저하될 수 있어요. 간단한 계산에는 사용하지 않는 것이 좋고, 복잡한 연산이 필요한 경우에만 사용하는 것이 효과적이에요.

useMemo와 useCallback의 차이는 무엇인가요?

`useMemo`는 계산 결과를 메모이제이션하는 데 사용되며, `useCallback`은 함수를 메모이제이션하는 데 사용됩니다. 두 훅 모두 성능 최적화를 목적으로 하지만, 사용되는 대상이 다르니 상황에 맞게 선택해야 해요.

목록
글쓰기
한국 서버호스팅
전체보기 →

댓글 0

jpg/png/gif/webp/zip · 최대 100MB · 10개

리뷰

0
0건의 리뷰
5★
0
4★
0
3★
0
2★
0
1★
0
0/5000
아직 작성된 리뷰가 없습니다. 첫 리뷰를 남겨주세요!