[Rust 공식문서 한국어 정리] ⑯. Rust 스타일 가이드와 rustfmt
[Rust 공식문서 한국어 정리] ⑯. Rust 스타일 가이드와 rustfmt
원문 제목: The Rust Style Guide / rustfmt
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Rust는 일관된 코드 스타일을 통해 가독성과 유지보수성을 극대화하는 언어입니다.
이 문서에서는 Rust 공식 스타일 가이드와 코드 자동 포맷팅 도구인 rustfmt를 소개합니다.
스타일 규칙은 단순한 취향이 아니라 팀 전체의 생산성을 결정하는 중요한 요소입니다.
rustfmt는 이러한 규칙을 자동으로 적용해 코드 리뷰에서 스타일 논쟁을 원천 차단합니다.
모든 Rust 개발자는 스타일 가이드를 이해하고 rustfmt를 프로젝트에 적용해야 합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 2. 핵심 개념
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① 공식 스타일 가이드 (The Rust Style Guide)
Rust 커뮤니티에서 공식적으로 관리하는 스타일 규칙 문서입니다.
들여쓰기, 줄 바꿈, 네이밍, 매크로 사용법 등을 상세히 규정합니다.
② rustfmt — 자동 포맷터
rustfmt는 소스 코드를 공식 스타일 가이드에 맞게 자동으로 재작성합니다.
cargo fmt 명령어로 프로젝트 전체를 한 번에 포맷팅할 수 있습니다.
③ .rustfmt.toml 설정 파일
프로젝트 루트에 .rustfmt.toml을 두면 기본 규칙에서 일부를 재정의할 수 있습니다.
tab_spaces, max_width, edition 등 다양한 옵션을 제공합니다.
④ CI/CD와의 통합
rustfmt를 CI 파이프라인에 넣어 푸시 전에 자동으로 포맷팅 검사를 수행할 수 있습니다.
이를 통해 스타일 규칙 위반을 빌드 단계에서 미리 차단합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
공식 스타일 가이드는 Rust 코드의 거의 모든 측면을 다룹니다.
들여쓰기는 공백 4칸을 사용하며, 줄 길이는 기본 100자를 권장합니다.
함수 인자가 많아지면 각 인자를 새 줄에 배치하고 마지막 쉼표를 추가합니다.
rustfmt는 이러한 규칙을 파서(parser)를 통해 AST로 변환한 뒤 재출력하는 방식으로 동작합니다.
단순 텍스트 치환이 아니라 구문 분석 기반이라 안전하고 정확합니다.
설정 파일을 통해 max_width, tab_spaces, reorder_imports 등을 조절할 수 있습니다.
cargo fmt는 프로젝트 전체를 대상으로 실행되며, cargo check나 cargo build와 독립적입니다.
rustfmt가 수정한 파일은 git diff로 확인할 수 있으니 커밋 전에 반드시 검토하세요.
스타일 가이드는 시간이 지나며 점진적으로 개선됩니다.
예를 들어 2018 edition에서는 import 그룹화 규칙이 변경되었습니다.
최신 edition의 스타일 가이드를 참조하는 것이 중요합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 4. 실전 활용 / 예시
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
프로젝트 시작 시 rustfmt.toml을 루트에 만들고 팀원과 공유하세요.
pre-commit 훅에 cargo fmt -- --check를 넣어 커밋 전 자동 검사를 설정하세요.
CI에서는 cargo fmt -- --check --color=always로 스타일 위반을 빠르게 감지하세요.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
일관된 코드 스타일은 팀 협업의 기본이며, rustfmt는 이를 자동화하는 최고의 도구입니다.
스타일 논쟁에 시간을 낭비하지 말고, rustfmt에게 맡기고 비즈니스 로직에 집중하세요.
모든 Rust 프로젝트는 rustfmt 적용을 기본으로 삼아야 합니다.
📎 출처 링크
https://doc.rust-lang.org/style-guide/
https://github.com/rust-lang/rustfmt
#Rust #Rustlang #rustfmt #스타일가이드 #공식문서

오뉴노노 님의 최근 댓글
ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30