# [[Execution Environment (Sandbox)|Execution Environment (Sandbox)]] ## ๐Ÿ“Œ Brief Summary Execution Environment(๋˜๋Š” Sandbox)๋Š” ์—์ด์ „ํŠธ๊ฐ€ ์ƒ์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ํŒŒ์ผ์„ ์กฐ์ž‘ํ•˜๊ณ , ๋„คํŠธ์›Œํฌ์— ์ ‘๊ทผํ•  ๋•Œ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌ๋œ ์•ˆ์ „ํ•œ ๋ฌผ๋ฆฌ์ /๋…ผ๋ฆฌ์  ๊ณต๊ฐ„์ด๋‹ค. ์—์ด์ „ํŠธ์˜ ์˜ค์ž‘๋™์ด๋‚˜ ์•…์˜์ ์ธ ๊ณต๊ฒฉ(ํ”„๋กฌํ”„ํŠธ ์ธ์ ์…˜)์œผ๋กœ ์ธํ•œ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ ์˜ค์—ผ, ๋ฐ์ดํ„ฐ ์œ ์ถœ, ์ž์› ๋‚จ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์•ˆ ๋ฐฉ์–ด์„ ์˜ ํ•ต์‹ฌ์ด๋‹ค. ## ๐Ÿ“– Core Content * **๊ฒฉ๋ฆฌ ๊ธฐ์ˆ  (Isolation Technologies)**: * **Docker/Containers**: ํ”„๋กœ์„ธ์Šค ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ˆ˜์ค€์˜ ๊ฒฉ๋ฆฌ ์ œ๊ณต. * **WASM (WebAssembly)**: ์–ธ์–ด ์ˆ˜์ค€์˜ ์ดˆ๊ฒฝ๋Ÿ‰ ๊ฒฉ๋ฆฌ ๋ฐ ๋ธŒ๋ผ์šฐ์ €/์„œ๋ฒ„ ๊ณตํ†ต ์‹คํ–‰ ํ™˜๊ฒฝ. * **VM (Virtual Machines)**: ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๊ฒฉ๋ฆฌ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋‚˜ ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๊ฐ€ ํผ. * **Firecracker/gVisor**: ๊ฒฝ๋Ÿ‰ VM ๊ธฐ์ˆ ์„ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ์˜ ์†๋„์™€ VM์˜ ๋ณด์•ˆ์„ฑ์„ ๊ฒฐํ•ฉ. * **์ž์› ์ œ์–ด (Resource Constraints)**: CPU ์‚ฌ์šฉ๋Ÿ‰, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๋Ÿ‰, ์ตœ๋Œ€ ์‹คํ–‰ ์‹œ๊ฐ„, ๋””์Šคํฌ ์šฉ๋Ÿ‰์„ ์ œํ•œํ•˜์—ฌ DoS ๊ณต๊ฒฉ์ด๋‚˜ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค. * **๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ (Network Air-gapping)**: ์ธํ„ฐ๋„ท ์ ‘๊ทผ์„ ์™„์ „ํžˆ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜, ์‚ฌ์ „์— ํ—ˆ์šฉ๋œ ํŠน์ • ๋„๋ฉ”์ธ(Allowlist)์— ๋Œ€ํ•ด์„œ๋งŒ ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ์†Œํ†ตํ•˜๊ฒŒ ์ œํ•œํ•œ๋‹ค. * **๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ**: ์—์ด์ „ํŠธ๊ฐ€ ํ˜ธ์ŠคํŠธ์˜ ์‹ค์ œ ํŒŒ์ผ์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๊ณ , ํ•˜๋„ค์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ƒ ๋งˆ์šดํŠธ ์ง€์ ์„ ํ†ตํ•ด์„œ๋งŒ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๊ฒŒ ํ•œ๋‹ค. * **์ƒํƒœ ํœ˜๋ฐœ์„ฑ (Ephemeral Environment)**: ์ž‘์—…์ด ๋๋‚˜๋ฉด ์ƒŒ๋“œ๋ฐ•์Šค ์ „์ฒด๋ฅผ ์‚ญ์ œํ•˜์—ฌ ์ž”๋ฅ˜ ๋ฐ์ดํ„ฐ๋‚˜ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๊ฐ€ ๋‹ค์Œ ์ž‘์—…์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. ## โš–๏ธ Trade-offs & Caveats * **๋ณด์•ˆ vs ํŽธ์˜์„ฑ**: ๊ฒฉ๋ฆฌ๊ฐ€ ๊ฐ•ํ™”๋ ์ˆ˜๋ก ์—์ด์ „ํŠธ๊ฐ€ ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ๋„๊ตฌ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ œ์•ฝ์ด ๋ฐœ์ƒํ•œ๋‹ค. * **์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ**: ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ๋„์šฐ๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ์‹คํ–‰ ์ง€์—ฐ(Latency)์ด ๋ฐœ์ƒํ•œ๋‹ค. * **๋ณต์žกํ•œ ์ƒํƒœ ๋ณต๊ตฌ**: ์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์‚ญ์ œ๋  ๋•Œ ์ค‘์š”ํ•œ ์ž‘์—… ์‚ฐ์ถœ๋ฌผ์ด๋‚˜ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์•ˆ์ „ํ•˜๊ฒŒ ํ˜ธ์ŠคํŠธ๋กœ ์˜ฎ๊ธฐ๋Š” ๋™๊ธฐํ™” ๋กœ์ง์ด ์ •๊ตํ•ด์•ผ ํ•œ๋‹ค. ## ๐Ÿ”— Knowledge Connections ### Related Concepts * [[Agent Harness|Agent Harness]] * ์—ฐ๊ฒฐ ์ด์œ : ์ƒŒ๋“œ๋ฐ•์Šค๋Š” ํ•˜๋„ค์Šค๊ฐ€ ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ๋ฌผ๋ฆฌ์  ์‹คํ–‰ ๋Œ€์ƒ์ด๋‹ค. * [[Safety & Reliability|Safety & Reliability]] * ์—ฐ๊ฒฐ ์ด์œ : ์ƒŒ๋“œ๋ฐ•์Šค๋Š” ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์ตœํ›„์˜ ๋ฌผ๋ฆฌ์  ๋ณด๋ฃจ์ด๋‹ค. * [[E-component (Execution Loop)|E-component (Execution Loop)]] * ์—ฐ๊ฒฐ ์ด์œ : ์‹คํ–‰ ๋ฃจํ”„์—์„œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹ค์ œ ๊ณต๊ฐ„์ด๋‹ค. ### Deeper Research Questions * ์—์ด์ „ํŠธ๊ฐ€ ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด๋ถ€์—์„œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ํš๋“ํ•˜์—ฌ ํ˜ธ์ŠคํŠธ๋กœ ํƒˆ์ถœ(Escape)ํ•˜๋ ค ํ•  ๋•Œ, ์ด๋ฅผ ์ปค๋„ ๋ ˆ๋ฒจ์—์„œ ์ฆ‰์‹œ ์ฐจ๋‹จํ•˜๋Š” ๊ฐ์‹œ ๋ชจ๋ธ์€ ๋ฌด์—‡์ธ๊ฐ€? * ์ดˆ๊ฒฝ๋Ÿ‰ WASM ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ Python์˜ ๋ณต์žกํ•œ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(PyTorch ๋“ฑ)๋ฅผ ์„ฑ๋Šฅ ์ €ํ•˜ ์—†์ด ์‹คํ–‰ํ•˜๋Š” ๊ธฐ์ˆ ์  ํ•œ๊ณ„๋Š” ์–ด๋””๊นŒ์ง€์ธ๊ฐ€? * ์ˆ˜์ฒœ ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ์—์ด์ „ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ๊ฐ ์‚ฌ์šฉ์ž๋ณ„๋กœ ๋…๋ฆฝ๋œ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์ˆ˜ ๋ฐ€๋ฆฌ์ดˆ(ms) ๋‚ด์— ์ƒ์„ฑํ•˜๊ณ  ํ๊ธฐํ•˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜๋Š” ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•˜๋Š”๊ฐ€? ### Practical Application Contexts * **Implementation:** Python์˜ `subprocess`๋‚˜ Docker SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์บก์ฒ˜ํ•˜๋ฉฐ, `resource` ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œํ•œํ•œ๋‹ค. * **System Design:** ์—์ด์ „ํ‹ฑ ์ฝ”๋”ฉ ํˆด ๊ตฌ์ถ• ์‹œ, ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋งˆ์šดํŠธํ•˜๊ณ  ์“ฐ๊ธฐ ์ž‘์—…์€ ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์˜ ์ž„์‹œ ํด๋”์—์„œ๋งŒ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•œ๋‹ค. --- *Last updated: 2026-05-01*