## πŸ“Œ Brief Summary JSXλŠ” UIλ₯Ό μƒνƒœ(state)와 속성(props)의 순수 ν•¨μˆ˜λ‘œ ν‘œν˜„ν•˜λŠ” μ„ μ–Έν˜•(declarative) μ»΄ν¬λ„ŒνŠΈ 트리 μž‘μ„± 문법이닀. HTMLκ³Ό μœ μ‚¬ν•œ ꡬ문을 톡해 UI ꡬ쑰λ₯Ό μ§κ΄€μ μœΌλ‘œ 섀계할 수 있게 ν•˜λ©°, React Compiler와 같은 ν˜„λŒ€μ μΈ 도ꡬ듀을 톡해 κ³ μ„±λŠ₯ λ Œλ”λ§ μ΅œμ ν™”λ₯Ό μžλ™μœΌλ‘œ μˆ˜ν–‰ν•œλ‹€. ## πŸ“– Core Content 1. **선언적 μ»΄ν¬λ„ŒνŠΈ ν•©μ„± (Composition)** - UIλ₯Ό 독립적인 μ—˜λ¦¬λ¨ΌνŠΈλ“€μ˜ 트리 ꡬ쑰둜 μ‚¬κ³ ν•˜κ³  μ‘°λ¦½ν•˜λ„λ‘ μœ λ„ν•˜μ—¬ μ½”λ“œμ˜ 예츑 κ°€λŠ₯성을 높인닀. - JSX μžμ²΄λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 μœ„μΉ˜λ₯Ό κ°•μ œν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, μ•„ν‚€ν…μ²˜μ  μ œμ•½(FSD λ“±)을 톡해 둜직 λˆ„μˆ˜λ₯Ό λ°©μ§€ν•΄μ•Ό ν•œλ‹€. 2. **λͺ¨λ˜ λΉŒλ“œ μ‹œμŠ€ν…œκ³Ό JSX 컴파일** - Vite ν™˜κ²½μ—μ„œλŠ” esbuild λ˜λŠ” SWC(Rust 기반)λ₯Ό ν™œμš©ν•˜μ—¬ λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ—μ„œλ„ μ‹€μ‹œκ°„μ— κ°€κΉŒμš΄ 컴파일 속도λ₯Ό μ œκ³΅ν•œλ‹€. - `@vitejs/plugin-react-swc` 적용 μ‹œ HMR(Hot Module Replacement) μ„±λŠ₯이 κ·ΉλŒ€ν™”λœλ‹€. 3. **React Compilerλ₯Ό ν†΅ν•œ μžλ™ μ΅œμ ν™”** - 기쑴의 μˆ˜λ™ λ©”λͺ¨μ΄μ œμ΄μ…˜(useMemo λ“±) ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄, λΉŒλ“œ νƒ€μž„μ— JSX λ‚΄μ˜ κ°œλ³„ μ—˜λ¦¬λ¨ΌνŠΈ λ‹¨μœ„λ‘œ 독립적이고 μ •λ°€ν•œ 캐싱을 μˆ˜ν–‰ν•œλ‹€. 4. **인라인 ν•¨μˆ˜ μ‚¬μš© μ‹œ 주의점** - JSX λ‚΄λΆ€μ—μ„œ 읡λͺ… ν•¨μˆ˜λ₯Ό 직접 μ •μ˜ν•˜λŠ” ν–‰μœ„λŠ” λ§€ λ Œλ”λ§λ§ˆλ‹€ μƒˆλ‘œμš΄ μ°Έμ‘°λ₯Ό μƒμ„±ν•˜μ—¬ μžμ‹ μ»΄ν¬λ„ŒνŠΈμ˜ λΆˆν•„μš”ν•œ λ¦¬λ Œλ”λ§μ„ μœ λ°œν•˜λ―€λ‘œ μ§€μ–‘ν•΄μ•Ό ν•œλ‹€. ## βš–οΈ Trade-offs & Caveats - **둜직 혼재의 μœ„ν—˜**: JSX의 자유둜운 νŠΉμ„±μœΌλ‘œ 인해 UI λ§ˆν¬μ—… 사이에 λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™μ΄ μ„žμ—¬ μ»΄ν¬λ„ŒνŠΈκ°€ λΉ„λŒ€ν•΄μ§€κ³  μœ μ§€λ³΄μˆ˜κ°€ μ–΄λ €μ›Œμ§ˆ 수 μžˆλ‹€. - **도ꡬ μ˜μ‘΄μ„±**: React Compiler와 같은 μžλ™ μ΅œμ ν™” λ„κ΅¬λŠ” 'Rules of React'(μˆœμˆ˜μ„± λ“±)λ₯Ό μ—„κ²©νžˆ μ€€μˆ˜ν•˜λŠ” μ½”λ“œμ—μ„œλ§Œ μ•ˆμ „ν•˜κ²Œ μž‘λ™ν•˜λ―€λ‘œ, κΈ°μ‘΄ λ ˆκ±°μ‹œ μ½”λ“œμ™€μ˜ ν˜Έν™˜μ„± κ²€ν† κ°€ ν•„μš”ν•˜λ‹€. - **좔상화 λΉ„μš©**: JSX μ„±λŠ₯을 μœ„ν•΄ λͺ¨λ“  ν•¨μˆ˜λ₯Ό useCallback으둜 κ°μ‹ΈλŠ” μˆ˜λ™ μ΅œμ ν™”λŠ” μ½”λ“œμ˜ 가독성을 ν•΄μΉ˜κ³  관리 λΉ„μš©μ„ μ¦κ°€μ‹œν‚€λŠ” νŠΈλ ˆμ΄λ“œμ˜€ν”„κ°€ μžˆλ‹€. ## πŸ”— Knowledge Connections ### Related Concepts (Auto-Linked) * [[Feature-Sliced_Design]] * [[React]] * [[React_Compiler]] * [[Research]] * [[State]] * [[Virtual_DOM]] ### Related Concepts * **Component Trees**: JSX둜 쑰립된 UI의 논리적 ꡬ쑰 (관계: 핡심 데이터 λͺ¨λΈ) * **React Compiler**: JSX λ Œλ”λ§ μžλ™ μ΅œμ ν™” μ—”μ§„ (관계: μ„±λŠ₯ κ°œμ„  도ꡬ) * **SWC**: μ΄ˆκ³ μ† JSX 컴파일러 (관계: λΉŒλ“œ νƒ€μž„ 인프라) ### Deeper Research Questions 1. React Compilerκ°€ JSX λ‚΄μ˜ κ°œλ³„ νƒœκ·Έλ₯Ό λ©”λͺ¨μ΄μ œμ΄μ…˜ν•  λ•Œ μ‚¬μš©ν•˜λŠ” 'μ˜μ‘΄μ„± 뢄석' μ•Œκ³ λ¦¬μ¦˜μ˜ 핡심 μ›λ¦¬λŠ” 무엇인가? 2. JSX λ‚΄λΆ€ 인라인 ν•¨μˆ˜κ°€ μ„±λŠ₯에 λ―ΈμΉ˜λŠ” μ•…μ˜ν–₯이 React Compiler λ„μž… 이후에도 μ—¬μ „νžˆ μœ νš¨ν•œ μ œμ•½ 사항인가? 3. Vite + SWC ν™˜κ²½μ—μ„œ JSX 컴파일 μ‹œ λ°œμƒν•˜λŠ” 'Fast Refresh'의 λ‚΄λΆ€ μž‘λ™ λ©”μ»€λ‹ˆμ¦˜μ€ 무엇인가? 4. λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 JSX λ§ˆν¬μ—…μ„ 물리적으둜 μ™„μ „νžˆ λΆ„λ¦¬ν•˜κΈ° μœ„ν•œ 'View-Model' νŒ¨ν„΄μ˜ ν”„λ‘ νŠΈμ—”λ“œμ  해석은? 5. JSXμ—μ„œ 'Fragment'와 'Wrapper Div'κ°€ λ Œλ”λ§ μ„±λŠ₯ 및 DOM 트리 κΉŠμ΄μ— λ―ΈμΉ˜λŠ” μ‹€μ§ˆμ μΈ μ°¨μ΄λŠ”? ### Practical Application Contexts * **λ Œλ”λ§ μ΅œμ ν™”**: JSX λ‚΄ 이벀트 ν•Έλ“€λŸ¬λ₯Ό λ°–μœΌλ‘œ λΆ„λ¦¬ν•˜μ—¬ μ°Έμ‘° μ•ˆμ •μ„± 확보. * **λΉŒλ“œ 속도 κ°œμ„ **: Vite μ„€μ •μ—μ„œ SWC ν”ŒλŸ¬κ·ΈμΈμ„ λ„μž…ν•˜μ—¬ 둜컬 개발 ν™˜κ²½μ˜ ν•« λ¦¬λ‘œλ”© 속도 κ°œμ„ . ### Adjacent Topics * **Memoization (useMemo, useCallback)** * **Feature-Sliced Design (FSD)** * **Virtual DOM vs Incremental DOM**