1.1. Installation
러스트 설치에 대한 아주 간단한 가이드.
- 간단한 내용이라 딱히 정리할 내용은 없다.
1.2. Hello, World!
러스트로 Hello, World! 출력하기.
특징적인 내용은 아래와 같다.
- 공식 가이드의 Helloworld 섹션 첫줄에 다른 언어에 대한 이해도를 전제하고 있다.
- 실제로 공식 가이드 문서 내내 러스트의 특징을 다른 언어의 특징과 거울처럼 대비하며 설명한다.
- 파일명 컨벤션은 스네이크 케이스를 사용한다. (그리고 그걸 첫장에 설명한다.)
- rustc와 같은 컴파일 커맨드도 첫장에 알려준다.
fn main() {
println!("Hello, World!");
}
- 다양한 언어를 배워오면서 느끼는건, Hello, World!를 출력하려고 할 때 언어의 특징을 알 수 있다는 것이다.
Public static void main(String[] args) …. - 러스트는
println!
매크로를 사용한다. (매크로는 러스트의 특징 중 하나이다, 나중에 자세히 정리가 나온지만 간단하게 설명하면 러스트의 매크로는 러스트의 문법을 확장할 수 있는 기능이다.)
Hello World Anatomy
fn
: 함수를 선언할 때 사용하는 키워드.- 러스트의에서
main
함수의 의미 : 프로그램의 시작점을 나타낸다.(The main function is special: it is always the first code that runs in every executable Rust program.) {}
: 블록을 나타낸다. 블록은 코드의 범위를 나타낸다. (블록은 러스트의 다른 부분과 마찬가지로 중괄호로 둘러싸여 있다.)println!
: 매크로를 호출하는 방법. (매크로는 러스트의 문법을 확장할 수 있는 기능이다.);
: 문장의 끝을 나타낸다. (러스트는 문장의 끝에 세미콜론을 붙여야 한다, 식의 끝에 세미콜론을 붙이는 것은 문장의 끝을 나타낸다. 이 가이드에서도 문과 식을 구분하는 것이 중요하다.)- 러스트의 들여쓰기는 4칸을 권장한다. (공식 가이드에서는 4칸을 권장하는데.. 왜..?)
그 외에는 간단한 컴파일 관련 설명이다.
1.3. Hello, Cargo!
MZ한 언어답게 트랜디한 공식 빌드 시스템이자 패키지 매니저인 Cargo에 대한 간단한 가이드.
- Cargo는 러스트의 빌드 시스템이자 패키지 매니저이다.
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
- 보통은 이렇게 생겼다. (Cargo.toml 파일)
cargo new hello_cargo
: 새로운 프로젝트를 생성한다.cargo build
: 프로젝트를 빌드한다.- 기본적으로 러스트는 디버그 모드로 빌드한다.
- 그래서 빌드된 실행 파일(바이너리)은
target/debug/${my_project_name}
에 위치한다.
cargo run
: 프로젝트를 실행한다.cargo check
: 프로젝트를 빌드하지 않고 컴파일을 실행한다.cargo build --release
: 프로젝트를 릴리즈 모드로 빌드한다.cargo update
: 프로젝트의 의존성을 업데이트한다.- 의존성을 체크하는 lock 파일이 있다. (Cargo.lock)
- 빌드할 때 알아서 변경을 감지하고 빌드한다. (즉, 변경사항이 없으면 빌드하지 않는다.)
cargo check
으로 컴파일만 하는 이휴는 빠르기 때문이다, 프로젝트 중간중간 컴파일체크만 하고 싶을 때 사용한다고 한다.--release
플래그로 릴리즈 모드로 빌드할 수 있다. (릴리즈 모드는 최적화가 적용된다.)
컨벤션은 아래와 같다.
$ git clone example.org/someproject
$ cd someproject
$ cargo build
Conculusion & Impression
- 패키지매니저를 공식적으로 가지고 있고, 빌드 시스템이 강력하다.
- 기본적으로 간단한 문법의 언어이다.
- 매크로가 있다.