Visual Studio Code에서 Rust
Rust는 성능과 정확성이 높은 우선순위인 시스템 프로그래밍에 자주 사용되는 강력한 프로그래밍 언어입니다. Rust가 처음이고 더 배우고 싶다면, The Rust Programming Language 온라인 책이 좋은 시작점이 될 것입니다. 이 문서는 rust-analyzer 확장 프로그램을 사용하여 Visual Studio Code에서 Rust를 설정하고 사용하는 방법에 대해 자세히 설명합니다.

VS Code Marketplace에는 또 다른 인기 있는 Rust 확장 프로그램(확장 ID: rust-lang.rust)이 있지만, 이 확장 프로그램은 더 이상 사용되지 않으며 rust-analyzer가 rust-lang.org에서 권장하는 VS Code Rust 확장 프로그램입니다.
설치
1. Rust 설치
먼저 컴퓨터에 Rust 툴체인이 설치되어 있어야 합니다. Rust는 Windows, macOS 및 Linux 설치를 지원하는 rustup 설치 프로그램을 통해 설치됩니다. 플랫폼에 맞는 rustup 설치 지침을 따르고 Rust 프로그램을 빌드하고 실행하는 데 필요한 추가 도구를 설치하도록 주의하십시오.
컴퓨터에 새로운 툴체인을 설치할 때와 마찬가지로, 최신 툴체인 위치를 플랫폼의 PATH 변수에서 사용하려면 터미널/명령 프롬프트 및 VS Code 인스턴스를 다시 시작해야 합니다.
2. rust-analyzer 확장 프로그램 설치
VS Code 내의 확장 프로그램 보기(⇧⌘X (Windows, Linux Ctrl+Shift+X))에서 'rust-analyzer'를 검색하여 설치할 수 있습니다. **릴리스 버전**을 설치해야 합니다.

이 문서에서 rust-analyzer의 많은 기능을 다룰 예정이지만, 확장 프로그램의 설명서는 https://rust-analyzer.github.io에서도 확인할 수 있습니다.
설치 확인
Rust를 설치한 후, 새 터미널/명령 프롬프트를 열고 다음을 입력하여 모든 것이 올바르게 설치되었는지 확인할 수 있습니다.
rustc --version
Rust 컴파일러 버전을 출력합니다. 더 자세한 정보를 원하면 --verbose 인수를 추가할 수 있습니다. 문제가 발생하면 Rust 설치 가이드를 참조하십시오.
다음 명령을 실행하여 Rust 설치를 최신 버전으로 업데이트할 수 있습니다.
rustup update
Rust의 새 안정 버전은 6주마다 발행되므로 습관을 들이는 것이 좋습니다.
로컬 Rust 문서
Rust를 설치하면 컴퓨터에 Rust 문서 전체 세트가 로컬로 설치되며, rustup doc을 입력하여 검토할 수 있습니다. Rust 문서는 The Rust Programming Language 및 The Cargo Book을 포함하여 로컬 브라우저에서 열리므로 오프라인에서도 Rust 여정을 계속할 수 있습니다.
Hello World
Cargo
rustup으로 Rust를 설치할 때, 툴체인에는 rustc 컴파일러, rustfmt 소스 코드 포맷터, clippy Rust 린터가 포함됩니다. 또한 Rust 종속성을 다운로드하고 Rust 프로그램을 빌드하고 실행하는 데 도움이 되는 Rust 패키지 관리자인 Cargo도 제공됩니다. Rust를 작업할 때 거의 모든 작업에 cargo를 사용하게 될 것입니다.
Cargo new
첫 Rust 프로그램을 만드는 좋은 방법은 Cargo를 사용하여 cargo new를 입력하여 새 프로젝트를 스캐폴드하는 것입니다. 이렇게 하면 기본 Cargo.toml 종속성 파일과 함께 간단한 Hello World 프로그램이 생성됩니다. cargo new에 프로젝트를 만들려는 폴더를 전달합니다.
Hello World를 만들어 보겠습니다. 프로젝트를 만들고 싶은 폴더로 이동하여 다음을 입력하십시오.
cargo new hello_world
새 프로젝트를 VS Code에서 열려면 새 폴더로 이동하여 code .를 실행하여 VS Code를 시작하십시오.
cd hello_world
code .
새 폴더에 대해 작업 영역 신뢰를 활성화하십시오. 귀하가 작성자이기 때문입니다. 새 프로젝트를 만들 때마다 프롬프트가 표시되지 않도록 하려면 전체 프로젝트 폴더의 상위 폴더에 대해 작업 영역 신뢰를 활성화할 수 있습니다. **'my_projects` 폴더의 모든 파일 작성자를 신뢰** 옵션을 선택하십시오.
cargo new는 main.rs 소스 코드 파일과 Cargo.toml Cargo 매니페스트 파일이 있는 간단한 Hello World 프로젝트를 생성합니다.
src\
main.rs
.gitignore
Cargo.toml
main.rs에는 프로그램의 진입 함수인 main()이 있고 println!을 사용하여 콘솔에 "Hello, world!"를 출력합니다.
fn main() {
println!("Hello, world!");
}
이 간단한 Hello World 프로그램에는 종속성이 없지만, [dependencies] 아래에 Rust 패키지(크레이트) 참조를 추가해야 합니다.
Cargo build
Cargo를 사용하여 Rust 프로젝트를 빌드할 수 있습니다. 새 VS Code 통합 터미널(⌃⇧` (Windows, Linux Ctrl+Shift+`))을 열고 cargo build를 입력하십시오.
cargo build

