# [[Code Execution (μ½”λ“œ μ‹€ν–‰)]] ## πŸ“Œ Brief Summary μ½”λ“œ μ‹€ν–‰(Code Execution)은 μ—μ΄μ „νŠΈ ν•˜λ„€μŠ€κ°€ λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)에 자율적인 문제 ν•΄κ²° λŠ₯λ ₯을 λΆ€μ—¬ν•˜κΈ° μœ„ν•΄ μ œκ³΅ν•˜λŠ” 핡심 기술 ν”„λ¦¬λ―Έν‹°λΈŒμ΄λ‹€ [1, 2]. μ—μ΄μ „νŠΈκ°€ 사전에 μ •μ˜λœ λ„κ΅¬μ—λ§Œ μ˜μ‘΄ν•˜μ§€ μ•Šκ³  Bashλ‚˜ Python λ“±μ˜ μ½”λ“œλ₯Ό 직접 μž‘μ„±ν•˜μ—¬ ν™˜κ²½κ³Ό μƒν˜Έμž‘μš©ν•˜λ„λ‘ κ°€μƒμ˜ 컴퓨터λ₯Ό μ œκ³΅ν•˜λŠ” 역할을 ν•œλ‹€ [3, 4]. μ΄λŸ¬ν•œ μ½”λ“œ 싀행은 호슀트 μ‹œμŠ€ν…œμ˜ μ•ˆμ „μ„ 보μž₯ν•˜κΈ° μœ„ν•΄ 주둜 μƒŒλ“œλ°•μŠ€λ‚˜ 마이크둜VMκ³Ό 같은 격리된 ν™˜κ²½μ—μ„œ 이루어진닀 [5-7]. ## πŸ“– Core Content * **자율적 문제 ν•΄κ²° 및 λ„κ΅¬μ˜ μΌλ°˜ν™”**: μ½”λ“œ 싀행은 μ—μ΄μ „νŠΈ ν•˜λ„€μŠ€μ˜ 5λŒ€ 핡심 ν”„λ¦¬λ―Έν‹°λΈŒ 쀑 ν•˜λ‚˜λ‘œ, λΉ„μ •ν˜• λ¬Έμ œμ— λŒ€ν•œ 동적 해결책을 자율적으둜 생성할 수 있게 ν•œλ‹€ [1, 2]. μ—μ΄μ „νŠΈ ν•˜λ„€μŠ€μ—λŠ” Bash λ“±μ˜ 일반 λͺ©μ  도ꡬ가 ν¬ν•¨λ˜μ–΄ μžˆμ–΄, μ—μ΄μ „νŠΈκ°€ μ½”λ“œλ₯Ό 톡해 슀슀둜 도ꡬλ₯Ό μ„€κ³„ν•˜κ³  문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€ [3, 4]. * **νš¨μœ¨μ„± 및 토큰 μ΅œμ ν™”**: 닀단계 도ꡬ ν˜ΈμΆœμ„ μ½”λ“œλ‘œ λŒ€μ²΄ν•˜λ©΄ νš¨μœ¨μ„±μ΄ 크게 ν–₯μƒλœλ‹€. 예λ₯Ό λ“€μ–΄, MCP μ„œλ²„μ™€ μƒν˜Έμž‘μš©ν•  λ•Œ μ—μ΄μ „νŠΈκ°€ κ°œλ³„ 도ꡬλ₯Ό 직접 μ—¬λŸ¬ 번 ν˜ΈμΆœν•˜λŠ” λŒ€μ‹  이λ₯Ό μˆ˜ν–‰ν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•΄ μ‹€ν–‰ν•˜λ„λ‘ ν•˜λ©΄ 토큰 μ˜€λ²„ν—€λ“œλ₯Ό μ΅œλŒ€ 98.7%κΉŒμ§€ μ ˆκ°ν•  수 μžˆλ‹€ [8]. λ˜ν•œ μ…Έ(Shell) 접근을 ν™œμš©ν•˜λ©΄ λͺ¨λΈ 좔둠을 κ±°μΉ˜κ±°λ‚˜ 토큰 λΉ„μš©μ„ μ†Œλͺ¨ν•˜μ§€ μ•Šκ³ λ„ 가상 λ¨Έμ‹ μ—μ„œ λͺ…령을 직접 μ‹€ν–‰ν•  수 μžˆλ‹€ [7]. * **μƒŒλ“œλ°•μ‹± 및 격리된 μ‹€ν–‰ ν™˜κ²½**: μ—μ΄μ „νŠΈκ°€ μž‘μ„±ν•œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•  수 μžˆλŠ” μ•ˆμ „ν•œ ν™˜κ²½μ„ 보μž₯ν•˜κΈ° μœ„ν•΄ ν•˜λ„€μŠ€λŠ” μ˜¨λ””λ§¨λ“œ μƒŒλ“œλ°•μŠ€λ₯Ό μ œκ³΅ν•œλ‹€ [6]. Microsoft의 AutoGen은 Docker λ„€μ΄ν‹°λΈŒ μƒŒλ“œλ°•μ‹±μ„ μ§€μ›ν•˜μ—¬ μ½”λ“œ μž‘μ„± μ—μ΄μ „νŠΈλ₯Ό 호슀트 μ‹œμŠ€ν…œμœΌλ‘œλΆ€ν„° κ²©λ¦¬ν•˜λ©° [9], AgentCoreλŠ” μ„Έμ…˜λ§ˆλ‹€ μ „μš© CPU, λ©”λͺ¨λ¦¬, 파일 μ‹œμŠ€ν…œμ„ κ°–μΆ˜ λ…λ¦½λœ 마이크둜VM(microVM)을 λ„μ›Œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•œλ‹€ [7, 10]. 이외에도 제곡자 κ΄€λ¦¬ν˜• ν™˜κ²½μ—μ„œ λͺ…령을 μ‹€ν–‰ν•˜λŠ” ν˜ΈμŠ€νŒ…λœ μ…Έ(Hosted shell) 방식도 μ‘΄μž¬ν•œλ‹€ [11]. ## βš–οΈ Trade-offs & Caveats * **λ³΄μ•ˆ μœ„ν—˜κ³Ό λͺ…μ‹œμ  승인 μš”κ΅¬**: λͺ¨λΈμ΄ μƒμ„±ν•œ μ½”λ“œλ₯Ό 둜컬 호슀트 ν™˜κ²½μ—μ„œ 직접 μ‹€ν–‰ν•˜λŠ” 것은 높은 μœ„ν—˜μ„ μˆ˜λ°˜ν•œλ‹€ [6]. λ”°λΌμ„œ 둜컬 μ…Έ μ‹€ν–‰ μ‹œμ—λŠ” 격리된 ν™˜κ²½μ„ μ‚¬μš©ν•΄μ•Ό ν•˜λ©°, λͺ…령이 μ‹€ν–‰λ˜κΈ° 전에 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μΈ‘μ—μ„œ λͺ…ν™•ν•œ 승인(Approval) 체크포인트λ₯Ό 두어 μ œμ–΄κΆŒμ„ μœ μ§€ν•΄μ•Ό ν•œλ‹€ [11-13]. * **μ‹€ν–‰ ν™˜κ²½μ˜ μ½œλ“œ μŠ€νƒ€νŠΈ μ§€μ—°**: μ•ˆμ „ν•œ μ½”λ“œ 싀행을 μœ„ν•΄ μƒŒλ“œλ°•μŠ€λ‚˜ 마이크둜VM을 μ˜¨λ””λ§¨λ“œλ‘œ μƒμ„±ν•˜κ³  νŒŒκ΄΄ν•˜λŠ” κ³Όμ •μ—μ„œ 초기 ꡬ동 μ§€μ—°(Latency)이 λ°œμƒν•  수 μžˆλ‹€ [5, 6]. 예λ₯Ό λ“€μ–΄ E2B와 같이 μ—μ΄μ „νŠΈ 도ꡬ λ£¨ν”„μš©μœΌλ‘œ νŠΉλ³„νžˆ μ„€κ³„λœ 마이크둜VM은 μ•½ 150ms의 μ½œλ“œ μŠ€νƒ€νŠΈ μ‹œκ°„μ„ μ œκ³΅ν•˜μ§€λ§Œ, μΈν”„λΌμ˜ μ•„ν‚€ν…μ²˜λ‚˜ ν™˜κ²½μ— 따라 μ§€μ—°μœ¨μ— 차이가 λ°œμƒν•  수 μžˆλ‹€ [5]. * **좜λ ₯물둜 μΈν•œ μ»¨ν…μŠ€νŠΈ κ³ΌλΆ€ν•˜**: μ½”λ“œ μ‹€ν–‰ 결과둜 λ°˜ν™˜λ˜λŠ” λ°©λŒ€ν•œ μ—λŸ¬ λ‘œκ·Έλ‚˜ 좜λ ₯물은 λͺ¨λΈμ˜ μ»¨ν…μŠ€νŠΈ μœˆλ„μš°λ₯Ό λΉ λ₯΄κ²Œ μ†Œλͺ¨μ‹œμΌœ 'μ»¨ν…μŠ€νŠΈ λΆ€νŒ¨(Context Rot)'λ₯Ό μœ λ°œν•  수 μžˆλ‹€ [14, 15]. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ 도ꡬ 호좜 결과의 μΌλΆ€λ§Œ μœ μ§€ν•˜κ³  λ‚˜λ¨Έμ§€λŠ” 파일 μ‹œμŠ€ν…œμœΌλ‘œ μ˜€ν”„λ‘œλ”©(Offloading)ν•˜λŠ” λ“±μ˜ ν•˜λ„€μŠ€ μ°¨μ›μ˜ μ΅œμ ν™” 관리가 ν•„μˆ˜μ μœΌλ‘œ λ™λ°˜λ˜μ–΄μ•Ό ν•œλ‹€ [15]. --- *Last updated: 2026-05-05*