그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록React
React

React의 리렌더링은 어떤 단계로 동작하나요?

실무4/5
설계3/5
인간4/5
기초3/5

면접관의 질문 의도

Trigger·Render·Commit을 한 줄로 외웠는지가 아니라, 단계별 책임을 갈라 성능 이슈를 어디서부터 좁힐지 판단할 수 있는지를 본다. 자동 배칭이나 effect 타이밍까지 자연스럽게 엮어 설명하면 깊이가 드러난다.

큐레이션 답변

학습 자료

state·props가 바뀌면 Trigger가 걸려 업데이트가 큐에 들어간다. Render 단계에서 새 Virtual DOM을 계산하고 이전 트리와 비교하는데, 이 시점에는 DOM이 아직 안 바뀐다. Commit 단계에서야 diff 결과를 실제 DOM에 반영하고 ref·effect가 발화된다. 같은 이벤트 안의 여러 setState는 자동 배칭으로 한 번의 Render·Commit으로 묶인다. 성능 병목이 'Render가 비싼지'와 'Commit이 비싼지' 중 어느 쪽인지 갈라야 해결 방향이 갈린다.

좋은 답변 구조

  1. 01Trigger의 입력(state·props 변경, 부모 렌더)과 큐 등록을 먼저 정리한다
  2. 02Render 단계에서 Virtual DOM을 계산·비교하지만 DOM은 아직 안 바뀐다는 점을 짚는다
  3. 03Commit 단계에서 실제 DOM 반영, useLayoutEffect 동기 발화, useEffect 비동기 발화 순서를 설명한다
  4. 04자동 배칭으로 여러 setState가 한 번의 Render·Commit으로 묶이는 예외를 들어 한계/예외로 마무리한다

자주 실수하는 포인트

Render 단계에서 DOM이 즉시 바뀐다고 설명한다
setState마다 매번 별도 렌더가 돈다고 단정해 자동 배칭을 빠뜨린다
Render 비용과 Commit 비용을 구분하지 않고 'React가 느리다'로 뭉뚱그린다
useEffect가 Render 중에 또는 Commit과 동시에 실행된다고 잘못 말한다

실무 맥락

  • 입력할 때마다 상위 트리가 통째로 리렌더되는 큰 폼 화면
  • 수백 개 행이 깔린 리스트에서 한 줄만 바뀌어도 전체가 다시 그려지는 환경
  • Profiler로 render duration과 commit duration을 나눠 병목을 좁히는 성능 점검 상황
  • 라우팅·모달 토글에서 자동 배칭 경계나 비동기 이벤트 핸들러 배칭 차이를 만나는 경우

본인 경험에 녹이는 힌트

Profiler를 켜고 Render와 Commit 중 어느 쪽이 비쌌는지 직접 갈라 본 경험이 있다면 그 추적 과정을 그대로 풀어낼 수 있다

React.memo나 key 조정으로 리렌더 범위를 좁혔던 경험이 있다면 어떤 단계의 비용을 줄인 건지 설명할 수 있다

여러 setState를 한 핸들러에 모았더니 렌더 횟수가 줄었던 사례가 있다면 자동 배칭이 Trigger를 어떻게 합치는지와 연결할 수 있다

useEffect 안에서 DOM을 읽어야 했던 경험이 있다면 Commit 이후에 effect가 도는 타이밍과 묶어 말할 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1불필요한 리렌더를 줄이는 기본 전략은 무엇인가요
Q2리렌더와 리마운트는 어떻게 구분하나요
Q3useLayoutEffect와 useEffect는 어느 시점에 각각 실행되나요
Q4React 18의 자동 배칭은 이전 버전과 무엇이 달라졌나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문