Sandboxes Aren't Optional: 4 Ways to Isolate Coding Agents โ Robert Brennan, OpenHands
ํ ์ค ํต์ฌ
์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ์์ ํ๊ฒ ํ์ฅํ๋ ค๋ฉด ๋ก์ปฌ ์คํ๋ณด๋ค ์๋๋ฐ์ค์ ์ต์ ๊ถํ์ ๊ฐ์ถ ํด๋ผ์ฐ๋ ์คํ ํ๊ฒฝ์ผ๋ก ์ฎ๊ฒจ์ผ ํ๋ฉฐ, ๊ทธ ๊ตฌํ ๋ฐฉ์์ Docker, GitHub Actions, ์ ์ฉ VM, Kubernetes์ฒ๋ผ ์ ์ ๋ ๋ถ๋ฆฌ๋ ํํ๋ก ์งํํ๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์๊ฐ์ OpenHands OpenHands๋ ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ์ปค๋ฎค๋ํฐ์ ์ ๊ณตํ๋ ค๋ MIT ๋ผ์ด์ ์ค ํ๋ก์ ํธ์์ ์ถ๋ฐํด, ์ด์ ๋ ํ๋ค์ค๋ถํฐ ์ธํ๋ผ์ ๊ด์ ๊น์ง ํฌํจํ ์ฝ๋ฉ ์์ด์ ํธ ์คํ ํ๋ซํผ์ผ๋ก ํ์ฅ๋์๋ค.
-
0:57
AI ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ์งํ ์ฑ๋ด์ด ์ฝ๋ ์กฐ๊ฐ์ ์์ฑํ๋ ๋จ๊ณ์์ AI IDE์ ์๋์์ฑ์ผ๋ก, ๋ค์ ์ฝ๋๋ฅผ ์คํํ๊ณ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๋ ์์ด์ ํธ ๋จ๊ณ๋ก ๋ฐ์ ํ์ผ๋ฉฐ, ํ์ฌ๋ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ ํ ๋ก์ปฌ์์ pair programmer์ฒ๋ผ ์ฐ๊ณ ์๋ค.
-
2:27
์์ด์ ํธ๋ฅผ ํด๋ผ์ฐ๋๋ก ์ฎ๊ธฐ๊ธฐ ํด๋ผ์ฐ๋ ์์ด์ ํธ๋ ์คํ ๊ณต๊ฐ์ด ํ์ํ๊ณ ์ธ๊ฐ์ ์์ ๊ฐ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋๋ฐ์ค๊ฐ ํ์์ด๋ฉฐ, ์ดํ์๋ GitHubยทDataDogยทSlack ์ด๋ฒคํธ์ ๋ฐ์ํ๋ ์๋ํ์ ๋ฉํฐ ์์ด์ ํธ ํ์ , ๋ ๋์๊ฐ SDLC ์๋ํ๋ก ์ด์ด์ง๋ค.
-
3:32
์์ด์ ํธ๋ฅผ ๋ก์ปฌ์์ ์คํํ ๋์ ์ํ ๋ก์ปฌ์์ ์์ด์ ํธ๋ฅผ ๋๋ฆฌ๋ฉด ์น์ธ ์์ฒญ์ ๊ณ์ ํ์ฉํ๋ฉฐ ๊ฐ์ํ๋ ์ง, dangerously skip permissions์ฒ๋ผ ๊ฑฐ์ ๋ชจ๋ ๊ถํ์ ์ฃผ๊ณ ๋งก๊ธฐ๋ ์ง ๋ ์ค ํ๋๊ฐ ๋๊ธฐ ์ฝ๊ณ , ํ์๋ ํ์ผยทํ๊ฒฝ๋ณ์ยทDBยทKubernetes๊น์ง ๊ด๋ฒ์ํ๊ฒ ๋ ธ์ถ์ํจ๋ค.
-
4:52
์ต์ ๊ถํ ์์น ์์ด์ ํธ์ ์ฌ๋ ๋ชจ๋ ์์ ์ ๊ผญ ํ์ํ ๋ฒ์๋ง ์ ๊ทผํด์ผ ํ๋ฉฐ, ์ด๋ฅผ ํตํด ์ ์ถ ๊ฐ๋ฅํ ๋น๋ฐ๊ณผ ํ์ผ์ ์ค์ด๊ณ prompt injection์ด๋ ์ค์๋์ด ์ผ์ด๋ฌ์ ๋์ ํผํด ๋ฐ๊ฒฝ์ ํฌ๊ฒ ์ ํํ ์ ์๋ค.
-
5:42
๋ก์ปฌ Docker ์ปจํ ์ด๋ ์ ๋ํ๋ง๋ค Docker ์ปจํ ์ด๋๋ฅผ ๋์ฐ๋ ๋ฐฉ์์ ์ผํ์ฑ์ด๋ผ ์์ ํ๊ฒ ์คํํ๊ธฐ ์ข๊ณ , Git repoยทํฌํธยท๋น๋ฐ๊ฐยทMCP ์๋ฒ๋ฅผ ์ ํ์ ์ผ๋ก ๋ถ์ผ ์ ์์ง๋ง, ๋ ธํธ๋ถ ์์๊ณผ ์ด๋ฒคํธ ์ฒ๋ฆฌ ํ๊ณ ๋๋ฌธ์ ๋๊ท๋ชจ ์๋ํ์๋ ์ ํฉํ์ง ์๋ค.
-
7:02
GitHub Actions์ Claude Code GitHub Actions๋ ํด๋ผ์ฐ๋์ ์ผํ์ฑ ํ๊ฒฝ์์ ์์ด์ ํธ๋ฅผ ๋๋์ผ๋ก ๋๋ฆฌ๊ณ ์ผ์ ์คํ์ด๋ PR ์ฝ๋๋ฆฌ๋ทฐ ๊ฐ์ ์๋ํ๋ฅผ ๋ง๋ค ์ ์์ง๋ง, GitHub ์ด๋ฒคํธ์ ์ข ์๋๊ณ ํ์์ ์ธ ํ์ค์ด๋ผ Slack์ด๋ DataDog ๊ฐ์ ๋ค๋ฅธ ์ด๋ฒคํธ๋ก ํ์ฅํ๊ธฐ ์ด๋ ต๋ค.
-
8:22
์ ์ฉ VM ๋๋ Mac Mini ์ ์ฉ VM์ด๋ Mac mini๋ ์ํ๊ฐ ๋จ๋ ์ฅ๊ธฐ ์คํ ํ๊ฒฝ์ด๋ผ ์นํ ๊ณผ ์ค์ผ์ค ๊ธฐ๋ฐ ์๋ํ๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์์ง๋ง, ์ฌ๋ฌ ์์ด์ ํธ๊ฐ ํ ํ๊ฒฝ์ ๊ณต์ ํ๋ฉด์ ์๋ก์ ๊ถํ๊ณผ ์ํ๋ฅผ ์นจ๋ฒํด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๊ธฐ ์ฌ์์ง๋ค.
-
9:47
์ธ์ ๋ณ Kubernetes Pod ์ธ์ ๋ง๋ค ๋ณ๋ Pod๋ฅผ ๋์ฐ๋ Kubernetes ๋ฐฉ์์ ๋งค๋ฒ ์ ํ๊ฒฝ์์ ์์ํ๊ณ ์ข ๋ฃ๋๋ฏ๋ก ์ํ ์ค์ผ์ด ์ ๊ณ , ๋๊ท๋ชจ๋ก ํ์ฅํ ์ ์์ผ๋ฉฐ, cron job์ด๋ HTTP ์ด๋ฒคํธ๋ก ์์ ์๋ ์คํ์ ๊ตฌ์ฑํ๊ธฐ์ ๊ฐ์ฅ ๊ฐ๋ ฅํ๋ค.
-
11:02
๋ค ๊ฐ์ง ์ ๋ต ๋น๊ต ๋ก์ปฌ์ ๊ฐ๊น์ด ์์ ๊ณผ ์๋ ์ ์ด์ ์ ๋ฆฌํ๊ณ , Docker๋ ๊ฒฉ๋ฆฌ๋ ์คํ์ ์ข์ผ๋ฉฐ, VM์ ์ง์์ฑ๊ณผ ์ด๋ฒคํธ ์์ ์ด ๊ฐ์ ์ด๊ณ , Kubernetes๋ ๊ฒฉ๋ฆฌยทํ์ฅ์ฑยทํธ๋ฆฌ๊ฑฐ ๋ค์์ฑ์์ ๊ฐ์ฅ ์ฐ์ํ๋ค๋ ๋น๊ต๊ฐ ์ ์๋๋ค.
-
12:22
์๋๋ฐ์ค๋ ๋ง๋ฅ์ด ์๋๋ค ์๋๋ฐ์ค ํ์ถ๊ณผ ์ปจํ ์ด๋ ํ์ถ ๊ณต๊ฒฉ ์ฌ๋ก๊ฐ ์กด์ฌํ๋ฏ๋ก ์ ๋ ์์ ํ๋ค๊ณ ๋ณผ ์๋ ์์ง๋ง, ์์ด์ ํธ์ ์ ๊ทผ ๋ฒ์๋ฅผ ์ ํํ๋ ์ฒซ ๋ฒ์งธ ๋ฐฉ์ด์ ์ผ๋ก๋ ์ฌ์ ํ ๋งค์ฐ ์ ํจํ๋ค.
-
13:07
OpenHands Agent Canvas OpenHands Agent Canvas๋ Claude code, CodeX, OpenHands harness๋ฅผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ค๋ฃจ๋ฉด์ ๋ก์ปฌ์ ์ํํ ๊ธฐ๋ณธ๊ฐ์์ ์์ํด Docker, ์๊ฒฉ VM, Kubernetes๋ก ์์ฝ๊ฒ ์ ํํ ์ ์๊ฒ ํด, ์์ ์ ๋ง๋ ์คํ ํ๊ฒฝ์ ๊ณ ๋ฅด๊ฒ ํ๋ค.
-
13:57
๋ง๋ฌด๋ฆฌ ๋ฐํ๋ ์ง๋ฌธ์ ๋ฐ๋ ํํ๋ก ๋๋๋ฉฐ, ํต์ฌ ๋ฉ์์ง๋ ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ์์ ํ๊ณ ์ ์ฐํ๊ฒ ์ฐ๋ ค๋ฉด ์ ์ ํ ์๋๋ฐ์ค ์ ํ์ด ํ์๋ผ๋ ์ ์ผ๋ก ์ ๋ฆฌ๋๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์์ด์ ํธ๋ฅผ ๋ก์ปฌ์์ ์ฐ๋ ์ต๊ด์ ํด๋ผ์ฐ๋ ์๋๋ฐ์ค๋ก ์ฎ๊ธฐ๋ฉด, ๋จ์ํ ํธ์์ฑ๋ณด๋ค ๊ถํ ๋ถ๋ฆฌ์ ์๋ํ ํธ๋ฆฌ๊ฑฐ ํ๋ณด๋ผ๋ ์ด์์์ ์ด์ ์ด ๋ ์ปค์ง๋ค.
- ์ค๋ฌด์์๋ Docker, VM, Kubernetes๋ฅผ ๊ธฐ์ ์คํ์ด ์๋๋ผ ๊ถํ ๋ฒ์์ ์ํ ์ง์์ฑ์ ์ ํ์ง๋ก ๋ด์ผ ํ๋ฉฐ, ์์ ์ข ๋ฅ์ ๋ฐ๋ผ ํ๊ฒฝ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์์ ํ๋ค.
- ์๋๋ฐ์ค ๋์ ๋ง์ผ๋ก ์ถฉ๋ถํ์ง ์์ผ๋ฏ๋ก, ์ต์ ๊ถํยท๋น๋ฐ ๊ด๋ฆฌยท์ด์ ๋์ ๋ชจ๋ํฐ๋ง์ ํจ๊ป ์ค๊ณํด์ผ ์ค์ ์ํ์ ์ค์ผ ์ ์๋ค.