이제 빌드 출력과 함께 target\debug 폴더가 생기고, hello_world.exe라는 실행 파일이 포함됩니다.
Hello World 실행
Cargo를 사용하여 cargo run을 통해 Rust 프로젝트를 실행할 수도 있습니다.
cargo run
터미널에서 .\target\debug\hello_world를 입력하여 hello_world.exe를 수동으로 실행할 수도 있습니다.

IntelliSense
IntelliSense 기능은 Rust 언어 서버인 rust-analyzer에 의해 제공되며, 자세한 코드 정보와 스마트 제안을 제공합니다.
Rust 프로젝트를 처음 열 때, 상태 표시줄의 왼쪽 하단에서 rust-analyzer의 진행 상황을 볼 수 있습니다. 언어 서버의 전체 기능을 얻으려면 rust-analyzer가 프로젝트 전체를 검토할 때까지 기다리는 것이 좋습니다.

인라인 힌트
가장 먼저 눈에 띄는 것 중 하나는 rust-analyzer가 추론된 유형, 반환 값, 이름이 지정된 매개변수를 편집기에서 밝은 텍스트로 표시하는 인레이 힌트를 제공한다는 것입니다.

인레이 힌트는 코드를 이해하는 데 도움이 될 수 있지만, **편집기 > 인레이 힌트: 사용** 설정(editor.inlayHints.enabled)을 통해 기능을 구성할 수도 있습니다.
호버 정보
변수, 함수, 유형 또는 키워드에 마우스를 올리면 문서, 서명 등 해당 항목에 대한 정보가 표시됩니다. 또한 자체 코드 또는 표준 Rust 라이브러리의 유형 정의로 이동할 수도 있습니다.

자동 완성
Rust 파일을 입력하는 동안 IntelliSense는 완성 및 매개변수 힌트를 제공합니다.

수동으로 제안을 트리거하려면 ⌃Space (Windows, Linux Ctrl+Space)를 사용하십시오.
의미론적 구문 강조
rust-analyzer는 프로젝트 소스 코드에 대한 풍부한 이해를 바탕으로 의미론적 구문 강조 및 스타일링을 사용할 수 있습니다. 예를 들어, 변경 가능한 변수는 편집기에서 밑줄이 그어져 있음을 알 수 있습니다.

