--- id: wiki-2026-0508-batching title: Batching category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [P-Reinforce-AUTO-723577] duplicate_of: none source_trust_level: A confidence_score: 0.9 tags: [auto-reinforced] raw_sources: [] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Batching" inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Batching|Batching]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > Batching(λ°°μΉ­)은 λ Œλ”λ§ μ„±λŠ₯을 μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ 개의 λ Œλ”λ§ κ°μ²΄λ‚˜ 처리 λͺ…령을 ν•˜λ‚˜μ˜ 그룹으둜 λ¬Άμ–΄ μΌκ΄„μ μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” κΈ°λ²•μž…λ‹ˆλ‹€. 주둜 3D κ·Έλž˜ν”½μŠ€([[WebGL|WebGL]], WebGPU) ν™˜κ²½μ—μ„œ GPU둜 λ³΄λ‚΄λŠ” λ“œλ‘œμš° 콜([[Draw Call|Draw Call]]) 횟수λ₯Ό 쀄여 μ„±λŠ₯ μ˜€λ²„ν—€λ“œλ₯Ό μ΅œμ†Œν™”ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. λ˜ν•œ μ›Ή 개발 ν™˜κ²½μ—μ„œλŠ” DOM의 읽기 및 μ“°κΈ° μž‘μ—…μ„ λ¬Άμ–΄ λΆˆν•„μš”ν•œ λ ˆμ΄μ•„μ›ƒ μž¬κ³„μ‚°μ„ λ°©μ§€ν•˜λŠ” λͺ©μ μœΌλ‘œλ„ ν™œμš©λ©λ‹ˆλ‹€. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **λ“œλ‘œμš° 콜(Draw Call) μ΅œμ†Œν™” μ „λž΅** μ„±λŠ₯은 μ’…μ’… μ‹€ν–‰λ˜λŠ” λͺ…λ Ή(λ“œλ‘œμš° 콜)의 μˆ˜μ— 크게 μ˜μ‘΄ν•˜κΈ° λ•Œλ¬Έμ—, μ—¬λŸ¬ 그리기 ν˜ΈμΆœμ„ ν•˜λ‚˜μ˜ WebGL 호좜둜 λ³‘ν•©ν•˜λŠ” λ°°μΉ­ κΈ°λŠ₯은 μ„±λŠ₯ ν–₯μƒμ˜ ν•΅μ‹¬μž…λ‹ˆλ‹€ [1, 2]. * **3D κ·Έλž˜ν”½μŠ€ μ—”μ§„μ—μ„œμ˜ ν™œμš©** * **[[Cesium|Cesium]]:** μ—¬λŸ¬ 객체λ₯Ό ν•˜λ‚˜μ˜ λͺ…λ ΉμœΌλ‘œ κ²°ν•©ν•˜κΈ° μœ„ν•΄ 배칭을 μ‚¬μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, `BillboardCollection`은 κ°€λŠ₯ν•œ ν•œ λ§Žμ€ λΉŒλ³΄λ“œ(Billboard)λ₯Ό ν•˜λ‚˜μ˜ 정점 버퍼(Vertex Buffer)에 μ €μž₯ν•˜κ³ , 이λ₯Ό λ™μΌν•œ 셰이더λ₯Ό 톡해 λ Œλ”λ§ν•¨μœΌλ‘œμ¨ λͺ…λ Ήμ˜ 수λ₯Ό λŒ€ν­ μ€„μž…λ‹ˆλ‹€ [1]. λ˜ν•œ 엔진이 κ°€μ‹œ μ ˆλ‘μ²΄(Frustum)λ₯Ό λΆ„ν• ν•  λ•Œλ§ˆλ‹€ λͺ…령을 κ°œλ³„μ μœΌλ‘œ μ •λ ¬ 및 λ°°μΉ­(Batch)ν•˜μ—¬ μž‘λ™ μ§€μ—° μ‹œκ°„μ„ μ΅œμ†Œν™”ν•©λ‹ˆλ‹€ [3]. * **[[Wonder|Wonder]]land Engine:** λ°°μΉ­ κΈ°λŠ₯을 κ·Ήν•œμœΌλ‘œ μ μš©ν•˜μ—¬, 수만 개의 동적 객체가 ν¬ν•¨λœ μž₯λ©΄(Scene)을 μžλ™μœΌλ‘œ 10개 미만의 λ“œλ‘œμš° 콜둜 λ Œλ”λ§ν•΄ λƒ…λ‹ˆλ‹€ [2]. * **WebGPUμ—μ„œμ˜ λͺ…λ Ήμ–΄ λ°°μΉ­(Command Batching)** WebGPUλŠ” λͺ…λ Ήμ–΄ 기둝과 μ œμΆœμ„ λΆ„λ¦¬ν•˜λŠ” ꡬ쑰λ₯Ό κ°€μ§‘λ‹ˆλ‹€. λͺ…령듀은 λͺ…λ Ή 버퍼(Command buffers)에 기둝된 ν›„, μΌκ΄„μ μœΌλ‘œ(in batches) GPU 큐(Queue)에 μ œμΆœλ©λ‹ˆλ‹€ [4]. μ΄λŠ” ν”„λ ˆμž„λ‹Ή API μ˜€λ²„ν—€λ“œλ₯Ό 크게 쀄여주며, GPU λ“œλΌμ΄λ²„κ°€ λͺ…λ Ήμ–΄ 싀행을 더 효과적으둜 μ΅œμ ν™”ν•  수 있게 λ§Œλ“­λ‹ˆλ‹€ [4]. * **UI λ ˆμ΄μ•„μ›ƒ 및 DOM μ„±λŠ₯ μ΅œμ ν™”** μ›Ή μ„±λŠ₯ μ§€ν‘œ([[Core Web Vitals|Core Web Vitals]]) 쀑 ν•˜λ‚˜μΈ INP(Interaction to Next Paint)λ₯Ό μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄μ„œλ„ λ°°μΉ­ κ°œλ…μ΄ μ“°μž…λ‹ˆλ‹€. 읽기 μž‘μ—… 직후 μ“°κΈ° μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ—¬ λ°œμƒν•˜λŠ” κ³Όλ„ν•œ 동기식 λ ˆμ΄μ•„μ›ƒ μž¬κ³„μ‚°(λ ˆμ΄μ•„μ›ƒ μŠ€λž˜μ‹±)을 λ°©μ§€ν•˜κΈ° μœ„ν•΄, DOM 읽기 및 μ“°κΈ° μž‘μ—…μ„ ν˜„λͺ…ν•˜κ²Œ λ°°μΉ­(Batch)ν•˜μ—¬ μ²˜λ¦¬ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€ [5]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** Draw Calls, [[WebGL|WebGL]], WebGPU, [[Interaction to Next Paint (INP)|Interaction to Next Paint (INP]] - **Projects/Contexts:** [[Cesium|Cesium]], [[Wonderland Engine|Wonderland Engine]] - **Contradictions/Notes:** μ†ŒμŠ€ λ‚΄μ—μ„œ 배칭에 κ΄€ν•œ μƒμΆ©λ˜λŠ” μ˜κ²¬μ€ μ—†μœΌλ‚˜, 3D μ—”μ§„μ—μ„œμ˜ 'λ“œλ‘œμš° 콜 병합'κ³Ό ν”„λ‘ νŠΈμ—”λ“œ μ΅œμ ν™”μ—μ„œμ˜ 'DOM μ—°μ‚° 일괄 처리'λΌλŠ” μ„œλ‘œ λ‹€λ₯Έ 두 κ°€μ§€ μ‹œμŠ€ν…œ μ»¨ν…μŠ€νŠΈμ—μ„œ μ„±λŠ₯ κ°œμ„ μ„ μœ„ν•œ κ³΅ν†΅λœ μ›λ¦¬λ‘œ μž‘μš©ν•˜κ³  μžˆμŒμ„ λ³΄μ—¬μ€λ‹ˆλ‹€. --- *Last updated: 2026-04-19* --- ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*