최근 ngrok.com에서 'webernetes'라는 혁신적인 프로젝트를 공개했습니다. 이 프로젝트는 클라우드 네이티브 환경의 핵심 기술인 쿠버네티스(Kubernetes)의 주요 구성 요소를 타입스크립트(TypeScript)로 재작성하여, 웹 브라우저 안에서 쿠버네티스 클러스터를 직접 실행할 수 있게 만든 것이 특징입니다. 이는 개발자들이 실제 환경을 구축하지 않고도 브라우저에서 쿠버네티스 동작을 시뮬레이션하고 학습할 수 있는 새로운 가능성을 열었습니다.
webernetes는 쿠버네티스 전체를 웹어셈블리(WebAssembly)로 컴파일하는 대신, kubelet의 일부, 여러 컨트롤러, 브라우저 기반 CNI(컨테이너 네트워크 인터페이스) 및 컨테이너 런타임, 클러스터 조작 API 등을 타입스크립트로 새로 구현했습니다. 실제 이미지 레지스트리에서 이미지를 가져오는 대신, 브라우저 기반 레지스트리와 타입스크립트 API를 통해 이미지를 정의합니다. 이 프로젝트는 2개월 만에 552개 커밋과 약 10만 줄의 코드로 완성되었으며, 코드의 대부분은 LLM(대규모 언어모델)이 작성했지만, 모든 줄을 사람이 직접 리뷰하고 204개의 통합 테스트 및 1,855개의 단위 테스트로 철저히 검증했습니다. LLM의 빠른 코드 생성 능력은 활용하되, 정확성을 위해 사람의 검토와 테스트가 필수적임을 보여주는 사례입니다.
webernetes의 주된 목적은 프로덕션 배포가 아닌 '인터랙티브한 쿠버네티스 콘텐츠' 제작입니다. 예를 들어, 쿠버네티스 개념을 설명하는 웹사이트나 교육 자료에서 사용자가 직접 파드(Pod)의 생명주기, 네트워킹, 디플로이먼트(Deployment) 등을 브라우저에서 실습하며 이해도를 높일 수 있습니다. 이는 복잡한 쿠버네티스 환경을 쉽게 접하고 학습할 수 있는 강력한 도구가 될 것입니다. LLM 활용 과정에서 축약, 임의 헬퍼 생성, 테스트 누락 등의 오류가 발생했으나, 사람의 꼼꼼한 리뷰와 k3s와의 비교 테스트를 통해 실제 클러스터와 동일하게 동작하도록 신뢰성을 확보했습니다. 이 프로젝트는 LLM의 잠재력과 함께, AI 시대에도 여전히 중요한 인간의 검증 및 테스트 역할의 중요성을 강조합니다.