[Rust] cargo fmt 그리고 cargo clippy
cargo fmt 그리고 cargo clippy
유용한 cargo tool 두 가지를 소개합니다.
fmt는 cargo가 제공하는 Rust용 코드 formatter입니다. 코드를 예쁘게 정렬시킵니다.
clippy는 우리가 작성한 코드의 오류를 잡아주기도 하고 불필요한 코드를 알려 주기도 합니다. 오류 없고 깨끗한 코드를 작성하기 위해 꼭 필요한 도구입니다.
두 가지 모두 처음 사용할 때 cargo로 추가 설치를 해주어야 합니다.
- fmt 추가
cargo component add fmt
- clippy 추가
cargo componrnt add clippy
이제 사용법을 알아봅시다. f먼저 cargo mt입니다.
fn main() { let a=10;letb=20;
let c = a*b; println!("Hello, world!");
}
모양이 엉망이어서 가독성이 떨어지고 예쁘지도 않은 코드입니다.
fmt를 사용해서 예쁘게 정렬해보겠습니다.
프로젝트 루트에서 terminal을 열고 다음 명령를 실행합니다.
cargo fmt
아래는 정렬된 코드입니다.
fn main() {
let a = 10;
letb = 20;
let c = a * b;
println!("Hello, world!");
}
clippy도 사용 명령은 간단합니다.
프로젝트 루트에서 터미널을 열고 다음 명령을 실행합니다.
cargo clippy
위 코드에 clippy를 실행한 결과는 아래와 같습니다.

출력을 보면 에러 두 개가 발견되었습니다.
하나씩 해결하고 다시 clippy를 실행시키면서 코드를 고쳐나가면 편리합니다.
저는 습관적으로 가장 아래에 있는 항목부터 해결합니다. 다른 이유는 없고 다만 출력 메시지를 위로 올려서 가장 위쪽에 있는 메시지 항목을 찾는 게 귀찮아서 그렇게 합니다.
가장 아래에 있는 메시지를 보면 변수 b가 없다고 합니다. 코드를 살펴보니 `let b`를 `letb`라고 한 오타가 있습니다.
수정하고 다시 clippy를 실행해 보겠습니다.

에러는 다 없어졌는데 경고 하나가 떴습니다.
내용을 보니 변수 c가 사용되지 않았다고 알려줍니다.
안 쓰는 변수면 삭제하거나 사용을 해주면 해결되겠지만 꼭 필요해서 의도적으로 그렇게 코드를 작성했을 수도 있습니다.
이런 경우의 해결법을 알려 드리겠습니다. 사실 단순한 경고이기 때문에 그냥 내버려 두어도 코드를 실행하는 데에 지장은 없습니다.
경고 메시지를 보면
#[warn(unused_variables)]
부분이 있습니다. 이 부분을 복사해서 코드 위에 붙여넣고 다음과 같이 warn을 alloow로 수정합니다.
#[aloow(unused_variables)]
코드에 붙여 보겠습니다.
#[allow(unused_variables)]
fn main() {
let a = 10;
let b = 20;
let c = a * b;
println!("Hello, world!");
}
이렇게 수정하고 다시 clippy를 실행해 보겠습니다.

에러도 경고도 없어졌습니다.
clippy의 경고 메시지에서 warn 어노테이션이 발견되면 적절한 위치에 복사해서 붙여놓고 warn을 alloow로 수정하면 대부분의 경고가 해결됩니다. 물론 의도적으로 코드를 그렇게 작성해야 할 때만 사용해야겠습니다.