질문 83 · 실전 면접 답변
Props와 state는 무엇이 다른가요?
이렇게 답해 보세요 (핵심 답변)
props는 부모 컴포넌트로부터 전달받는 외부 입력값이고, state는 컴포넌트 내부에서 스스로 관리하며 렌더 사이에 유지하는 상태값입니다. 두 값 모두 현재 렌더 안에서는 직접 수정할 수 없는 읽기 전용 스냅샷으로 다루며, 상태 변경이 필요할 때는 상태를 소유한 컴포넌트가 setter를 호출해 다음 렌더를 요청합니다. 결국 부모의 state가 자식에게는 props로 내려갈 수 있으므로 데이터 자체의 생김새가 아니라 '누가 그 데이터의 소유권을 가지는가'가 둘을 구분하는 기준입니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 같은 사용자 이름 데이터라도 이를 관리하는 부모에서는 state이고, 받아서 표시하는 자식에서는 props가 됩니다.
- 부모가 내려준 props를 자식의 state로 그대로 복사해 두면 이후 부모 값이 바뀌었을 때 화면이 갱신되지 않는 동기화 문제가 생기기 쉽습니다.
면접에서 자주 하는 실수
useState(initialProp)처럼 props를 초기값으로 넣으면 첫 마운트에만 사용될 뿐, 나중에 props가 바뀌어도 state가 자동으로 함께 바뀌지 않는다는 점을 주의해야 합니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 83번을 바탕으로 질문과 답변을 새로 정리했습니다.