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

Service

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

My

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

Policy

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

© 2026 그알것 · What Still Matters

질문 목록Rendering
Rendering

리액트의 render phase와 commit phase에 대해서 설명해주세요

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

면접관의 질문 의도

두 단어를 들어본 적 있는 수준인지, render의 _순수 계산_과 commit의 _동기 반영_을 동시성 맥락까지 연결해 설명하는 사람인지를 가른다.

큐레이션 답변

학습 자료

render phase는 state/props 변화를 받아 다음 UI를 _계산_하는 단계로, 컴포넌트 함수를 실행해 새 virtual tree를 만든다. 동시성 모드에서는 이 단계가 _중단·재실행_될 수 있어 부수 효과를 넣으면 안 된다. commit phase는 계산 결과를 실제 DOM에 반영하고 useLayoutEffect 동기 실행, 이어서 useEffect 비동기 실행으로 이어지는 _동기 반영 구간_이다. 이 분리가 React 18 동시성 처리, 우선순위 기반 업데이트의 기반이 된다.

좋은 답변 구조

  1. 01render(계산)·commit(반영) 두 단계의 정의와 입력/출력을 정리한다
  2. 02render 중단·재실행 특성과 commit의 동기 실행 특성을 차이 축으로 설명한다
  3. 03useLayoutEffect는 commit 동기, useEffect는 페인트 이후 비동기라는 트레이드오프를 짚는다
  4. 04render에서 부수 효과를 빼는 실무 기준으로 마무리한다

자주 실수하는 포인트

render 단계에서 DOM이 즉시 변경된다고 설명한다
useEffect와 useLayoutEffect가 도는 단계를 헷갈린다
render 본문에서 fetch/상태 변경을 호출해 무한 루프나 중복 호출을 만든다
동시성 모드에서 render가 중단·재실행될 수 있다는 사실을 고려하지 않는다

실무 맥락

  • 입력 반응성이 중요한 검색/필터 화면에서 startTransition으로 우선순위를 가르는 작업
  • 복잡한 상태 변경으로 렌더가 잦은 대시보드의 부수 효과 위치를 점검하는 작업
  • useLayoutEffect로 측정 후 동기 보정해야 하는 위치/포커스 보정 코드

본인 경험에 녹이는 힌트

render 본문에서 호출되던 fetch를 useEffect로 옮겨 무한 루프를 끊은 적이 있다면 두 단계 분리 이야기로 자연스럽게 이어진다

useLayoutEffect로 측정-보정을 한 프레임 안에 끝내본 적이 있다면 commit 단계 동기 실행 이유를 그대로 답변 후크로 쓸 수 있다

Profiler에서 render와 commit 비용을 따로 들여다본 경험이 있다면 어느 쪽이 진짜 병목이었는지로 말할 수 있다

커뮤니티 인기 답변

전체 0개

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

관련 꼬리 질문

Q1useLayoutEffect와 useEffect는 어느 단계에서 차이가 나나요
Q2Concurrent Rendering에서 render가 중단되면 어떤 일이 생기나요
Q3commit 비용이 높은 컴포넌트는 어떻게 최적화하나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문