Daytona 소개
Daytona는 AI 에이전트가 생성한 코드를 안전하게 실행할 수 있는 격리된 보안 샌드박스(Secure Sandbox) 인프라이자, 개발자를 위한 오픈소스 개발 환경 관리(Development Environment Management, DEM) 도구입니다.
최근 AI 기술의 발전으로 LLM(대규모 언어 모델)이 직접 코드를 작성하고 실행해야 하는 'AI 에이전트'의 수요가 급증했습니다. Daytona는 이러한 에이전트들이 90ms(0.09초) 미만의 초고속으로 생성되는 격리된 환경에서 코드를 실행하고, 결과를 반환받을 수 있도록 지원합니다.
동시에, Daytona는 "내 컴퓨터에서는 되는데..."라는 개발자들의 오랜 난제를 해결하는 개발 환경 표준화 도구로서의 강력한 기능도 제공합니다. devcontainer.json 표준을 지원하여, 로컬이나 클라우드 어디서든 단 한 줄의 명령어로 표준화된 개발 환경을 구축할 수 있게 해줍니다. 즉, Daytona는 AI를 위한 런타임이자, 인간 개발자를 위한 작업 공간을 모두 제공하는 통합 인프라 솔루션입니다.
Daytona vs GitHub Codespaces
GitHub Codespaces가 클라우드 기반(SaaS)의 개발 환경을 제공한다면, Daytona는 이를 직접 호스팅(Self-Hosted) 할 수 있는 오픈소스 대안입니다.
- 인프라 유연성: Codespaces는 Azure/GitHub 인프라에 종속되지만, Daytona는 로컬 Docker, Kubernetes, AWS, Bare Metal 등 어디에나 배포가 가능합니다.
- 비용 및 제어: 자체 인프라를 사용하므로 데이터 보안 정책을 직접 제어할 수 있으며, 비용 효율적인 운영이 가능합니다.
Daytona vs E2B (AI 샌드박스 관점)
AI 코드 실행을 위한 샌드박스 솔루션인 E2B와 비교했을 때, Daytona는 영속성(Persistence) 및 개발 환경 표준(Dev Container) 호환성에 강점이 있습니다:
- 영속성: 일회성 실행에 그치지 않고, 파일 시스템과 메모리 상태가 유지되는 '장기 실행 샌드박스(Long-running Sandboxes)'를 지원합니다.
- 표준화: 개발자가 사용하는
devcontainer설정을 AI 에이전트 런타임에서도 그대로 사용할 수 있어, 환경의 일관성을 보장합니다.
Daytona의 주요 기능 및 특징
AI 에이전트를 위한 초고속 샌드박스
Daytona의 핵심은 AI 모델이 생성한 코드를 안전하게 실행할 수 있는 격리된 런타임을 제공하는 것입니다. Daytona를 사용하면 호스트 인프라와 완벽히 분리된 환경에서 코드가 실행되므로, AI가 악성 코드를 생성하거나 실수로 시스템을 손상시킬 위험이 없습니다.
또한, Python 및 TypeScript SDK를 통해 파일 시스템 제어, Git 작업, LSP(Language Server Protocol) 기능 등을 API로 제어할 수 있습니다. 샌드박스 환경의 생성 및 코드 실행까지 0.09초 미만의 매우 빠른 속도로 수행이 가능하므로, 개발자 입장에서는 별도의 오버헤드를 경험하지 않고 안전하게 개발 및 코드 실행을 수행할 수 있습니다.
개발 환경 관리 (DEM)
개발자는 daytona create 명령어를 통해 리포지토리 URL만 입력하면 즉시 코딩 가능한 환경을 얻을 수 있습니다.
- 단일 바이너리: 복잡한 설치 없이 단일 실행 파일로 서버와 클라이언트를 모두 처리합니다.
- IDE 지원: VS Code(데스크톱/브라우저), JetBrains(IntelliJ 등), 터미널(SSH) 등 개발자가 선호하는 도구를 그대로 사용할 수 있습니다.
- 멀티 프로바이더: 로컬 Docker 엔진부터 원격 Kubernetes 클러스터까지 다양한 타겟에 환경을 구성할 수 있습니다.
영속성 및 상태 관리 (Stateful by Design)
AI 에이전트 워크플로우에서 중요한 것은 '문맥(Context)'의 유지입니다. 이를 위해 Daytona는 무제한 영속성을 제공합니다. 즉, 샌드박스가 종료되어도 작업하던 파일과 데이터는 유지될 수 있어, 장기적인 작업을 수행하는 에이전트에 적합합니다.
그 외에도 향후 향후 샌드박스의 파일 시스템과 메모리 상태를 포크(Fork)하여 병렬 작업을 수행하는 기능이 추가되어 동시성의 지원 또한 가능해질 예정입니다.
Daytona 사용 예시
Python SDK
Daytona를 사용하여 Python 코드를 실행하는 샌드박스를 생성하는 간단한 예시는 다음과 같습니다:
from daytona import Daytona, DaytonaConfig, CreateSandboxBaseParams
# Initialize the Daytona client
daytona = Daytona(DaytonaConfig(api_key="YOUR_API_KEY"))
# Create the Sandbox instance
sandbox = daytona.create(CreateSandboxBaseParams(language="python"))
# Run code securely inside the Sandbox
response = sandbox.process.code_run('print("Sum of 3 and 4 is " + str(3 + 4))')
if response.exit_code != 0:
print(f"Error running code: {response.exit_code} {response.result}")
else:
print(response.result)
# Clean up the Sandbox
daytona.delete(sandbox)
Typescript SDK
다음은 Typescript SDK를 사용하는 예시입니다:
import { Daytona } from '@daytonaio/sdk'
async function main() {
// Initialize the Daytona client
const daytona = new Daytona({
apiKey: 'YOUR_API_KEY',
})
let sandbox
try {
// Create the Sandbox instance
sandbox = await daytona.create({
language: 'typescript',
})
// Run code securely inside the Sandbox
const response = await sandbox.process.codeRun('console.log("Sum of 3 and 4 is " + (3 + 4))')
if (response.exitCode !== 0) {
console.error('Error running code:', response.exitCode, response.result)
} else {
console.log(response.result)
}
} catch (error) {
console.error('Sandbox flow error:', error)
} finally {
if (sandbox) await daytona.delete(sandbox)
}
}
main().catch(console.error)
라이선스
Daytona 프로젝트는 AGPL-3.0 (GNU Affero General Public License v3.0) 라이선스로 배포되고 있습니다. 서버 사이드 소프트웨어로서 네트워크를 통해 서비스를 제공할 경우 소스 코드 공개 의무가 발생할 수 있음에 유의해야 합니다.
Daytona 공식 홈페이지
Daytona 관련 문서/블로그
Daytona 프로젝트 GitHub 저장소
https://github.com/daytonaio/daytona
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()
