Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

필수 도구 생태계: C# 개발자를 위한 가이드

학습 목표: C# 개발 환경에서 익숙하게 사용하던 도구들이 Rust에서는 어떤 형태로 존재하는지 알아봅니다. 린트(Lint), 포맷팅, 문서화, 그리고 생산성을 높여주는 VS Code 확장 프로그램까지 Rust 개발의 효율을 극대화하는 도구 세트를 구성합니다.


1. C# 도구 vs Rust 도구 일대일 매칭

C# (Visual Studio/.NET)Rust (CLI/Tooling)주요 역할
Roslyn 분석기Clippy코드 품질 검사 및 개선 제안
dotnet formatrustfmt일관된 코딩 스타일 자동 적용
XML 주석 문서cargo doc소스 코드 기반의 HTML 문서 생성
OmniSharp / IntelliSenserust-analyzer코드 완성 및 타입 정보 제공
dotnet watchcargo-watch파일 수정 시 자동 빌드/테스트
dotnet auditcargo-audit의존성 라이브러리의 보안 취약점 점검

2. Clippy: 당신의 곁에 있는 코드 리뷰어

Clippy는 단순히 문법 에러만 잡아주는 것이 아니라, 더 Rust다운(Idiomatic) 코드를 짤 수 있게 도와줍니다.

  • 예시: if x == true { ... } → "그냥 if x { ... }라고 쓰세요."
  • 예시: vec.len() == 0 → "대신 .is_empty()를 쓰는 게 더 직관적입니다."
  • 예시: for i in 0..vec.len() { ... vec[i] ... } → "인덱스 대신 반복자를 직접 쓰세요."

3. cargo doc: 테스트가 가능한 문서

Rust는 문서 작성을 언어 차원에서 강력하게 지원합니다. 특히 문서 안에 포함된 예제 코드(```)는 실제로 컴파일되고 실행됩니다. 문서가 틀리면 테스트가 실패하므로, 항상 최신의 정확한 문서를 유지할 수 있습니다.

#![allow(unused)]
fn main() {
/// 두 수의 합을 구합니다.
///
/// # 예제
/// ```
/// let result = my_crate::add(2, 3);
/// assert_eq!(result, 5); // 이 코드는 실제로 테스트됩니다.
/// ```
pub fn add(a: i32, b: i32) -> i32 { a + b }
}

4. 추천 VS Code 확장 프로그램

  • rust-analyzer: 필수 중의 필수. 강력한 코드 완성 기능을 제공합니다.
  • CodeLLDB: 디버깅을 위한 도구입니다. Visual Studio의 디버거와 유사한 경험을 제공합니다.
  • Even Better TOML: Cargo.toml 파일을 다룰 때 매우 편리합니다.
  • Error Lens: 에러와 경고를 코드 옆에 바로 보여주어 빠르게 수정할 수 있게 돕습니다.

💡 실무 팁: cargo watch 활용하기

터미널을 하나 띄워두고 cargo watch -x check를 실행해 보세요. 파일을 저장할 때마다 자동으로 타입 체크를 수행해주므로, 굳이 수동으로 빌드해보지 않아도 즉각적으로 피드백을 받을 수 있습니다.