프로그래밍 언어/rust

러스트 시작하기

Gurumee 2025. 4. 12. 21:23
반응형

💡 이 문서는 The Rust Programming Language를 보고 재구성하였습니다.

러스트 설치하기

러스트를 설치하기 위해서 rustup CLI 도구를 설치합니다. rustup 도구는 러스트 컴파일러인 rustc , 파일을 깔끔하게 코드 스타일을 관리할 수 있는 포매터 rustfmt, 그리고 라이브러리 의존성을 관리할 수 있는 cargo 등의 도구들이 모두 들어있기 때문에 간편하게 러스트 개발 환경을 구성할 수 있습니다.

리눅스 및 맥 환경에 설치하기

다음 명령어를 입력하여 설치합니다.

$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

설치가 완료되면 다음 문구가 나타납니다.

Rust is installed now. Great!

⚠️ 이 단계에서 C 컴파일러 설치가 필요할 수 있습니다!
러스트 링커의 경우, 기본으로 설치됩니다. 그러나, 컴파일 시 실행할 수 없다는 에러가 나타날 수 있습니다. 이 경우에, 각 운영 환경에 맞는 C 컴파일러가 필요합니다.

리눅스:
일반적으로 `gcc` 나 `Clang` 이 설치되어 있습니다. 만약 설치되지 않은 경우 우분투의 `build-essential` 같은 기본 패키지를 재설치하면 컴파일러를 설치할 수 있습니다.

맥:
다음 명령어로 설치할 수 있습니다.

$ xcode-select --install

 

업데이트 및 설치

다음 명령어들로 rustup 을 업데이트 및 삭제할 수 있습니다.

업데이트:

$ rustup update

 

삭제:

$ rustup self uninstall

Hello World!

💡 적절한 코드 에디터 혹은 IDE를 설치하세요!
이 절을 진행하기 이전에, 러스트 개발하기 좋은 코드 에디터 혹은 IDE를 설치해주세요. 대표적인 코드 에디터로는 `VSCode`, `Cursor AI` , `Wind Surf` 가 있고, IDE로는 `RustRover` 가 있습니다.

Hello World!란 프로그래밍 언어를 배울 때, 관례적으로 만드는, 단순히 Hello World!라는 문자열을 출력하는 프로그램입니다.

프로젝트 디렉토리 생성하기

먼저 다음 명령어를 이용하여 프로젝트를 생성하세요!

# 프로젝트 모음 디렉토리 생성
$ mkdir ~/projects

# 프로젝트 모음 디렉토리로 이동
$ cd ~/projects

# Hello World! 프로젝트 생성
$ mkdir hello_world

# Hello World! 프로젝트 이동
$ cd hello_world

러스트 프로그램 작성하고 실행하기

이제 main.rs 를 다음과 같이 작성합니다.

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

 

그 후, 터미널에 다음을 입력하여, “컴파일”합니다.

$ rustc main.rs

 

그럼 프로젝트 디렉토리 내에 main 이라는 실행 파일이 생성됩니다.

$ ls
main    main.rs

 

다음과 같이 우리가 생성한 프로그램을 실행할 수 있습니다.

$ ./main
Hello, World!

러스트 프로그램 뜯어보기

먼저 살펴볼 부분은 다음과 같습니다.

fn main() {
    // ...
}

이 부분은 러스트에서 main 함수를 정의한 것입니다. 일반적으로 main 함수는 특별한 함수로써 실행 프로그램에서 가장 먼저 실행되는 부분입니다. 여기서는 프로그램 실행 매개 변수를 아무것도 받지 않았지만, 매개 변수를 받고 싶다면 () 이 부분에 매개 변수를 작성해야 합니다.

 

러스트에서 함수 본문은 항상 {} 로 감싸주어야 합니다. 이제 main 함수 내 코드를 살펴봅시다.

    println!("Hello, World!");

 

위 코드가 실제 로직인 Hello, World! 를 출력하는 코드입니다. 대표적으로 세가지만 살펴봅시다.

 

먼저 println! 은 매크로입니다. 여기서는 호출 부에 ! 가 붙은 건 매크로라고 알아둡시다. 이 매크로는 () 안의 문자열을 출력합니다.

 

두 번째는, "Hello, World!" 는 문자열 리터럴입니다. 리터럴이란 일반적으로 고정된 값을 의미합니다. 숫자나 문자(’’), 문자열(””)이 대표적인 리터럴입니다.

 

