# Hello, world! 예제

Rust를 처음 접할 때 가장 간단하게 시도해볼 수 있는 예제는 화면에 문자열을 출력하는 것이다. Rust에서는 메인 함수인 `main`을 통해 프로그램이 시작하며, 콘솔에 출력하기 위해 `println!` 매크로를 사용한다. 코드 예시는 다음과 같이 작성할 수 있다.

```
fn main() {
    println!("Hello, world!");
}
```

이 코드는 Rust의 표준 출력을 통해 "Hello, world!"라는 문자열을 화면에 보여준다. 여기서 `println!`은 함수처럼 보이지만, 사실은 매크로라는 점이 특징이다. 매크로는 Rust에서 반복적인 코드를 간결하게 작성할 수 있도록 도와주는 메커니즘이며, 함수 호출과는 달리 느낌표(`!`)를 붙여서 구분한다.

Rust 프로그램을 작성할 때는 확장자 `.rs`를 사용하는 것이 일반적이다. 위 예제를 `main.rs`라는 파일로 작성했다면, `rustc` 컴파일러를 이용해 직접 컴파일할 수 있다. 컴파일이 끝나면 같은 디렉터리에 실행 파일이 생성된다. 유닉스 계열 환경이라면 해당 실행 파일을 터erminal에서 실행할 때 `./main`과 같은 명령으로 실행하게 되고, Windows 환경에서는 `main.exe`가 생성되어 더블 클릭하거나 명령 프롬프트에서 실행할 수 있다.

다른 방식으로는 Cargo를 사용하여 새로운 프로젝트를 생성하고 실행할 수도 있다. Cargo는 Rust 생태계에서 표준으로 사용하는 빌드 도구 겸 패키지 관리자이다. Cargo를 활용하면 Rust 프로젝트를 좀 더 체계적으로 관리할 수 있다. 예를 들어, Cargo를 설치한 뒤에 프로젝트를 생성하고 실행하려면 다음과 같은 순서대로 진행한다.

```
cargo new hello_world
cd hello_world
cargo run
```

이 경우 `hello_world` 디렉터리 아래에 `src/main.rs` 파일이 자동으로 만들어지며, 그 안에 이미 간단한 `Hello, world!` 예제가 작성되어 있다. `cargo run` 명령어를 통해 소스 코드를 컴파일하고 바로 실행할 수 있다.

Rust에서는 `main` 함수가 프로그램의 진입점 역할을 한다. 다른 언어와 달리 보통 반환 타입을 명시적으로 쓰지 않아도 되고, 별도의 반환값을 지정하지 않으면 기본적으로 `()`(단위 타입)를 반환한다. 중괄호 `{}`로 코드 블록을 작성하고, 각 구문의 끝에 세미콜론(`;`)을 붙이는 점은 C 계열 언어와 유사하다.

이처럼 간단한 예제 하나를 통해 러스트가 어떻게 컴파일되고 실행되는지, 그리고 코드 구성 방식이 어떤지 알 수 있다. Rust를 학습할 때 "Hello, world!"는 필수적인 출발점이다. 이러한 작은 프로그램을 성공적으로 빌드하고 실행해보면, 이후에 Rust로 더 복잡한 프로그램을 작성할 때도 큰 자신감을 얻을 수 있다.
