프론트엔드 개발 · 기초
props와 state의 차이점은 무엇인가요? 각각 누가 소유하고 변경할 수 있는지 함께 설명해주세요.
힌트 · 데이터를 누가 내려주고 누가 바꿀 수 있는지, 읽기 전용 여부의 관점에서 접근하세요.
propsstate부모 컴포넌트자식 컴포넌트불변성
모범답안
props와 state의 가장 큰 차이점은 데이터의 소유권과 변경 가능성에 있습니다.
props는 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하는 데 사용됩니다. props는 자식 컴포넌트에서 읽기 전용으로, 자식 컴포넌트 자체에서는 변경할 수 없습니다. 마치 부모가 자식에게 물려주는 용돈과 같다고 생각하시면 됩니다.
반면에 state는 컴포넌트 내부에서 관리되는 데이터입니다. state는 컴포넌트 자체에서 변경할 수 있으며, 컴포넌트의 상태 변화에 따라 UI를 업데이트하는 데 사용됩니다. 이는 컴포넌트가 자체적으로 가지는 변수와 비슷합니다.
정리하자면, props는 부모가 내려주는 읽기 전용 데이터이고, state는 컴포넌트 스스로가 관리하고 변경할 수 있는 데이터입니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 React 면접 질문
- React에서 JSX란 무엇이며, 브라우저가 직접 이해하지 못하는 JSX가 실제로 어떻게 동작할 수 있는지 설명해주세요.
- JSX 문법에서 class 대신 className을, for 대신 htmlFor를 쓰는 이유는 무엇인가요?
- 함수형 컴포넌트와 클래스 컴포넌트의 차이점은 무엇이며, 최근에는 왜 함수형 컴포넌트가 권장되나요?
- React에서 props는 왜 읽기 전용(read-only)이어야 하나요? 자식 컴포넌트에서 props를 직접 수정하면 어떤 문제가 생기나요?
- React의 useEffect Hook의 의존성 배열(dependency array)은 어떻게 동작하나요?
- React에서 상태 관리 라이브러리를 사용하는 이유는 무엇인가요?