Node.js 개발자들이 이제 자바(Java), 파이썬(Python), 루비(Ruby), PHP, 루아(Lua), 자넷(Janet), Tcl 등 7가지 프로그래밍 언어를 별도의 런타임 설치 없이 Node.js 환경에서 직접 실행할 수 있게 되었습니다. 'LangZoo.js'라는 프로젝트가 이를 가능하게 하는데, 이는 'APEBInd'라는 기술을 활용하여 각 언어 런타임을 'Actually Portable Executables(APEs)' 형태로 번들링한 자바스크립트(JavaScript) 패키지를 제공합니다.
LangZoo.js는 각 언어 런타임을 자체 패키지 내에 포함시켜, 개발자가 `npm install python-ape`와 같은 명령어로 해당 언어의 런타임과 바인딩을 동시에 설치할 수 있도록 합니다. 예를 들어, 파이썬 코드를 실행하려면 `import { run as runPython } from 'python-ape';`와 같이 모듈을 임포트한 후 `runPython({ code: 'print(6 * 7)' })` 형태로 코드를 전달하면 됩니다. 자바(Java)의 경우 컴파일된 클래스 경로와 메인 클래스를 전달하는 방식으로 동작하며, Tcl은 스크립트 파일을 실행하는 방식을 사용합니다. 이는 각 언어를 자바스크립트로 재구현한 것이 아니라, 실제 런타임 실행 파일을 Node.js API를 통해 호출하는 방식입니다.
이 기술은 개발 환경 설정의 복잡성을 크게 줄여줄 수 있다는 점에서 중요합니다. 여러 언어를 사용하는 프로젝트나 마이크로서비스(microservices) 아키텍처에서 각 언어의 런타임을 개별적으로 설치하고 관리하는 번거로움을 없애줍니다. 또한, 개발자가 특정 언어의 기능을 Node.js 애플리케이션에 쉽게 통합할 수 있도록 하여, 다양한 언어의 장점을 활용한 하이브리드(hybrid) 개발을 촉진할 수 있습니다. 이는 개발 생산성 향상과 함께, 새로운 기술 스택 도입의 장벽을 낮추는 데 기여할 것으로 기대됩니다.