DevPod - 오픈소스 코드형 개발 환경 치트시트
DevPod (Loft)는 클라이언트 전용의 오픈소스 도구로, 표준 devcontainer.json에서 모든 백엔드 — 로컬 Docker, 원격 SSH 머신, Kubernetes 클러스터, 또는 클라우드 VM — 에서 재현 가능한 개발자 환경을 만듭니다. “자체 호스팅, 의견 없는 GitHub Codespaces”처럼 생각해보세요. 모든 IDE (VS Code, JetBrains, 또는 브라우저)에서 작동하고, 플러그 가능한 제공자를 통해 환경이 실행되는 위치를 제어하며, 운영할 서버 구성 요소가 없습니다.
설치
| 방법 | 방식 |
|---|
| CLI | GitHub Releases에서 다운로드 (Linux/macOS/Windows) |
| 데스크톱 앱 | DevPod Desktop GUI 사용 가능 |
| 요구사항 | 제공자 백엔드 (Docker, SSH 호스트, K8s, 클라우드) |
| 확인 | devpod version |
제공자 (환경이 실행되는 위치)
| 명령어 | 설명 |
|---|
devpod provider add docker | 로컬 Docker 사용 |
devpod provider add ssh --option HOST=user@host | 원격 머신 사용 |
devpod provider add kubernetes | K8s 클러스터에서 실행 |
devpod provider add aws (gcloud, azure) | 클라우드 VM 제공자 |
devpod provider list | 구성된 제공자 나열 |
devpod provider use docker | 기본 제공자 설정 |
워크스페이스 생성
| 명령어 | 설명 |
|---|
devpod up . | 현재 저장소의 devcontainer에서 환경 시작 |
devpod up github.com/org/repo | Git 저장소 URL에서 |
devpod up . --ide vscode | 특정 IDE에서 열기 |
devpod up . --provider kubernetes | 백엔드 선택 |
devpod up . --recreate | 워크스페이스 재구축 |
워크스페이스 관리
| 명령어 | 설명 |
|---|
devpod list | 워크스페이스 나열 |
devpod stop <name> | 워크스페이스 중지 |
devpod delete <name> | 워크스페이스 삭제 |
devpod ssh <name> | 워크스페이스로 SSH |
devpod status <name> | 워크스페이스 상태 표시 |
devcontainer.json (스펙)
DevPod는 열린 Dev Container 스펙을 사용하므로 동일한 파일이 Codespaces, VS Code, DevPod에서 작동합니다.
{
"name": "my-project",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "20" }
},
"postCreateCommand": "npm install",
"customizations": {
"vscode": { "extensions": ["dbaeumer.vscode-eslint"] }
}
}
| 필드 | 목적 |
|---|
image / dockerfile | 기본 환경 |
features | 조합 가능한 추가 기능 (언어, 도구) |
postCreateCommand | 생성 후 실행 설정 |
forwardPorts | 노출할 포트 |
customizations | IDE 특정 설정/확장 |
IDE 통합
| IDE | 방식 |
|---|
| VS Code | --ide vscode (데스크톱 또는 브라우저) |
| JetBrains | --ide goland/pycharm/... |
| 브라우저 (openvscode) | --ide openvscode |
| SSH/터미널 | devpod ssh <name> |
일반적인 워크플로우
# 저장소의 devcontainer에서 로컬 Docker 개발 환경
devpod provider add docker
devpod up github.com/org/project --ide vscode
# 무거운 빌드를 강력한 원격 머신으로 오프로드
devpod provider add ssh --option HOST=me@build-server
devpod up . --provider ssh
# Kubernetes의 일시적 클라우드 환경, 완료되면 삭제
devpod up . --provider kubernetes
devpod delete my-project
DevPod vs 대체
| 측면 | DevPod | GitHub Codespaces | Devbox | Gitpod |
|---|
| 호스팅 | 모든 백엔드 (선택) | GitHub 클라우드 | 로컬 (Nix) | 클라우드/자체 호스팅 |
| 스펙 | devcontainer.json | devcontainer.json | devbox.json | Gitpod 구성 |
| 서버 | 없음 (클라이언트 전용) | 관리됨 | 없음 | 서버 |
| 최적 용도 | 휴대용, 모든 클라우드 개발 | 제로 구성 GitHub | 재현 가능한 로컬 | Git 트리거 워크스페이스 |
DevPod는 Codespaces와 동일한 devcontainer 스펙을 사용합니다. 로컬 Nix 기반 환경은 Devbox를 참조하세요.
자료