
Rust 설치 이후 Hello, World를 출력하는 짧은 코드를 작성하는 전통적인 시간
"Hello, World" 출력을 위한 디렉터리 생성
# /home/kurt 디렉터리 아래 Rust라는 디렉터리 생성
$ mkdir /home/kurt/Rust
# 해당 디렉터리 아래 projects/hello_world 디렉터리 생성
$ mkdir -p /home/kurt/Rust/projects/hello_world
# tree로 디렉터리 확인
$ tree /home/kurt/
/home/kurt/
└── Rust
└── projects
└── hello_world
러스트의 파일 확장자는 .rs 이며, Rust는 snake case를 사용하는 것이 관례라고 한다..
# 작업 디렉터리로 이동
$ cd /home/kurt/Rust/projects/hello_world/
# main.rs 파일 생성
$ touch main.rs
# hello, world 코드 작성
$ cat main.rs
fn main() {
println!("Hello, world!");
}
# 컴파일
$ rustc main.rs
error: linker `cc` not found
|
= note: No such file or directory (os error 2)
error: aborting due to previous error
위와 같이 'cc' not found 오류 발생 시 gcc 패키지를 추가하여 작업한다
$ dnf install gcc
$ rustc main.rs
$ ls
main main.rs
# 실행
$ ./main
Hello, world!
'Hello, World!'를 출력하는 과정에 대한 설명
fn main() {
}
Rust는 (1)fn으로 함수를 선언하며, (2)함수 이름 뒤에 (3)괄호'()'의 형식으로 되어있고, 중괄호'{}'는 컴파일러에게 함수의 시작과 종료 지점을 알려준다
이때 파라미터가 존재한다면, (3)괄호'()'기호 안에 위치한다
main 함수 내에는 다음과 같은 코드가 존재한다
println!("Hello, world!");
위 한줄이 해당 코드의 모든 동작을 하며, 스크린에 텍스트를 출력하게 된다
println!은 Rust macro라고 불린다. 함수라고 불리려면,(!없이) println으로 입력되어야 한다.(Rust macro에 대한 설명은 추후 진행한다고 함)!이 보통의 함수 대신 매크로를 호출하고 있음을 의미함을 알아두면 된다"Hello, world!"는 스트링(string)이며, 우리는 이 스트링을 println!의 인자로 넘긴다위 시나리오에서 구분했던 것 같이 컴파일과 실행은 개별적인 단계이다
우리는 다음 명령어로 소스코드를 컴파일 하게 된다.
$ rustc main.rs
위 방식은 gcc 혹은 clang과 유사하다고 하며, Rust는 컴파일을 성공적으로 한 뒤 실행 가능한 바이너리를 출력한다.
Python, Ruby, JS같은 동적 언어를 사용하면 컴파일과 실행을 개별적인 단계로 하지 않았을 것이다.
Rust는 ahead-of-time compiled 언어인데, 이는 어떠한 실행 파일을 사용하기 위해서 Rust를 사용하지 않아도 이를 실행할 수 있다는 의미이다.
해당 기능을 이용하기 위해서 Cargo라는 도구를 사용하는데 다음장에 설명을 이어서 진행한다
현재 시리즈는 다음 링크를 공부한 내용을 기록하고 있습니다.
> The Rust Programming Language <