디모이 블로그

디모이 블로그

Rust #1: Rust 개발환경 구성

개요

저는 C# 언어를 주로 사용하고 있고 저급레벨을 다룰 수 있는 C++를 대체할 언어를 찾다가 Rust를 접하게 되었습니다. 사실, Go를 공부할까 Rust를 공부할까 시간 좀 걸렸는데요, 문법적인 익숙함은 Go가 더 친숙해 보였고 유용하게 사용하고 있는 오른소스 웹 서버인 Caddy가 Go언어로 만들어졌다는데 있었습니다. Rust는 Webassembly에서 가장 활용되는 언어로 소개되어 있다는데 있는데요, 고민끝에 Rust를 선택했습니다.

이 글은 이미 훌륭한 Rust 개발환경 구성 컨텐츠가 있음에도 불구하고 직접 Rust를 설치하고 개발환경을 구성하면서 그 내용을 기록하기 위해 작성합니다. 좀 더 상세한 정보를 원하시는 분은 위의 링크로 접근하길 바랍니다.

Rust 설치

rustup를 통해 본인의 운영체제에 맞게 쉽게 설치 가능합니다. 설치완료 후 설치된 Rust 버젼을 확인해 봅시다.

$ rustc --version
rustc 1.53.0 (53cb7b09b 2021-06-17)

rustup을 통해 설치된 구성요소는 다음과 같습니다.

  • cargo - 강력한 Rust 패키지 관리 도구입니다.
  • clippy - 코드를 스캔하고 코드를 개선하거나 문제를 확인하는 방법에 대한 제안을 받을 수 있는 도구입니다.
  • rust-docs - 소스 코드에서 문서 자동 생성을 제공하는 플러그인 입니다.
  • rustc - Rust 컴파일러입니다.
  • rustfmt - 모든 사람의 Rust 코드가 동일하게 보이도록 하는 코드의 형식을 자동으로 지정하는 코드 포멧터입니다.

첫번째 Rust 프로그램

설치된 cargo를 통해 다음처럼 첫번째 Rust 프로그램을 생성할 수 있습니다.

$ cargo new hello
cd hello

hello 디렉토리의 파일목록은 다음과 같습니다.

d----        2021-07-14  오후 6:05                src
-a---        2021-07-14  오후 6:05              8 .gitignore
-a---        2021-07-14  오후 6:05            174 Cargo.toml

기본적으로 git 버전관리 시스템을 사용하는 것을 알 수 있고요, Cargo.toml을 통해 생성 패키지에서 사용하는 종속 패키지를 관리할 수 있음을 알 수 있습니다. Cargo.toml을 확인해보면,

[package]
name = "hello"
version = "0.1.0"
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

[package]에서 패키지의 이름과 버젼, 에디션 등을 지정할 수 있고 [dependencies]에서 종속 패키지를 등록할 수 있음을 알 수 있습니다. cargo new를 통해 생성한 패키지는 종속성이 없으므로 비워져 있습니다. 다음으로 src디렉토리를 보면,

-a---        2021-07-14  오후 6:05             45 main.rs

main.rs RUST 소스 파일을 확인할 수 있는데요 그 내용을 보면,

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

메인함수로 이루어진 Hello, World!를 출력하는 간단한 소스코드임을 확인할 수 있습니다. cargo를 이용해 실행해 봅시다.

$ cargo run
Hello, world!

잘 실행되는군요!

통합 개발 환경 구성

다음으로 Rust를 효과적으로 사용하기 위한 Visual Studio Code를 구성하도록 하겠습니다. 이곳을 통해 자신에 맞는 설치본을 다운로드 받아 설치할 수 있습니다. 설치가 완료되면 hello 디렉토리에서

$ code .

Visual Studio Code를 실행할 수 있습니다.

Visual Studio Code에서 Rust 개발을 하려면 다음의 VS Code 확장을 설치해야 합니다.

VS Code 확장

왼쪽 중앙에서 가장 아래의

image.png

메뉴를 통해 확장을 설치할 수 있는데요, 다음의 확장을 설치하도록 합니다.

  • rust-analyzer - Rust의 intellisense를 제공합니다.
  • CodeLLDB - 코드의 디버그를 위해 설치합니다.

또한 다음의 확장을 설치하면 유용합니다.

  • crates - 참조하는 crate(Rust의 패키지)의 버젼을 확인할 수 있습니다.
  • Markdown All in One - 마크다운 파일을 작성하기 위해 필요한 확장입니다.
  • Even Better TOML - TOML을 지원하는 편집기 지원기능을 제공합니다.
  • Rewrap - 라인에 더 잘 맞도록 텍스트(마크다운 파일 및 Rust의 주석)를 재포멧하는 기능을 제공합니다.

여기서 주의해야 할 것은 설치 패키지 중 rust-analyzerrust 둘 다 설치되었다면 충돌이 됩니다. 이 문서는 rust-analyzer 패키지를 설치했다는 것을 전제로 진행이 됩니다.

설치가 완료되면 Rust 소스코드가 다음처럼 보일 텐데요,

image.png

Run을 통해 Rust 소스코드를 컴파일 하여 실행할 수 있습니다. 또한 Debug 버튼을 통해 디버그를 수행할 수 있는데요, 관련된 설정은 다음에서 소개하도록 하겠습니다.

VS 코드 디버깅

Visual Studio Code에서 디버깅 관련 설정을 하기 위해 Ctrl+,을 눌러 설정으로 이동한 후, debug로 검색합니다. 그리고 다음처럼 설정 합시다.

image.png

이제 Rust 소스코드에 F9키로 중단점을 지정할 수 있습니다. 다음으로 검색을 통해 다음을 찾고 아래와 같이 지정합니다.

image.png

image.png

이렇게 하면 앞서 언급한 rustfmt 구성요소에 의해 파일을 저장할 때마다 마법을 수행합니다. 저장을 통해 모든 코드구성이 정위치에 놓이게 됩니다.

이제 중단점을 지정해서 소스코드를 디버깅 할 수 있게 되었습니다.


이 글은 맷 데이비스 님의 Rust #1: Creating your development environment을 절대적으로 참고했습니다. 좀 더 자세한 설명이 필요한 분은 이글을 참고하세요!

 
Share this