시작하기: 설치부터 첫 번째 프로젝트까지
학습 목표: Rust 개발 환경을 구축하고, 파이썬의
pip/Poetry와 대응되는Cargo빌드 시스템을 익힙니다. 첫 번째Hello, World!프로그램을 작성하며 파이썬과 Rust의 근본적인 문법 차이를 이해하고 핵심 키워드들을 살펴봅니다.
1. Rust 설치 및 도구 비교
파이썬 개발자에게 익숙한 도구들이 Rust에서는 어떻게 매칭되는지 확인해 보세요.
| 용도 | Python | Rust | 비고 |
|---|---|---|---|
| 패키지 관리 | pip / poetry | cargo | 빌드, 테스트, 배포를 모두 처리 |
| 설정 파일 | pyproject.toml | Cargo.toml | 의존성 및 프로젝트 메타데이터 관리 |
| 가상 환경 | venv / conda | 필요 없음 | 프로젝트별로 독립된 바이너리 생성 |
| 포매터 | black / ruff | cargo fmt | 표준 스타일로 자동 교정 |
| 린터 | pylint / ruff | cargo clippy | 성능 및 버그 위험군 탐지 |
| 테스트 | pytest | cargo test | 언어 자체에 테스트 기능 내장 |
2. 첫 번째 프로그램: Hello, World!
파이썬은 스크립트를 바로 실행하지만, Rust는 컴파일 과정을 거칩니다.
// src/main.rs fn main() { // println!은 함수가 아니라 '매크로'입니다 (!가 붙음) println!("Hello, World!"); }
# 실행 방법
cargo run
파이썬 개발자가 느끼는 주요 차이점
- 진입점: 파이썬은 파일의 첫 줄부터 실행되지만, Rust는 반드시
main함수에서 시작합니다. - 세미콜론: 각 실행문의 끝에는 반드시
;를 붙여 문장의 끝임을 알려야 합니다. - 정적 타입: 변수의 타입은 컴파일 타임에 결정됩니다 (파이썬의
mypy가 강제되는 셈입니다).
3. 핵심 키워드 엿보기
파이썬과 비교하여 Rust의 핵심 키워드들을 빠르게 훑어봅니다.
let/let mut: 변수를 선언합니다. Rust는 기본적으로 모든 변수가 **불변(Immutable)**입니다. 값을 바꾸려면 반드시mut를 붙여야 합니다.match: 파이썬 3.10의match-case와 유사하지만, 모든 경우의 수를 처리하지 않으면 컴파일 에러가 납니다.struct/impl: 파이썬의 클래스와 비슷하지만 데이터(struct)와 로직(impl)을 분리하여 정의합니다.pub: 파이썬의_(private 관례)와 달리, Rust는pub을 붙이지 않으면 모듈 외부에서 접근할 수 없습니다.
💡 실무 팁: cargo check의 마력
코드를 짤 때 매번 cargo build를 할 필요는 없습니다. cargo check를 사용하면 실행 파일을 만들지 않고 타입 오류만 빠르게 체크해주므로 개발 속도를 획기적으로 높일 수 있습니다.