Zig Tutorial - 1일차
포스트
취소

Zig Tutorial - 1일차

Zig 언어 공부를 시작합니다. 설치부터 문법 및 간단한 응용까지 다룹니다.

0. 설치

2025년 1월 현재 최신 버전은 0.13.0 입니다.

MacOS 에 Zig 설치

1
2
3
4
brew install zig

# zig version
# 0.13.0

VSCode 의 Zig 확장 모듈 설치

Zig Language 를 검색하여 선택한다.

vscode-ext-ziglang

Zig 언어 특징

  • 강력하게 타입이 지정된 컴파일 언어
  • 제네릭을 지원하고, 강력한 컴파일 타임 메타 프로그래밍 기능이 있고
  • 가비지 수집을 포함하지 않습니다.
  • 많은 사람들이 Zig 를 C 의 현대적인 대안으로 생각합니다.
    • 문법도 C 와 유사 (중괄호 블록을 사용하고 세미콜론으로 문장 구분)

튜토리얼 문서

1. 사용해보기 : Hello World

프로젝트 생성

1
2
3
mkdir hello-world
cd hello-world
zig init

src 와 zig-out 디렉토리와 기본 파일들이 생성된다.

  • build.zig : 빌드를 위한 작업
  • build.zig.zon : 스펙 데이터
  • src
    • main.zig : 실행되는 코드
    • root.zig : 정적 라이브러리 코드 (일종의 컨벤션이다)
  • zig-out : 실행파일 빌드시 생성된다

빌드 및 실행

1
2
3
4
5
6
7
8
9
10
11
# 사용법 보기
zig build -h | more

# 빌드 및 실행
zig build run 
# All your codebase are belong to us.
# Run `zig build test` to run the tests.

# 실행파일
ls -l zig-out/bin 
# hello-world

실행파일 출력

별도의 위치에 생성하고 싶으면 -femit-bin 옵션을 사용한다.

1
2
3
mkdir target
zig build-exe src/main.zig -femit-bin=target/hello
./target/hello

src/main.zig 파일

기존에 작성된 내용은 날려버리자.

1
2
3
4
5
const std = @import("std");

pub fn main() !void {
    std.debug.print("Hello, {s}!\n", .{"World"});
}

실행해 보자.

1
2
3
4
zig build run 
# Hello, World!
./zig-out/bin/hello-world 
# Hello, World!

src/root.zig 파일

zig init 실행시 생성되고 정적 라이브러리 작성을 위한 별도의 파일이다.

  • 이름을 다른 것으로 변경해도 된다. 단, build.zig 에 명기해야 함
1
2
3
4
5
6
7
8
9
// build.zig

// root_source_file 에 root.zig 를 명기하고 있다.
const lib = b.addStaticLibrary(.{
    .name = "hello-world",
    .root_source_file = b.path("src/root.zig"),
    .target = target,
    .optimize = optimize,
});

9. Review

  • 마음을 비웠다. 의미 없이 노는 것도 지겹다.
  • 논다고 생각하고 처음부터 공부하기를 시작하자. 부담을 갖지 말자.

 
 

끝!   읽어주셔서 감사합니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.