학습
Zig 기본 문법
Zig 기본 문법 — 초급
Zig 기본 문법
1. 도입 (왜 배워야 하는가)
Zig는 현대적인 시스템 프로그래밍 언어로, 간결하고 안전한 코드 작성을 지원합니다. Zig를 배우는 것은 성능과 안전성이 중요한 소프트웨어 개발에 필수적입니다. 특히 시스템 프로그래밍, 게임 개발, IoT 등 자원 관리가 중요한 분야에서 Zig는 뛰어난 성능을 발휘합니다.
만약 Zig의 기본 문법을 모른다면, 코드 작성 시 오류가 발생하거나, 메모리 관리에 실패하여 프로그램이 비정상적으로 종료되는 상황을 겪을 수 있습니다. 또한, 기본적인 문법을 이해하지 못하면 더 복잡한 개념을 배우기 어렵습니다.
2. 핵심 개념 설명
Zig의 기본 문법에는 변수 선언, 데이터 타입, 조건문, 반복문 등이 포함됩니다. 이를 쉽게 이해하기 위해 아래와 같이 정리할 수 있습니다.
| 개념 | 설명 | 비유 |
|---|---|---|
| 변수 | 데이터를 저장하는 이름이 붙은 공간 | 상자에 이름을 붙여 놓는 것 |
| 데이터 타입 | 변수의 종류를 정의하는 것 (예: 정수, 문자열 등) | 각기 다른 모양의 상자 |
| 조건문 | 특정 조건에 따라 다른 실행 흐름을 결정하는 것 | 날씨에 따라 우산을 가져가는 것 |
| 반복문 | 특정 작업을 여러 번 반복하는 것 | 반복해서 노래를 부르기 |
3. 기본 코드 예제
아래는 Zig의 기본 문법을 보여주는 간단한 코드입니다.
const std = @import("std");
pub fn main() void {
const name = "Zig"; // 문자열 변수 선언
const age: u32 = 10; // 32비트 부호 없는 정수 변수 선언
std.debug.print("이름: {}, 나이: {}\n", .{name, age}); // 출력
}
실행 결과:
이름: Zig, 나이: 10
코드 설명:
const std = @import("std");- 표준 라이브러리를 가져옵니다.pub fn main() void {- 프로그램의 진입점인 main 함수를 정의합니다.const name = "Zig";- 문자열 변수를 선언하고 "Zig" 값을 할당합니다.const age: u32 = 10;- 32비트 부호 없는 정수 변수를 선언하고 10 값을 할당합니다.std.debug.print("이름: {}, 나이: {}\n", .{name, age});- 변수 값을 포맷하여 출력합니다.- Zig의 기본 문법은 변수 선언, 데이터 타입, 조건문, 반복문 등으로 구성됩니다.
- 각 문법 요소는 시스템 프로그래밍에서 성능과 안전성을 높이는 데 필수적입니다.
- 조건문과 반복문은 실무에서 자주 사용되는 패턴입니다.
- 다음 학습 주제로는 함수 정의와 에러 처리, 메모리 관리 등을 추천합니다.
4. 실전 활용 예제
예제 1: 조건문 사용
쇼핑몰에서 장바구니에 담긴 상품의 수량에 따라 할인 여부를 결정하는 코드입니다.
const std = @import("std");
pub fn main() void {
const itemCount: u32 = 5;
if (itemCount >= 10) {
std.debug.print("10개 이상 구매 시, 10% 할인!\n", .{});
} else {
std.debug.print("할인 적용되지 않음.\n", .{});
}
}
상황 설명: 고객이 장바구니에 10개 이상의 상품을 담으면 10% 할인이 적용됩니다.
예제 2: 반복문 사용
블로그 포스트를 여러 번 출력하는 코드입니다.
const std = @import("std");
pub fn main() void {
const posts = ["첫 번째 포스트", "두 번째 포스트", "세 번째 포스트"];
for (posts) |post| {
std.debug.print("{}\n", .{post}); // 각 포스트 출력
}
}
상황 설명: 여러 블로그 포스트를 반복하여 출력할 때 유용합니다.
5. 흔한 실수와 주의사항
실수 1: 변수 타입 선언 누락
잘못된 코드:
const age = 25; // 타입 선언 없음
올바른 코드:
const age: u32 = 25; // 타입을 명시적으로 선언
설명: Zig는 타입을 명시적으로 선언하는 것이 좋습니다. 타입이 없으면 예기치 않은 오류가 발생할 수 있습니다.
실수 2: 잘못된 조건문
잘못된 코드:
if (age = 25) { // '='를 사용하여 비교
std.debug.print("25세입니다.\n", .{});
}
올바른 코드:
if (age 25) { // ''로 비교
std.debug.print("25세입니다.\n", .{});
}
설명: 조건문에서 값을 할당하는 '=' 대신 비교 연산자인 '=='를 사용해야 합니다.