GN⁺: LapDev - 오픈소스 원격 개발 환경 관리 소프트웨어
(github.com/lapce)- 간편한 자체 호스팅: 설치와 유지 관리가 최소한의 노력으로 가능하도록 설계. 애플리케이션은 복잡한 내부 문제 해결 없이 작동하도록 만들어짐.
- 수평 확장성: 단순하지만 강력한 구조로, Lapdev는 단일 기계에서 서버 Fleet에 이르기까지 확장 가능하여 개발자 팀이 성장함에 따라 함께 성장할 수 있는 개발 환경 관리 시스템을 제공
- 코드로 정의된 개발 환경: Devcontainer 오픈 사양을 사용하여 개발 환경을 코드로 정의할 수 있어, 다른 개발자들 간에 표준화된 개발 환경을 복제하여 환경 관련 문제를 방지하고 모두에게 일관된 설정을 보장
- 온보딩 시간 절약: 새 프로젝트에 개발자를 온보딩할 때, 기계에 환경을 준비하는 데 몇 시간 또는 며칠이 필요 없음. 즉시 코딩을 시작할 수 있음
계획된 기능
- 다양한 작업 공간 유형 지원: 현재 Lapdev는 컨테이너 기반 작업 공간만 지원하지만, 예를 들어 개발 흐름에서 k8s 클러스터를 실행하고 싶을 때 제한이 있음. VM과 베어 메탈 기계 지원이 로드맵에 있으며, Windows, Linux, macOS 등 다양한 OS 지원도 계획 중임. 이를 통해 개발자는 기계를 전환할 필요 없이 동일한 로컬 기계에서 개발 및 디버깅을 할 수 있음.
GN⁺의 의견
- Lapdev는 개발자들이 자신의 서버나 클라우드에서 원격 개발 환경을 쉽게 설정하고 관리할 수 있게 해주는 도구로, 개발 환경의 표준화와 빠른 온보딩이 가능하게 함으로써 효율성을 높일 수 있음.
- 이러한 도구는 특히 대규모 개발 팀이나 다양한 프로젝트를 동시에 진행하는 조직에 유용할 수 있으며, 개발 환경의 일관성을 유지하면서도 확장성을 제공함.
- 그러나 이 기술을 도입하기 전에 보안, 호환성 및 지원과 관련된 고려 사항이 있을 수 있으며, 자체 호스팅 솔루션을 사용함으로써 발생할 수 있는 추가적인 유지 관리 부담을 고려해야 함.
- 현재 시장에는 Visual Studio Code의 Remote Development Extensions와 같이 비슷한 기능을 제공하는 다른 도구들이 있으며, 사용자는 자신의 요구 사항에 가장 적합한 도구를 선택해야 함.
- Lapdev가 VM과 베어 메탈 기계 지원을 계획하고 있다는 점은 다양한 개발 환경 요구 사항을 충족시키려는 노력의 일환으로 볼 수 있으며, 이는 개발자들에게 더 넓은 선택지를 제공할 것임.
Hacker News 의견
-
로컬 서버 하드웨어에서 개발 컨테이너(devcontainers)를 월별 요금 없이 사용할 수 있는 것은 매우 좋아 보임. 지금까지는 Docker-compose와 JetBrains의 원격 SSH 개발을 사용해왔지만, 이 새로운 방법이 훨씬 나을 것으로 기대됨.
-
원격 개발 환경에 관심이 있지만, 클라우드에서 더 많은 소프트웨어를 관리하는 것에 대해 크게 흥분하지는 않음. Skypilot을 사용하여 클라우드 API에 플러그인이 있어 k8s 클러스터를 관리하지 않고도 개발 기계를 시작할 수 있기 때문에 좋은 아이디어로 생각함. Jupyter 서버를 시작하는 데는 더 잘 작동했지만, "완전한" 개발 기계는 몇 가지 SSH/VS Code 구성만으로 가능해 보임.
-
원격 개발 환경은 특정 유형의 개발에 제한이 있을 수 있음. 예를 들어, iOS와 Android 앱 개발이 까다롭거나, GPU가 필요한 게임 개발에서 빌드 아티팩트 다운로드가 느릴 수 있음. 이를 해결하기 위한 가이드가 있는지 궁금함.
-
이러한 도구에 대해 더 알고 싶어함. Coder가 .devcontainer에 대한 알파 지원을 포함하고 있다는 것을 봤지만, 다른 OSS 옵션에 대해서는 알지 못함.
-
Proxmox 설정을 사용하면 기존 VM/컨테이너를 복제하고, VSCode를 가리키기만 하면 됨. 이것이 실제로 무엇을 추가하는가? 자동화는 아니며(Proxmox에서 몇 번의 클릭을 자동화할 수 있음), 리소스 관리도 아님(Proxmox가 스토리지 등을 처리함). 개발자 신원인가? 그것이 유일하게 필요한 것이라면 환경에 SSH 키를 배포하기 위한 (비교적 간단한) 스크립트를 작성해야 함.
-
원격 기계에서 호스팅되는 VSCode인 code-server와 SSH를 함께 설치해야 했던 경험에서, 둘 다 더 잘 관리되는 경험이 매우 흥미로움.
-
해당 분야의 또 다른 구현체로는 devpod.sh가 있음.
-
버튼의 텍스트를 중앙에 배치하여 버튼처럼 보이게 하는 디자인 팁을 제공함. 텍스트를 왼쪽 정렬하면 레이블처럼 보일 수 있으므로, 작은 변경이지만 더 나은 전환을 가져올 수 있음.
-
원격 서버에 설치된 것은 이해함. 하지만 이것이 원격 환경을 제공하는 것인지, 로컬 환경을 제공하는 것인지?그리고 이 컨텍스트에서 '환경'이란 무엇인가? Docker compose 파일과 .env인가? 코드 또는 vim 설정인가? Vagrant와 같은 VM인가?
-
현재 devcontainers의 주요 문제점은 GUI 앱을 원격으로 실행할 때 GUI가 오직 서버에서만 열림. 이 솔루션이 GUI를 원격으로 내보낼 수 있는지 궁금함.