어떤 Rust 변수가 변경 가능한지 아닌지를 빠르게 알 수 있으면 소스 코드 이해에 도움이 되지만, 사용자 설정의 VS Code editor.semanticTokenColorCustomizations 설정을 사용하여 스타일을 변경할 수도 있습니다.
settings.json에서는 다음을 추가할 수 있습니다.
{
"editor.semanticTokenColorCustomizations": {
"rules": {
"*.mutable": {
"fontStyle": "", // set to empty string to disable underline, which is the default
},
}
},
}
rust-analyzer의 의미론적 구문 사용자 지정에 대해 더 알아보려면 rust-analyzer 설명서의 편집기 기능 섹션을 참조하십시오.
코드 탐색
코드 탐색 기능은 편집기의 컨텍스트 메뉴에서 사용할 수 있습니다.
- 정의로 이동 F12 - 유형 정의의 소스 코드로 이동합니다.
- 정의 미리보기 ⌥F12 (Windows Alt+F12, Linux Ctrl+Shift+F10) - 유형 정의가 있는 미리보기 창을 엽니다.
- 참조로 이동 ⇧F12 (Windows, Linux Shift+F12) - 유형에 대한 모든 참조를 표시합니다.
- 호출 계층 구조 보기 ⇧⌥H (Windows, Linux Shift+Alt+H) - 함수로 또는 함수에서 호출된 모든 호출을 표시합니다.
기호로 이동 명령을 사용하여 기호 검색을 통해 탐색할 수 있습니다. 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서.
- 파일 내 기호로 이동 - ⇧⌘O (Windows, Linux Ctrl+Shift+O)
- 작업 영역 내 기호로 이동 - ⌘T (Windows, Linux Ctrl+T)
린팅
Rust 툴체인에는 소스 코드 문제를 감지하기 위해 rustc 및 clippy에서 제공하는 린팅 기능이 포함되어 있습니다.

기본적으로 활성화된 rustc 린터는 기본적인 Rust 오류를 감지하지만, 더 많은 린트를 얻기 위해 clippy를 사용할 수 있습니다. rust-analyzer에서 clippy 통합을 활성화하려면 **Rust-analyzer > 검사: 명령** (rust-analyzer.check.command) 설정을 기본값인 check 대신 clippy로 변경하십시오. 그러면 rust-analyzer 확장 프로그램이 파일을 저장할 때 cargo clippy를 실행하고 clippy 경고 및 오류를 편집기 및 문제 보기에서 직접 표시합니다.
빠른 수정
린터가 소스 코드에서 오류와 경고를 찾으면, rust-analyzer는 종종 제안된 빠른 수정(코드 작업이라고도 함)을 제공할 수 있으며, 이는 편집기에서 전구 아이콘을 마우스를 올리면 사용할 수 있습니다. ⌘. (Windows, Linux Ctrl+.)를 통해 사용 가능한 빠른 수정을 빠르게 열 수 있습니다.
또한 기본적으로 활성화된 editor.codeActionWidget.includeNearbyQuickFixes 설정은 커서 위치에 관계없이 ⌘. (Windows, Linux Ctrl+.) (명령 ID editor.action.quickFix)에서 가장 가까운 빠른 수정을 활성화합니다.
이 명령은 리팩토링되거나 빠른 수정을 통해 수정될 소스 코드를 강조 표시합니다. 일반 코드 작업 및 수정이 아닌 리팩토링은 여전히 커서 위치에서 활성화할 수 있습니다.

리팩터링
rust-analyzer의 의미론적 코드 이해 덕분에 Rust 파일 전체에서 스마트한 이름 바꾸기도 제공할 수 있습니다. 변수 위에 커서를 놓고 컨텍스트 메뉴, 명령 팔레트 또는 F2를 통해 **기호 이름 바꾸기**를 선택하십시오.
rust-analyzer 확장 프로그램은 확장 프로그램에서 Assists라고 부르는 다른 코드 리팩토링 및 코드 생성도 지원합니다.
다음은 사용 가능한 리팩토링 중 일부입니다.
- if 문을 가드 반환으로 변환
- 변수 인라인화
- 함수 추출
- 반환 유형 추가
- 가져오기 추가
서식
Rust 툴체인에는 소스 코드를 Rust 규칙에 맞게 형식화할 수 있는 형식 지정 도구인 rustfmt가 포함되어 있습니다. ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I)를 사용하거나 **명령 팔레트** 또는 편집기 컨텍스트 메뉴에서 **문서 형식 지정** 명령을 실행하여 Rust 파일을 형식화할 수 있습니다.
또한 저장 시 (편집기: 저장 시 형식 지정) 또는 붙여넣기 시 (붙여넣기 시 형식 지정) 형식 지정 도구를 실행하여 작업하는 동안 Rust 코드를 자동으로 올바르게 형식화하도록 할 수도 있습니다.
디버깅
rust-analyzer 확장 프로그램은 VS Code 내에서 Rust를 디버깅하는 것을 지원합니다.
디버깅 지원 설치
디버깅을 시작하려면 디버깅 지원이 있는 다음 두 가지 언어 확장 프로그램 중 하나를 먼저 설치해야 합니다.
- Microsoft C++ (ms-vscode.cpptools) – *Windows*
- CodeLLDB (vadimcn.vscode-lldb) – *macOS/Linux*
이 확장 프로그램 중 하나를 설치하지 않으면, 디버그 세션을 시작하려고 할 때 rust-analyzer가 VS Code Marketplace 링크가 포함된 알림을 표시합니다.

