Go 언어 개발자들에게 반가운 소식입니다. '고매크로(gomacro)'라는 새로운 도구가 등장하여 Go 언어에 인터랙티브한 인터프리터와 디버거 기능을 제공합니다. 이는 Go로 구현된 거의 완전한 Go 인터프리터로, 대화형 REPL(Read-Eval-Print Loop) 환경과 스크립트 실행을 모두 지원합니다. 특히 일반적인 REPL 사용 시에는 별도의 Go 툴체인(toolchain) 설치 없이도 실행 가능하여 개발 편의성을 크게 높였습니다.
고매크로는 라인 편집과 탭 자동 완성 기능을 제공하며, 입력한 Go 표현식, 문장, 함수를 즉시 평가할 수 있습니다. 단순한 REPL을 넘어 Go 소스 디버거, 스크립팅 엔진, 그리고 프로그램에 'Eval()' 기능을 내장하기 위한 라이브러리로도 활용될 수 있습니다. 실행 중인 Go 프로그램에 인터프리터를 임베드하여 애플리케이션의 함수, 변수, 상수, 타입을 대화형으로 노출하는 것도 가능합니다. 또한, 표준 Go에는 없는 Lisp 스타일 매크로(Macro), 쿼팅(Quoting)/준쿼팅(Quasiquoting), 임의 정밀도 상수 계산 등 확장된 기능들을 제공하며, 제네릭(Generics)도 실험적으로 지원합니다.
이 프로젝트는 원래 Go에 Lisp식 매크로를 추가하려는 실험에서 시작되었으며, 현재도 코드 생성(Code Generation) 도구로 유용하게 사용될 수 있습니다. 리눅스(Linux), macOS, *BSD 환경에서는 REPL에서 서드파티 패키지를 임포트(Import)할 경우 자동으로 다운로드 및 컴파일되어 네이티브 Go 플러그인으로 로드, 컴파일된 속도로 실행됩니다. 이는 Go 개발자들이 런타임에 코드를 동적으로 평가하고 실험할 수 있는 강력한 환경을 제공함으로써 개발 및 디버깅 생산성을 크게 향상시킬 것으로 기대됩니다. 고매크로는 MPL 2.0 라이선스로 배포되어 누구나 자유롭게 사용할 수 있습니다.