피드로 돌아가기
How React Works (Part 5)? The React Lifecycle From the Inside: When Things Actually Run
Dev.toDev.to
Frontend

Render-Commit-Effect 분리로 UI 반응성 최적화 및 DOM 동기화 제어

How React Works (Part 5)? The React Lifecycle From the Inside: When Things Actually Run

Sam Abaasi2026년 5월 2일9intermediate

Context

컴포넌트 렌더링과 Side Effect 실행 시점의 불분명함으로 인한 UI 플리커링 및 성능 저하 문제 발생. 브라우저 페인팅 시점과 React 렌더링 파이프라인 간의 정밀한 동기화 제어 필요성 증대.

Technical Solution

  • Render-Commit-Effect의 3단계 파이프라인 구성을 통한 렌더링과 DOM 반영 및 부수 효과의 단계적 분리
  • useEffect의 Scheduler 큐 등록을 통한 Macro Task 기반 비동기 실행으로 브라우저 Paint 이후 작업 처리
  • useLayoutEffect의 Commit 단계 내 동기적 실행 배치를 통한 브라우저 Paint 전 DOM 측정 및 수정 보장
  • Cleanup 함수 우선 실행 메커니즘을 통한 동일 Effect의 중복 활성화 방지 및 자원 누수 차단
  • Fiber 트리 구조에 기반한 Children-first 순서의 Effect 및 Cleanup 처리 로직 적용

- 기본적으로 useEffect를 사용하여 메인 스레드 차단 및 UI 응답성 저하 방지 - DOM 측정 후 즉시 위치를 조정해야 하는 Tooltip 등의 UI 요소에는 useLayoutEffect 적용 - useEffect 전환 시 시각적 점프(Flicker) 발생 여부로 적절한 Hook 선택 검토 - Effect 내 외부 구독 및 타이머 설정 시 Cleanup 함수를 통한 명시적 자원 해제 구현

원문 읽기