Rust Analyzer 사용: 디버그
rust-analyzer 확장 프로그램은 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 사용할 수 있는 **Rust Analyzer: 디버그** 명령과 편집기의 **실행|디버그** CodeLens를 통해 기본적인 디버깅 지원을 제공합니다.
앞서 만든 Hello World 프로그램을 디버그해 보겠습니다. 먼저 main.rs에 중단점을 설정합니다.
-
설정 편집기(⌘, (Windows, Linux Ctrl+,))에서 'everywhere`를 검색하여 **디버그: 모든 위치에서 중단점 허용** 설정을 활성화해야 합니다.

-
main.rs를 열고 편집기의 왼쪽 여백을 클릭하여println!줄에 중단점을 설정합니다. 빨간색 점으로 표시되어야 합니다.
-
디버깅을 시작하려면 **Rust Analyzer: 디버그** 명령을 사용하거나
main()근처의 **디버그** CodeLens를 선택하십시오.
다음 단계
이것은 VS Code 내에서 rust-analyzer 확장 프로그램 기능을 보여주는 간략한 개요였습니다. 더 자세한 내용은 Rust Analyzer 확장 프로그램 사용자 설명서에 제공된 세부 정보를 참조하십시오. 특히 VS Code 편집기 특정 구성을 조정하는 방법에 대한 내용을 확인하십시오.
rust-analyzer 확장 프로그램의 최신 기능/버그 수정에 대한 최신 정보를 유지하려면 CHANGELOG를 참조하십시오. 확장 프로그램 보기 **설치** 드롭다운에서 사용할 수 있는 rust-analyzer **미리 보기 버전**을 설치하여 새로운 기능과 수정을 미리 사용해 볼 수도 있습니다.
문제가 있거나 기능 요청이 있는 경우, rust-analyzer 확장 프로그램 GitHub 저장소에 자유롭게 보고하십시오.
VS Code에 대해 더 알고 싶으시면 다음 주제를 시도해 보세요.
- 기본 편집 - VS Code 편집기의 기본에 대한 빠른 소개.
- 확장 프로그램 설치 - Marketplace에서 사용할 수 있는 다른 확장 프로그램에 대해 알아봅니다.
- 코드 탐색 - 소스 코드를 빠르게 이동합니다.
자주 묻는 질문
링커 오류
Rust 프로그램을 빌드하려고 할 때 **"오류: 링커 link.exe를 찾을 수 없습니다"**와 같은 링커 오류가 발생하면 필요한 C/C++ 툴체인이 누락되었을 수 있습니다. 플랫폼에 따라 Rust 컴파일러 출력을 결합하기 위해 C/C++ 링커가 포함된 툴체인을 설치해야 합니다.
Windows
Windows에서는 C/C++ 링커 link.exe를 얻기 위해 Microsoft C++ 빌드 도구를 추가로 설치해야 합니다. Visual Studio 설치 프로그램을 실행할 때 **C++를 사용한 데스크톱 개발**을 선택해야 합니다.
유효한 Visual Studio 라이선스(Community, Pro 또는 Enterprise)가 있는 한, Visual Studio 빌드 도구의 C++ 툴체인과 Visual Studio Code를 함께 사용하여 모든 코드베이스를 컴파일, 빌드 및 확인할 수 있습니다.
macOS
터미널에서 xcode-select --install을 실행하여 XCode 툴체인을 설치해야 할 수 있습니다.
Linux
터미널에서 sudo apt-get install build-essential을 실행하여 build-essential 패키지를 통해 GCC 툴체인을 설치해야 할 수 있습니다.
추가 문제 해결 조언은 Rust 설치 가이드를 참조하십시오.