소개
Rust 프로그램은 일반적으로 Rust의 프로젝트 및 빌드 도구인 Cargo로 구성하고 실행합니다. 이 실습에서는 Linux 터미널에서 작은 Cargo 프로젝트를 완성합니다. 터미널, 편집기 또는 Rust를 사용해 본 경험이 없어도 됩니다.
프로젝트 디렉터리로 이동하고, nano로 Rust 소스 파일을 편집하며, Cargo에 코드 검사를 요청하고, 완성된 프로그램을 실행하는 방법을 배웁니다. 이 실습에서는 소스 코드와 프로그램의 정확한 출력 결과를 모두 확인합니다.
프로젝트로 이동하고 소스 편집하기
이 단계에서는 준비된 프로젝트를 찾고 nano로 첫 번째 간단한 Rust 편집을 수행합니다.
터미널은 명령을 입력하는 텍스트 영역입니다. 명령은 컴퓨터에 전달하는 지시입니다. 먼저 터미널 내부를 클릭해 키보드 포커스를 둔 다음, 다음 명령을 입력하고 Enter 키를 누릅니다.
pwd
pwd는 print working directory의 약자입니다. 디렉터리는 폴더를 가리키는 다른 이름입니다. 출력에는 현재 위치한 폴더가 표시되며, 일반적으로 /home/labex입니다.
다음으로 해당 폴더의 항목을 나열합니다.
ls
ls는 list를 의미합니다. project라는 이름의 폴더가 표시되어야 합니다.
change directory를 의미하는 cd를 사용해 준비된 Rust 프로젝트로 이동합니다. 경로가 /로 시작하므로 절대 경로입니다. 절대 경로는 현재 디렉터리가 아니라 파일 시스템의 최상위 위치부터 시작해 위치를 지정합니다.
cd /home/labex/project/hello-rust
cd가 성공하면 터미널에는 일반적으로 아무것도 출력되지 않습니다. 프로젝트의 내용을 나열합니다.
ls
Cargo.toml과 src가 표시되어야 합니다. Cargo는 Cargo.toml을 읽어 패키지 이름, 버전, Rust 에디션, 의존성을 확인합니다. src 디렉터리에는 Rust 소스 코드가 있으며, 이 프로그램은 src/main.rs에서 시작합니다.
초보자도 사용하기 쉬운 터미널 텍스트 편집기인 nano로 소스 파일을 엽니다.
nano src/main.rs
src/main.rs는 상대 경로입니다. /로 시작하지 않으므로 터미널은 현재 디렉터리인 /home/labex/project/hello-rust 안에서 이 파일을 찾습니다. 따라서 먼저 cd로 프로젝트에 들어가야 합니다.
파일이 터미널 안에 표시됩니다. 화살표 키로 커서를 이동합니다. 밑줄 문자 5개만 변경하여 해당 줄이 다음과 같아지게 합니다.
println!("Hello from LabEx!");
nano 아래쪽에 표시되는 ^ 기호는 Ctrl 키를 의미합니다. Ctrl+O(Ctrl을 누른 상태에서 O 누르기)로 파일을 저장한 다음, Enter 키를 눌러 파일 이름을 확인합니다. Ctrl+X로 종료합니다.
저장한 내용이 디스크에 기록되었는지 확인하기 위해 같은 파일을 다시 엽니다.
nano src/main.rs
해당 줄에 Hello from LabEx!가 포함되어 있는지 확인합니다. 다시 편집할 필요는 없으므로 Ctrl+X로 종료합니다. 저장한 파일을 다시 여는 방법은 편집 내용이 실제로 저장되었는지 확신할 수 없을 때 유용한 확인 방법입니다.
편집기를 다시 열지 않고 저장된 파일을 표시합니다.
cat src/main.rs
cat은 파일 내용을 터미널에 출력합니다. nano와 달리 파일을 표시하기만 하며 편집 화면은 제공하지 않습니다. Hello from LabEx!가 표시되고 메시지 안에 밑줄 문자가 없는지 확인합니다.
메시지를 추가하고 코드 확인하기
이 단계에서는 간단한 프로그램의 구조를 이해하고, 한 줄을 추가한 다음, Cargo로 오류를 확인합니다.
터미널은 여전히 /home/labex/project/hello-rust에 있어야 합니다. 확실하지 않다면 pwd로 현재 디렉터리를 확인합니다. 소스 파일을 다시 엽니다.
nano src/main.rs
이 프로그램에는 다음과 같은 중요한 Rust 구성 요소가 있습니다.
fn main()은 main 함수를 정의하며, 이 프로그램은 여기서 시작합니다.- 여는 중괄호와 닫는 중괄호인
{및}는 함수의 명령을 둘러쌉니다. println!은 텍스트 한 줄을 표시합니다.!는println!이 Rust 매크로임을 나타냅니다.- 큰따옴표 사이의 텍스트는 문자열 리터럴입니다.
- 세미콜론
;은 이 명령을 끝냅니다.
기존 println! 줄의 끝으로 커서를 이동하고 Enter 키를 누른 다음, 닫는 중괄호 앞에 다음 두 번째 명령을 추가합니다.
println!("I am learning Rust with Cargo.");
이제 파일 전체가 다음과 같아야 합니다.
fn main() {
println!("Hello from LabEx!");
println!("I am learning Rust with Cargo.");
}
Ctrl+O로 저장하고, Enter 키를 누른 다음 Ctrl+X로 종료합니다.
이제 패키지를 컴파일할 수 있는지 Cargo에 확인을 요청합니다.
cargo check
cargo check는 코드를 분석하고 오류를 보고하지만, 최종 실행 프로그램은 생성하지 않습니다. 처음 검사할 때는 잠시 시간이 걸릴 수 있습니다. 성공하면 마지막 부분에 Finished가 포함된 줄이 표시됩니다.
Cargo에서 오류를 보고하면 파일을 전체 예제와 비교합니다. 특히 따옴표, 괄호, 세미콜론, 중괄호를 주의해서 확인합니다. nano src/main.rs로 파일을 수정하고 저장한 다음 cargo check를 다시 실행합니다.
Cargo로 프로그램 실행하기
이 단계에서는 검사를 완료한 Rust 프로그램을 빌드하고 실행합니다.
/home/labex/project/hello-rust에서 다음 명령을 실행합니다.
cargo run
cargo run은 서로 연결된 두 가지 작업을 수행합니다. 패키지를 실행 가능한 프로그램으로 컴파일한 다음 프로그램을 시작합니다. Cargo는 프로그램의 출력 전에 몇 줄의 빌드 상태 메시지를 표시할 수 있습니다.
출력 마지막 부분에 다음 두 줄이 표시되어야 합니다.
Hello from LabEx!
I am learning Rust with Cargo.
이번에는 Cargo의 상태 메시지를 숨기고 프로그램을 다시 실행합니다.
cargo run --quiet
--quiet 옵션은 Cargo 자체의 출력을 줄이므로 프로그램에서 출력하는 다음 두 줄만 표시되어야 합니다. 이제 편집, 검사, 실행으로 이어지는 기본 Cargo 작업 흐름을 완료했습니다.
요약
Linux 터미널을 탐색하고, nano로 Rust 코드를 편집하고 저장했으며, main 함수와 println! 매크로를 확인했습니다. 또한 Cargo 패키지를 검사하고 실행했습니다. 이번에 연습한 편집-검사-실행 주기는 이후에 만들 Rust 프로젝트의 기초가 됩니다.


