
무슨 일이냐면요
요즘 시스템 프로그래밍 언어 얘기가 나오면 거의 Rust가 주인공이잖아요. 그런데 그 옆에서 조용히, 하지만 꾸준히 팬을 늘려가는 언어가 하나 있어요. 바로 Zig입니다. 이번에 'Zig by Example'이라는 학습 자료가 공개됐는데요, 이게 뭐냐면 짧은 예제 코드 하나하나에 주석을 달아서 "이 코드는 이렇게 동작해요"를 보여주는 방식의 튜토리얼이에요. Go를 배워본 분이라면 'Go by Example'을 떠올리시면 딱 맞습니다. 문법책처럼 개념을 줄줄 설명하는 게 아니라, 돌아가는 코드를 보면서 손으로 익히는 스타일이거든요.
Zig가 대체 뭔데요?
Zig는 한마디로 "C를 현대적으로 다시 만든 언어"예요. C는 50년 가까이 된 언어인데 아직도 운영체제, 임베디드, 게임 엔진 같은 바닥 영역을 지배하고 있죠. 빠르고 가볍거든요. 그런데 C는 너무 옛날 언어라서 메모리 실수가 잦고, 빌드 시스템도 제각각이라 골치가 아파요. Zig는 그 C의 장점(빠름, 단순함, 하드웨어에 가까움)은 그대로 가져오면서 불편한 점을 싹 정리했어요.
핵심 특징 몇 가지만 짚어볼게요.
- 숨겨진 동작이 없어요. Zig에는 '내가 모르는 사이에 메모리를 할당하는' 마법 같은 게 없어요. 메모리를 쓸 일이 있으면 코드에 명시적으로 드러나거든요. 그래서 임베디드처럼 자원이 빠듯한 환경에서 "여기서 대체 메모리가 언제 잡히는 거야" 하고 헤맬 일이 줄어요.
- comptime이라는 무기. 이게 Zig의 진짜 자랑인데요, 컴파일 타임에 코드를 실행할 수 있어요. 다른 언어에서 매크로나 제네릭, 템플릿으로 복잡하게 하던 걸 그냥 일반 함수처럼 작성해서 컴파일 시점에 돌려버리는 거예요. 별도의 매크로 문법을 외울 필요가 없죠.
- C와 찰떡궁합. 기존 C 코드를 그대로 가져다 쓸 수 있고, 심지어 Zig 컴파일러를 C/C++ 컴파일러로도 쓸 수 있어요. 그래서 "C 프로젝트를 한 파일씩 Zig로 갈아끼우는" 점진적 마이그레이션이 가능해요.
업계에서 어디쯤 있냐면
Rust랑 자주 비교되는데, 둘은 철학이 좀 달라요. Rust는 "컴파일러가 메모리 안전을 강제로 보장해줄게"라는 쪽이라 빌림 검사기(borrow checker)라는 까다로운 관문을 통과해야 해요. 안전한 대신 배우기가 가파르죠. Zig는 "안전장치를 좀 주긴 하는데, 통제권은 너한테 줄게"라는 쪽이에요. 그만큼 단순하고 직관적이지만 실수의 책임도 개발자한테 더 있는 거죠.
실제로 화제가 된 사례도 있어요. 자바스크립트 런타임 Bun이 Zig로 작성됐는데, Node.js보다 빠른 속도로 주목받았죠. 이게 Zig가 "장난감 언어가 아니라 진짜 제품을 만들 수 있다"는 걸 보여준 셈이에요.
한국 개발자에게
당장 실무에 Zig를 도입하라는 얘기는 아니에요. 아직 1.0 정식 버전도 안 나왔고, 버전 올라갈 때마다 문법이 바뀌기도 하거든요. 다만 백엔드만 하다 보면 "메모리가 어떻게 잡히고 풀리는지"를 추상화 뒤에 숨겨놓고 살게 되는데, Zig 예제를 몇 개 따라 쳐보는 것만으로도 그 감각을 다시 잡을 수 있어요. C는 진입장벽 때문에 망설여졌다면, Zig는 훨씬 부드러운 입구가 되어줄 거예요. 'Zig by Example'처럼 돌아가는 코드부터 보는 자료는 그런 첫 발 떼기에 딱이고요.
마무리
Zig는 "C의 단순함은 사랑하지만 C의 불편함은 싫은" 사람들을 위한 언어예요. 예제로 슥 훑어보면서 시스템 프로그래밍의 감을 되찾아보는 건 어떨까요? 여러분은 Rust와 Zig 중 어느 철학에 더 끌리시나요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공