반응형
useEffect
와 useMemo
는 React의 훅(Hook)이지만, 사용 목적과 동작 방식이 서로 다릅니다.
차이점 요약
useEffect
는 컴포넌트가 렌더링된 후에 실행되는 부수 효과를 다루는 데 사용됩니다.useMemo
는 계산 비용이 높은 연산의 결과를 메모이제이션하여 성능을 최적화하는 데 사용됩니다.useEffect
는 DOM 업데이트, 데이터 가져오기, 구독 설정과 같은 작업에 주로 사용됩니다.useMemo
는 복잡한 계산이나 재계산을 피해야 하는 값의 계산에 주로 사용됩니다.
1. useEffect
- 목적:
useEffect
는 컴포넌트의 렌더링이 완료된 후에 부수 효과(side effects)를 수행하기 위해 사용됩니다. 부수 효과는 데이터 가져오기, 구독 설정, 수동으로 DOM 조작하는 것 등을 포함할 수 있습니다. - 동작 방식:
useEffect
는 컴포넌트가 렌더링된 후에 실행됩니다. 종속성 배열(dependency array)을 제공하면, 해당 배열의 값이 변경될 때만 효과가 실행됩니다. 종속성 배열이 없는 경우, 컴포넌트가 렌더링될 때마다 효과가 실행됩니다. - 예시:
useEffect(() => { // API 호출 등의 부수 효과 수행 }, [dependencies]); // dependencies가 변경될 때마다 실행
2. useMemo
- 목적:
useMemo
는 계산 비용이 많이 드는 연산의 결과 값을 메모이제이션(캐싱)하여 성능을 최적화하는 데 사용됩니다. 값이 변경될 필요가 없는 복잡한 계산의 결과를 재사용할 수 있습니다. - 동작 방식:
useMemo
는 종속성 배열에 있는 값이 변경될 때만 메모이제이션된 값을 재계산합니다. 그 외의 경우에는 이전에 계산된 값을 재사용합니다. - 예시:
const memoizedValue = useMemo(() => { // 복잡한 계산 수행 return computeExpensiveValue(a, b); }, [a, b]); // a 또는 b가 변경될 때만 재계산
두 훅 모두 종속성 배열을 통해 최적화를 수행할 수 있지만, 그 목적과 사용하는 시나리오가 다릅니다.
반응형
'슬기로운 개발자생활 > Frontend' 카테고리의 다른 글
React HoC 고차 컴포넌트에 대한 이해 (예제 포함) (0) | 2024.01.10 |
---|---|
flex기반 CSS 스킬 (0) | 2024.01.05 |
[Front-end] HTML5 모든 태그, 속성 총 정리 (0) | 2020.12.04 |