마지막으로 러스트는 모든 표현식 뒤에 ; 붙여야 합니다. 러스트 코드의 거의 모든 라인이 이 문자로 끝난다는 것을 알아두세요.

 

Hello Cargo!

이번에는 cargo 를 이용하여 러스트 애플리케이션을 만들어보겠습니다. cargo 란 러스트의 빌드 도구이자 패키지 매니저입니다. 간단한 프로그램이라면, “Hello World!” 프로젝트처럼 간단하게 러스트 코드를 작성하고 rustc 로 컴파일 후 실행해도 좋습니다. 하지만 애플리케이션이 복잡해질수록 cargo 를 이용하는 것을 권장드립니다. 이 도구는 코드 빌드나, 코드 작성에 필요한 외부 라이브러리를 다운로드할 때나, 라이브러리를 제작할 때 겪는 귀찮은 일들을 상당수 줄여주는 편리한 도구입니다

카고로 프로젝트 생성하기

먼저 프로젝트 모음ㅁ 디렉토리로 이동합니다.

# 프로젝트 모음 디렉토리로 이동
$ cd ~/projects

프로젝트 모음 디렉토리에서 현재 생성된 프로젝트 목록을 확인해보겠습니다.

# 프로젝트 목록 확인
$ ls 
hello_world

이제 cargo 로 프로젝트를 생성해봅시다. 다음 명령어를 입력해주세요.

# cargo로 프로젝트 생성
# cargo new <프로젝트 이름>
$ cargo new hello_cargo    

다시 프로젝트 목록을 확인해봅시다.

# 프로젝트 목록 확인
$ ls 
hello_cargo  hello_world

hello_cargo 프로젝트가 생성된 것을 확인할 수 있습니다. 이제 디렉토리로 이동한 후 어떻게 디렉토리가 구성되었는지 확인해보겠습니다.

# hello_cargo 프로젝트 이동
$ cd hello_cargo

# 디렉토리 구성 확인
$ tree              
.
├── hello_cargo
│   ├── Cargo.toml
│   └── src
│       └── main.rs
└── hello_world
    └── main.rs

4 directories, 3 files

이제 생성된 src/main.rs 코드를 확인해봅시다.

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

Hello World! 프로젝트와 거의 동일한 코드가 생성된 것을 확인할 수 있습니다.

카고로 애플리케이션 실행하기

이제 애플리케이션을 실행해보도록 하겠습니다. 터미널에 cargo run 이란 명령어를 실행해봅시다.

# 프로젝트 실행
$ cargo run     
   Compiling hello_cargo v0.1.0 (/home/gurumee/Workspaces/studies/the-rust-programming-language/hello_cargo)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.42s
     Running `target/debug/hello_cargo`
Hello, world!

다시 src/main.rs 에서 다음처럼 수정해보겠습니다.

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

그 후 다시 cargo run 명령어로 애플리케이션을 실행해봅시다.

# 프로젝트 실행
$ cargo run
   Compiling hello_cargo v0.1.0 (/home/gurumee/Workspaces/studies/the-rust-programming-language/hello_cargo)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.18s
     Running `target/debug/hello_cargo`
Hello, Cargo!

카고로 애플리케이션 빌드하기

이제 마지막으로 애플리케이션을 빌드하고 실행해보겠습니다. 터미널에 cargo build 명령어를 실행해봅시다.

$ cargo build
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.00s

기본적으로 빌드하면, 개발 환경으로 빌드가 실행됩니다. 빌드 후, target/debug 폴더에 hello_cargo 란 실행 파일이 생성됩니다. 이제 실행 파일을 생성해봅시다.

$ ./target/debug/hello_cargo
Hello, Cargo!

결국 cargo run 이란 명령어는 빌드 후 실행 파일을 실행하는 것을 축약한 명령어입니다. 실제 프로덕션 환경에 배포할 애플리케이션을 빌드하려면 터미널에 다음과 같이 명령어를 입력하면 됩니다.

$ cargo build --release
   Compiling hello_cargo v0.1.0 (/home/gurumee/Workspaces/studies/the-rust-programming-language/hello_cargo)
    Finished `release` profile [optimized] target(s) in 0.15s

그럼 마찬가지로 target/release 폴더에 실행 파일이 생성됩니다.

728x90
반응형