질문 79 · 실전 면접 답변
React state는 일반 변수와 어떻게 다른가요?
이렇게 답해 보세요 (핵심 답변)
React state는 컴포넌트가 다시 호출되는 렌더 사이에도 React가 값을 보존해 주고, setter를 호출하면 다음 화면 계산(재렌더)을 요청하는 컴포넌트의 기억 저장소입니다. 반면 함수 안의 일반 지역 변수는 렌더마다 새로 초기화되며 값을 바꿔도 React가 화면을 다시 그리지 않습니다. 또한 각 렌더에서의 state는 그 시점의 스냅샷이므로 setter를 호출한 직후에도 현재 실행 중인 함수 안의 변수 값은 즉시 바뀌지 않습니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 렌더 간 값 유지와 UI 재계산 트리거라는 두 가지 역할이 일반 지역 변수와 state를 구분하는 핵심입니다.
- 렌더 사이에 값은 유지해야 하지만 바뀌어도 화면을 다시 그릴 필요가 없다면 state 대신 ref를 선택하는 것이 적합합니다.
면접에서 자주 하는 실수
setter 호출 바로 다음 줄에서 찍은 console.log에 이전 state 값이 출력된다고 해서 상태 업데이트가 실패했다고 오해하지 않아야 합니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 79번을 바탕으로 질문과 답변을 새로 정리했습니다.