This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
React 코어 딥다이브 - React 내부 동작 원리와 Fiber 아키텍처를 설명하는 프레젠테이션 프로젝트입니다. Reveal.js 기반으로 24개의 독립적인 HTML 슬라이드를 iframe으로 로드하는 구조입니다.
# 개발 서버 실행
pnpm dev
# 프로덕션 빌드
pnpm build
# 빌드 결과 미리보기
pnpm preview
# 코드 포맷팅
pnpm format
# 포맷팅 체크
pnpm format:check이 프로젝트는 하이브리드 아키텍처를 사용합니다:
-
메인 프레젠테이션 (Vite 번들링)
index.html: Reveal.js 컨테이너 + 24개 슬라이드의<section>태그src/presentation.js: Reveal.js 초기화 및 포커스 관리 로직 (ESM, 번들링됨)src/reveal-custom.css: Reveal.js 커스텀 스타일 (번들링됨)
-
개별 슬라이드 (정적 파일)
public/contents/1.html ~ 24.html: 각 슬라이드의 독립적인 HTMLpublic/css/common-style.css: 슬라이드 공통 스타일 (반응형 포함)- 각 슬라이드는
../css/common-style.css를 직접 참조
-
발표자 노트
index.html의 각<section>내부에<aside class="notes">태그로 포함- Reveal.js의 speaker view (S 키)에서 표시됨
- iframe 사용 이유: 각 슬라이드의 CSS 애니메이션과 스타일을 100% 격리하여 보존
- public/ 디렉토리: Vite는
public/내용을 빌드 시dist/로 그대로 복사 - 상대 경로 사용:
contents/1.html,../css/common-style.css는 GitHub Pages의 서브디렉토리 배포를 위해 상대 경로 사용
src/presentation.js + reveal.js
↓ (Vite 번들링)
dist/assets/index-[hash].js
public/contents/*.html
↓ (복사)
dist/contents/*.html
public/css/common-style.css
↓ (복사)
dist/css/common-style.css
빌드된 dist/index.html의 모든 절대 경로는 /react-core-deepdive/ prefix가 자동 추가됨 (vite.config.js의 base 설정).
public/contents/XX.html생성public/css/common-style.css스타일 사용index.html에<section><iframe src="contents/XX.html"></iframe></section>추가- 발표자 노트가 필요하면
<aside class="notes">추가
- 슬라이드 공통 스타일:
public/css/common-style.css수정- 반응형 브레이크포인트: 1024px, 768px, 640px
- 애니메이션: fadeInUp, slideInLeft, slideInRight, scaleIn
- Reveal.js 스타일:
src/reveal-custom.css수정
src/presentation.js의 포커스 관리 로직은 iframe 클릭 후에도 키보드 단축키가 작동하도록 합니다. 수정 시 queueMicrotask와 requestAnimationFrame 타이밍에 주의하세요.
- 자동 배포:
main브랜치에 push 시 GitHub Actions로 자동 배포 - 배포 URL:
https://chan9yu.github.io/react-core-deepdive/ - base path:
vite.config.js의base: "/react-core-deepdive/"설정 필수
public/디렉토리에 모든 정적 파일 존재 확인index.html의 iframe 경로가 상대 경로(contents/XX.html)인지 확인- 슬라이드 파일의 CSS 경로가
../css/common-style.css인지 확인 - GitHub 저장소 Settings → Pages에서 Source가 "GitHub Actions"인지 확인
- Node.js: >= 24.0.0
- pnpm: >= 10.0.0
- 패키지 매니저는 반드시 pnpm 사용 (
pnpm-lock.yaml존재)
- 화살표 키: 슬라이드 이동
- S 키: 발표자 모드 (노트, 타이머, 다음 슬라이드 미리보기)
- F 키: 전체화면
- ESC: 슬라이드 개요 보기