front_7th_chapter2-2

React 구현 과제 문서

React의 핵심 기능을 직접 구현해보며 내부 동작 원리를 이해하기 위한 종합 가이드입니다.

📚 문서 구성

01. 구현 가이드

02. 시퀀스 다이어그램

03. 기초 지식

🎯 학습 목표

이 과제를 통해 다음을 이해할 수 있습니다:

🚀 시작하기

  1. 기초 지식 학습: 03-fundamental-knowledge.md로 필수 개념 정리
  2. 시퀀스 이해: 02-sequence-diagrams.md에서 전체 호출 흐름 파악
  3. 단계별 구현: 01-implementation-guide.md의 체크리스트에 따라 진행

📋 구현 체크리스트

✅ 기본 과제

기본 과제 완료 기준: basic.equals.test.tsx, basic.mini-react.test.tsx 전부 통과

🚀 심화 과제

심화 과제 완료 기준: advanced.hooks.test.tsx, advanced.hoc.test.tsx 전부 통과

🧪 테스트 가이드

# 기본 과제 검증
npm test basic.equals.test.tsx
npm test basic.mini-react.test.tsx

# 심화 과제 검증
npm test advanced.hooks.test.tsx
npm test advanced.hoc.test.tsx

# 전체 테스트
npm test

💡 주요 개념

Virtual DOM

JavaScript 객체로 표현된 가상의 DOM 트리. 실제 DOM 조작의 비용을 줄이기 위해 사용됩니다.

Reconciliation

이전 Virtual DOM과 새로운 Virtual DOM을 비교하여 실제 DOM에 최소한의 변경만 적용하는 과정입니다.

Hooks

함수형 컴포넌트에서 상태와 생명주기 기능을 사용할 수 있게 해주는 메커니즘입니다. 호출 순서가 보장되어야 합니다.

컴포넌트 패스

각 컴포넌트 인스턴스를 고유하게 식별하기 위한 경로입니다. ("0.c0.i1.c2" 형식)

🔧 디버깅 팁

상태 추적

console.log('Component path:', hooks.currentPath);
console.log('Hook cursor:', hooks.currentCursor);
console.log('Current state:', hooks.currentHooks);

렌더링 추적

console.log('Reconciling:', {
  newType: newNode?.type,
  oldType: oldInstance?.node?.type
});

의존성 비교

console.log('Deps changed:', {
  prev: prevDeps,
  next: nextDeps,
  equal: shallowEquals(prev, next)
});

📖 참고 자료


이 문서들을 통해 React의 내부 동작 원리를 깊이 이해하고, 실제로 동작하는 React 구현체를 만들어보세요! 🚀