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

Fanta Lab

질문 85 · 실전 면접 답변

React는 상태 변경을 어떤 방식으로 처리하나요?

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

useState나 useReducer의 setter가 호출되면 React는 해당 업데이트 요청을 큐에 넣고 다음 렌더를 예약합니다. 이때 새 상태값이 이전 상태값과 Object.is 기준으로 동일하다면 불필요한 재렌더를 건너뛰며, 값이 달라졌다면 컴포넌트를 다시 호출해 새 UI 트리를 계산한 뒤 변경된 부분만 커밋 단계에서 DOM에 반영합니다. 즉 React가 모든 일반 객체 내부를 실시간으로 감시하는 것이 아니라, 명시적인 setter 호출과 참조 비교를 통해 상태 전이를 처리합니다.

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

  1. 상태 값의 동일성 비교(Object.is)와 렌더 단계의 엘리먼트 트리 비교(Reconciliation), 커밋 단계의 DOM 반영은 각각 다른 단계의 작업입니다.
  2. 여러 상태 업데이트 요청이 한 이벤트 안에서 발생하면 React가 이를 배칭해 한 번의 렌더로 모아서 처리합니다.

면접에서 자주 하는 실수

React가 Vue의 반응형 프록시처럼 컴포넌트 안의 모든 일반 변수나 객체 프로퍼티 변화를 자동으로 감지해 화면을 갱신한다고 설명하면 안 됩니다.

원리와 예제까지 읽기

공식 참고 자료

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

← React