질문 85 · 실전 면접 답변
React는 상태 변경을 어떤 방식으로 처리하나요?
이렇게 답해 보세요 (핵심 답변)
useState나 useReducer의 setter가 호출되면 React는 해당 업데이트 요청을 큐에 넣고 다음 렌더를 예약합니다. 이때 새 상태값이 이전 상태값과 Object.is 기준으로 동일하다면 불필요한 재렌더를 건너뛰며, 값이 달라졌다면 컴포넌트를 다시 호출해 새 UI 트리를 계산한 뒤 변경된 부분만 커밋 단계에서 DOM에 반영합니다. 즉 React가 모든 일반 객체 내부를 실시간으로 감시하는 것이 아니라, 명시적인 setter 호출과 참조 비교를 통해 상태 전이를 처리합니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 상태 값의 동일성 비교(Object.is)와 렌더 단계의 엘리먼트 트리 비교(Reconciliation), 커밋 단계의 DOM 반영은 각각 다른 단계의 작업입니다.
- 여러 상태 업데이트 요청이 한 이벤트 안에서 발생하면 React가 이를 배칭해 한 번의 렌더로 모아서 처리합니다.
면접에서 자주 하는 실수
React가 Vue의 반응형 프록시처럼 컴포넌트 안의 모든 일반 변수나 객체 프로퍼티 변화를 자동으로 감지해 화면을 갱신한다고 설명하면 안 됩니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 85번을 바탕으로 질문과 답변을 새로 정리했습니다.