학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 83 · 실전 면접 답변

Props와 state는 무엇이 다른가요?

이렇게 답해 보세요 (핵심 답변)

props는 부모 컴포넌트로부터 전달받는 외부 입력값이고, state는 컴포넌트 내부에서 스스로 관리하며 렌더 사이에 유지하는 상태값입니다. 두 값 모두 현재 렌더 안에서는 직접 수정할 수 없는 읽기 전용 스냅샷으로 다루며, 상태 변경이 필요할 때는 상태를 소유한 컴포넌트가 setter를 호출해 다음 렌더를 요청합니다. 결국 부모의 state가 자식에게는 props로 내려갈 수 있으므로 데이터 자체의 생김새가 아니라 '누가 그 데이터의 소유권을 가지는가'가 둘을 구분하는 기준입니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 같은 사용자 이름 데이터라도 이를 관리하는 부모에서는 state이고, 받아서 표시하는 자식에서는 props가 됩니다.
  2. 부모가 내려준 props를 자식의 state로 그대로 복사해 두면 이후 부모 값이 바뀌었을 때 화면이 갱신되지 않는 동기화 문제가 생기기 쉽습니다.

면접에서 자주 하는 실수

useState(initialProp)처럼 props를 초기값으로 넣으면 첫 마운트에만 사용될 뿐, 나중에 props가 바뀌어도 state가 자동으로 함께 바뀌지 않는다는 점을 주의해야 합니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 83번을 바탕으로 질문과 답변을 새로 정리했습니다.

← React