Zig: 두 판 사이의 차이

TechPedia
편집 요약 없음
 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{소프트웨어 정보
{{소프트웨어 언어 정보
  | 이름      = Zig
  | 이름      = Zig
  | 로고      = [[File:Zig_logo.png|120px]]
  | 로고      = [[File:Zig_logo.png|120px]]
11번째 줄: 11번째 줄:


'''Zig'''는 2016년 2월 8일 '''Andrew Kelley'''가 개발한 프로그래밍 언어이다.   
'''Zig'''는 2016년 2월 8일 '''Andrew Kelley'''가 개발한 프로그래밍 언어이다.   
C 언어를 대체할 수 있는 범용 시스템 프로그래밍 언어를 목표로 하며, 성능과 안정성을 동시에 추구한다. 


== 역사 ==
== 역사 ==
* 2016년, 발표함.
* 2016년: Zig 언어 발표.
* 2025년, 0.15.1 출시함.
* 2017년: GitHub 저장소 공개 및 초기 커뮤니티 형성. 
* 이후 활발히 커뮤니티에서 개발이 되고 있음.   
* 2019년: 크로스 컴파일 기능이 주목을 받음. 
* 2025년: 0.15.1 버전 출시.
* 현재: 활발히 커뮤니티에서 개발 및 개선이 진행 중.   


== 주요 특징 ==
== 주요 특징 ==
25번째 줄: 28번째 줄:
* 컴파일 타임 실행(Comptime) 기능 → 빌드 시점에 코드 실행 및 최적화 가능
* 컴파일 타임 실행(Comptime) 기능 → 빌드 시점에 코드 실행 및 최적화 가능
* 오류 처리 방식이 명확함 → 예외(Exception) 대신 에러 집합(Error Set)과 try/catch 사용
* 오류 처리 방식이 명확함 → 예외(Exception) 대신 에러 집합(Error Set)과 try/catch 사용
* Null 안정성 → Null 허용 타입과 비허용 타입을 명확히 구분


== 예제 코드 ==
== 예제 코드 ==
Zig 공식 홈페이지에 예제이다.   
Zig 공식 홈페이지의 예제이다.   


<syntaxhighlight lang="zig">
<syntaxhighlight lang="zig">
57번째 줄: 61번째 줄:


== 활용 ==
== 활용 ==
 
Zig는 다음과 같은 분야에서 활용되고 있다:
* 시스템 프로그래밍 (운영체제, 드라이버, 임베디드 소프트웨어) 
* 크로스 컴파일 환경 구축 (여러 플랫폼용 바이너리를 손쉽게 빌드 가능) 
* 성능이 중요한 소프트웨어 (게임 엔진, 네트워크 서버, 고성능 라이브러리) 
* C 언어 대체 및 C 라이브러리와의 상호 운용 
* 빌드 시스템 (Zig 자체 빌드 시스템을 통한 프로젝트 관리) 


== 관련 문서 ==
== 관련 문서 ==
66번째 줄: 75번째 줄:


== 참고 자료 ==
== 참고 자료 ==
* https://andrewkelley.me/post/intro-to-zig.html
* [https://andrewkelley.me/post/intro-to-zig.html Andrew Kelley의 Zig 소개 글] 
* https://github.com/ziglang/zig/
* [https://github.com/ziglang/zig/ Zig GitHub 저장소] 
* [https://ziglang.org/ Zig 공식 사이트] 


[[Category:프로그래밍 언어]]
[[Category:프로그래밍 언어]]

2025년 10월 21일 (화) 00:29 기준 최신판

Zig
개발자 Andrew Kelley
최초 출시 2016년 2월 8일
최신 버전 0.15.1
파일 확장자 .zig, .zir, .zigr, .zon
라이선스 MIT
저장소
웹사이트 공식 사이트


Zig는 2016년 2월 8일 Andrew Kelley가 개발한 프로그래밍 언어이다. C 언어를 대체할 수 있는 범용 시스템 프로그래밍 언어를 목표로 하며, 성능과 안정성을 동시에 추구한다.

역사

  • 2016년: Zig 언어 첫 발표.
  • 2017년: GitHub 저장소 공개 및 초기 커뮤니티 형성.
  • 2019년: 크로스 컴파일 기능이 주목을 받음.
  • 2025년: 0.15.1 버전 출시.
  • 현재: 활발히 커뮤니티에서 개발 및 개선이 진행 중.

주요 특징

Zig 언어는 다음과 같은 특징을 가진다:

  • 간결하고 명확한 문법 → C와 비슷하지만 더 안전함
  • 저수준 메모리 접근(포인터, 수동 메모리 관리) → 시스템 프로그래밍에 적합
  • 플랫폼 및 아키텍처 간 강력한 이식성 (크로스 컴파일 지원이 뛰어남)
  • 표준 라이브러리 제공 → 파일 입출력, 문자열 처리, 메모리 관리 등 기본 기능 지원
  • 컴파일 타임 실행(Comptime) 기능 → 빌드 시점에 코드 실행 및 최적화 가능
  • 오류 처리 방식이 명확함 → 예외(Exception) 대신 에러 집합(Error Set)과 try/catch 사용
  • Null 안정성 → Null 허용 타입과 비허용 타입을 명확히 구분

예제 코드

Zig 공식 홈페이지의 예제이다.

const std = @import("std");
const parseInt = std.fmt.parseInt;

test "parse integers" {
    const input = "123 67 89,99";
    const gpa = std.testing.allocator;

    var list: std.ArrayList(u32) = .empty;
    // 리스트가 스코프 종료 시 해제되도록 보장한다.
    // 이 줄을 주석 처리해보라!
    defer list.deinit(gpa);

    var it = std.mem.tokenizeAny(u8, input, " ,");
    while (it.next()) |num| {
        const n = try parseInt(u32, num, 10);
        try list.append(gpa, n);
    }

    const expected = [_]u32{ 123, 67, 89, 99 };

    for (expected, list.items) |exp, actual| {
        try std.testing.expectEqual(exp, actual);
    }
}

활용

Zig는 다음과 같은 분야에서 활용되고 있다:

  • 시스템 프로그래밍 (운영체제, 드라이버, 임베디드 소프트웨어)
  • 크로스 컴파일 환경 구축 (여러 플랫폼용 바이너리를 손쉽게 빌드 가능)
  • 성능이 중요한 소프트웨어 (게임 엔진, 네트워크 서버, 고성능 라이브러리)
  • C 언어 대체 및 C 라이브러리와의 상호 운용
  • 빌드 시스템 (Zig 자체 빌드 시스템을 통한 프로젝트 관리)

관련 문서

참고 자료