프론트엔드 개발 · 중급
React의 useState와 useReducer의 차이점과 사용 기준은 무엇인가요?
힌트 · 상태 복잡도, 업데이트 로직, 테스트 용이성을 비교해보세요.
상태 관리복잡성예측 가능성액션불변성
모범답안
useState와 useReducer는 React에서 상태 관리를 위한 Hook입니다. 가장 큰 차이점은 상태 업데이트 로직의 복잡성에 있습니다.
useState는 간단한 상태를 관리할 때 유용합니다. 상태가 단순하고 업데이트 로직이 간단할 때 직관적으로 사용할 수 있습니다. 예를 들어, 단순히 숫자를 증가시키거나 문자열을 변경하는 경우에 적합합니다.
반면, useReducer는 상태가 복잡하고 업데이트 로직이 여러 액션에 따라 달라질 때 효과적입니다. 상태 변화를 예측 가능하게 만들고, 상태 업데이트 로직을 reducer 함수로 분리하여 관리하므로 유지보수성이 높아집니다. 또한, 액션과 상태 변화를 분리하여 테스트하기 용이합니다.
useReducer는 useState보다 초기 설정이 복잡하지만, 복잡한 상태 관리를 위한 강력한 도구입니다. 상태의 복잡성과 업데이트 로직을 고려하여 적절한 Hook을 선택하는 것이 중요합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 React 면접 질문
- React에서 props는 왜 읽기 전용(read-only)이어야 하나요? 자식 컴포넌트에서 props를 직접 수정하면 어떤 문제가 생기나요?
- React의 useEffect Hook의 의존성 배열(dependency array)은 어떻게 동작하나요?
- React에서 상태 관리 라이브러리를 사용하는 이유는 무엇인가요?
- React의 useCallback과 useMemo의 차이점과 사용 시 주의사항은?
- React에서 컴포넌트 리렌더링이 발생하는 조건과 최적화 방법에 대해 설명해주세요.
- React의 Context API와 상태 관리 라이브러리의 차이점과 선택 기준은?