프론트엔드 개발 · 중급
React의 제어 컴포넌트와 비제어 컴포넌트의 차이점은?
힌트 · 상태 관리 위치와 ref 사용을 비교해보세요.
상태제어propsDOMref
모범답안
React에서 제어 컴포넌트와 비제어 컴포넌트는 폼 요소의 상태 관리 방식에 따라 구분됩니다.
제어 컴포넌트는 React 컴포넌트의 상태(state)가 폼 요소의 값을 제어합니다. 즉, 폼 요소의 값은 React state에 저장되고, state가 변경될 때마다 폼 요소가 업데이트됩니다. onChange 이벤트 핸들러를 통해 state를 업데이트하는 방식으로 구현됩니다. 데이터 흐름을 예측하기 쉽고, 유효성 검사 등을 중앙 집중적으로 관리할 수 있다는 장점이 있습니다.
반면, 비제어 컴포넌트는 폼 요소의 값을 React state가 아닌 DOM 자체에 저장합니다. ref를 사용하여 DOM 요소에 직접 접근하여 값을 가져오거나 설정합니다. 초기값 설정이나 특정 상황에서만 값을 읽어올 때 유용하지만, React의 데이터 흐름에서 벗어나기 때문에 상태 관리가 복잡해질 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 React 면접 질문
- React의 useCallback과 useMemo의 차이점과 사용 시 주의사항은?
- React에서 컴포넌트 리렌더링이 발생하는 조건과 최적화 방법에 대해 설명해주세요.
- React의 Context API와 상태 관리 라이브러리의 차이점과 선택 기준은?
- React Server Components란 무엇이며, 기존 SSR과의 차이점은?
- React의 Concurrent Mode와 useTransition, useDeferredValue에 대해 설명해주세요.
- React의 useImperativeHandle Hook의 용도와 사용법에 대해 설명해주세요.