Rust 개발 환경 설정
김태훈 2023년 07월 20일 #Rustℹ️
Mac 터미널 환경과 VSCode 기준으로 작성하였습니다.
Rust 설치하기
curl 커맨드를 사용하여 Rush 설치 스크립트를 다운로드하고 설치 합니다.
|
설치 및 버전 확인
rustc --version
결과
Rust는 rustc (컴파일러), cargo (프로젝트/패키지 관리자) 등이 포함된 Rust 툴체인을 관리하는 rustup 툴체인 관리 도구를 제공 합니다.
최신 버전으로 업데이트 하기
rustup update
결과
Cargo: Rust 프로젝트/패키지 관리자
프로젝트 생성
cargo 커맨드로 Rust 프로젝트를 생성 할 수 있습니다.
cargo new*<프로젝트 이름>*형식 입니다.
커맨드를 실행한 곳에 rust-demo 폴더가 생성되며, 아래와 같은 파일이 자동 생성 됩니다.
.
├── Cargo.toml
└── src
└── main.rs
프로젝트 빌드 및 실행
cargo로 프로젝트를 빌드하여 실행 파일을 생성 할 수 있습니다.
cargo build
결과
실행 파일은 ./target/debug/ 폴더에 *<프로젝트 이름>*과 같은 파일로 생성 됩니다. (여기선 rust-demo)
아래과 같이 실행 해 볼 수 있습니다.
./target/debug/rust-demo
결과
디버깅 심볼등을 제외한 릴리즈용 실행 파일은 -r(또는 --release)옵션을 추가하여 빌드 합니다.
cargo build -r
결과
cargo run 으로 빌드와 실행을 한번에 할 수도 있습니다.
cargo run
결과
cargo run 으로 빌드와 실행을 한번에 할 수 있습니다.
cargo run
결과
Crate 바이너리 설치
cargo install 로 crates.io 에 배포된 crate 바이너리를 설치 할 수 있습니다. (go install 같은 것)
cargo install wasm-pack
결과
자주쓰는 Cargo 명령어 정리
-
cargo new로 새 프로젝트를 생성할 수 있습니다. -
cargo build명령으로 프로젝트를 빌드할 수 있습니다. -
cargo run명령어는 한 번에 프로젝트를 빌드하고 실행할 수 있습니다. -
cargo check명령으로 바이너리를 생성하지 않고 프로젝트의 에러를 체크할 수 있습니다. -
cargo test명령으로 자동화 테스트를 수행 합니다. -
cargo add명령으로 Crate를 추가합니다. (From crates.io) -
cargo install명령으로 Crate 바이너리를 설치 합니다.
VSCode 설정
Rust 관련 추천 Extensions
-
rust-analyzer → VSCode Rust 필수 확장 프로그램
-
Rust Extension Pack → VSCode Rust 개발에 많이 사용되는 확장 모음집
-
crates → Cargo.toml 파일로 의존성 관리를 편리하게 해줌
-
Better TOML → .toml 파일 (Rust 진영에서 많이 사용되는 설정파일 포맷) 쓰기 편하게 도와줌
Neovim 설정
AstroNvim 확장에 Rust 설정
기존 Neovim 설정이 있으면, 백업을 해둡니다.
AstroNvim을 설치합니다.
플러그인 설치를 위해 nvim 패키지 매니저를 실행합니다.
nvim +PackerSync
nvim을 실행하고, LspInstall 로 Rust analyzer를 설치 합니다.
nvim .
- nvim 명령행
:LspInstall rust
→ rust_analyzer 선택
결과
tree-snitter (Rust용 구문 분석기)도 설치 합니다.
- nvim 명령행
:TSInstall rust
테스트 작성법
유닛 테스트
Rust의 유닛 테스트는 테스트 대상과 같은 파일내 tests 모듈을 만들고, **cfg(test)**를 어노테이션하는 게 일반적인 관례입니다.
#[cfg(test)] 는 이 코드가 cargo build 가 아닌 cargo test 명령어 실행시에만 컴파일 및 실행되도록 지정하는 것 입니다.
통합 테스트
통합 테스트는 tests 폴더 아래 작성 합니다. 예를 들면, 아래와 같은 디렉터리 구조가 될 수 있습니다.
adder
├── Cargo.lock
├── Cargo.toml
├── src
│ └── lib.rs
└── tests
└── integration_test.rs
src/lib.rs
tests/integration_test.rs
통합 테스트도 cargo test 커맨드로 실행 합니다.
cargo test
결과
생성형 AI 활용
ChatGPT
Code Interpreter로 ONNX 모델 파일 REST API 추론 서비스 코드 작성하기
-
+ 버튼 클릭후
.onnx모델 파일 업로드 (최대 100MB) -
프롬프트 작성
- 프롬프트
Generate actix-web source code to inference uploaded model
결과
Rust 코드로 변환 하기
- 프롬프트
# read data
=
, , , =
# create model instance
=
# fit model
# make predictions
=
---
결과
개발 가이드
- 프롬프트
How to develop CLI tools using Rust?
결과
Copilot Labs
ChatGPT와 연동된 Copilot Labs를 사용하면 매우 편리합니다. VSCode 내에서 코드나 주석을 Drag해서 다음과 같은 작업을 할 수 있습니다:
-
코드 생성
-
코드 분석
-
테스트 코드 작성
-
문서 작업 (주석)
-
리팩터링
아직 Preview 단계라 신청후 사용이 가능합니다.