프론트엔드 개발 · 중급
React의 useEffect Hook의 의존성 배열(dependency array)은 어떻게 동작하나요?
힌트 · 빈 배열, 특정 값, 생략했을 때의 차이를 설명해보세요.
의존성렌더링상태props최적화
모범답안
useEffect Hook의 의존성 배열은 effect가 언제 다시 실행될지를 결정하는 중요한 역할을 합니다.
의존성 배열이 비어있으면 ([]), 컴포넌트가 처음 마운트될 때 딱 한 번만 effect가 실행됩니다. 컴포넌트가 언마운트될 때 정리(cleanup) 함수가 있다면 그때 실행됩니다.
특정 값을 의존성 배열에 넣으면 ([count]), 해당 값들이 이전 렌더링과 비교해서 변경되었을 때만 effect가 다시 실행됩니다. 이를 통해 불필요한 effect 실행을 막고 성능을 최적화할 수 있습니다.
의존성 배열을 생략하면, 컴포넌트가 렌더링될 때마다 effect가 실행됩니다. 이는 상태나 props가 변경될 때마다 effect를 실행해야 하는 경우에 유용하지만, 무분별하게 사용하면 성능 문제를 일으킬 수 있습니다. 따라서 의존성 배열을 신중하게 관리하는 것이 중요합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 React 면접 질문
- 함수형 컴포넌트와 클래스 컴포넌트의 차이점은 무엇이며, 최근에는 왜 함수형 컴포넌트가 권장되나요?
- props와 state의 차이점은 무엇인가요? 각각 누가 소유하고 변경할 수 있는지 함께 설명해주세요.
- React에서 props는 왜 읽기 전용(read-only)이어야 하나요? 자식 컴포넌트에서 props를 직접 수정하면 어떤 문제가 생기나요?
- React에서 상태 관리 라이브러리를 사용하는 이유는 무엇인가요?
- React의 useState와 useReducer의 차이점과 사용 기준은 무엇인가요?
- React의 useCallback과 useMemo의 차이점과 사용 시 주의사항은?