--- id: [[P-Reinforce|P-Reinforce]]-AUTO-723577 category: Dev confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Batching" --- # [[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 & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** 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* ---