핵심 요약
- 7년간 러스트를 써온 개발자가 동일한 JSONPath 파서 프로젝트를 지그(Zig)로 다시 작성하며 느낀 차이점을 비교했습니다.
- 취약한 IDE 지원 덕분에 오히려 터미널 CLI 기반의 심플한 툴체인(build.zig)과 경량 에디터 환경으로 강제 전환되는 계기가 되었습니다.
- 러스트와 달리 지그는 불필요한 폴더 계층 대신 단순하고 평평한(flat) 구조를 유지하게 만들어 프로젝트 설계 습관을 다시 돌아보게 했습니다.
요약 7년간 오픈소스 프로젝트를 중심으로 Rust(러스트)를 다뤄온 한 베테랑 개발자가 C 언어의 유력한 후계자로 주목받는 Zig(지그)를 직접 써본 뒤 남긴 솔직한 경험담이 화제입니다. 그는 두 언어를 공정하게 비교하기 위해 자신이 이미 러스트로 개발해 운영 중이던 RFC 9535 기반 'JSONPath' 파서를 지그(zig-jsonpath)로 다시 포팅했습니다.
작성자가 처음 지그를 접하고 가장 크게 충격을 받은 부분은 취약한 IDE 지원이었습니다. RustRover 등 완성도 높은 JetBrains 계열 도구에 익숙했던 그에게 지그 환경은 문법 강조와 기초적인 자동 완성 외에는 거의 아무것도 제공하지 않았습니다. 하지만 이는 오히려 개발자를 터미널 기반의 기본기로 돌아가게 만들었습니다. 지그의 내장 빌드 시스템인 `build.zig`가 CLI 환경에서 놀라울 정도로 직관적인 테스트 및 빌드 제어를 지원해 준 덕분입니다. 이를 계기로 작성자는 무거운 IDE를 벗어나 Helix, Alacritty, Zellij 조합으로 개발 환경을 전면 전환하는 나비효과를 겪었다고 밝혔습니다.
또한 프로젝트 폴더 구조 설계에서도 큰 차이가 있었습니다. 러스트에서는 습관적으로 복잡한 디렉터리 계층을 파서 잘게 쪼개는 경향이 있었던 반면, 지그는 파일과 폴더를 과도하게 분할하지 않고 평평한(flat) 구조를 유지하도록 유도했습니다. 실제로 러스트 버전에서는 수많은 하위 폴더와 파일로 쪼개졌던 프로젝트가 지그에서는 단 5개의 단일 파일로 간결하게 정리되었습니다. 작성자는 이를 통해 그동안 다른 언어에서도 관성적으로 폴더 구조를 복잡하게 쪼갰던 것은 아닌지 되돌아보게 되었다고 전했습니다.
다만 테스트 코드 구성에 대해서는 아쉬움을 남겼습니다. 플랫한 구조를 유지하다 보니 테스트 코드를 별도 파일로 분리하기도, 코드 파일 내부에 인라인으로 집어넣기도 애매해져 결국 소스 파일이나 루트 폴더가 다소 지저분해지는 딜레마를 겪었다고 설명했습니다.
Sponsored · 광고