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

모범 사례: 파이썬 개발자를 위한 관용적인 Rust

학습 목표: 파이썬의 습관을 버리고 Rust다운 코드를 짜기 위한 10가지 수칙을 배웁니다. 흔히 저지르는 실수들과 그 해결책, 그리고 3개월간의 점진적 학습 로드맵을 통해 숙련된 Rustacean으로 거듭나는 과정을 안내합니다.


1. 지켜야 할 10가지 습관

  1. if isinstance() 대신 match 사용: 타입 검사보다는 패턴 매칭이 훨씬 안전하고 명확합니다.
  2. 컴파일러 에러 메시지를 정독하라: Rust 컴파일러는 세상에서 가장 친절한 선생님입니다. 에러 원인뿐만 아니라 해결책까지 알려줍니다.
  3. 함수 파라미터는 String보다 &str: 더 넓은 범위의 인자를 효율적으로 받을 수 있습니다.
  4. 인덱스 반복문보다 반복자(Iterator): for i in 0..len 보다는 .iter()를 사용한 체이닝이 더 안전하고 빠릅니다.
  5. OptionResult를 사랑하라: unwrap() 사용을 최소화하고 에러 처리를 타입 시스템에 맡기세요.
  6. #[derive]를 적극 활용하라: Debug, Clone, Default 등의 트레이트는 컴파일러에게 맡기는 게 가장 빠르고 정확합니다.
  7. cargo clippy를 믿으라: 파이썬의 ruff보다 훨씬 강력한 정적 분석 도구입니다. 제안하는 내용을 코드에 반영해 보세요.
  8. 빌림 검사기(Borrow Checker)와 싸우지 마라: 막힌다면 데이터 구조 자체에 문제가 있을 확률이 높습니다. 소유권을 명확히 재설계하세요.
  9. 상태 관리는 열거형(Enum)으로: 불리언 플래거나 문자열 상수 대신 Enum을 써서 모든 경우의 수를 강제하세요.
  10. 일단 복사(Clone)하고 나중에 최적화하라: 학습 초기에는 소유권에 막혀 진도가 안 나가는 것보다 .clone()을 써서 끝까지 구현해 보는 게 중요합니다.

2. 성능 비교: 파이썬 vs Rust (Release 빌드)

작업Python (3.12)Rust속도 향상
피보나치(40)약 25초약 0.3초~80배
100MB JSON 파싱약 8.5초약 0.4초~21배
100만 건 정규표현식약 3.1초약 0.3초~10배
HTTP 서버 (req/s)약 5,000약 150,000~30배

3. 학습 로드맵 (3개월 완성)

  • 1~2주차 (기초): 설치, 기본 타입, 제어 흐름 익히기. (컴파일 에러와 친해지는 기간)
  • 3~4주차 (핵심): 구조체, 열거형, 소유권 개념 정립. (파이썬 코드를 Rust로 조금씩 옮겨보기)
  • 2개월차 (중급): 에러 처리, 트레이트, 반복자 활용. (PyO3를 이용한 파이썬 확장 모듈 작성)
  • 3개월차 (고급): 동시성, 비동기(Tokio), 테스트 및 최적화. (실제 프로젝트에 Rust 도입)

💡 실무 팁: 마지막 조언

파이썬에서 누리던 '유연함'은 Rust에서 '안전함'으로 치환됩니다. 처음에는 컴파일러가 사사건건 간섭하는 것처럼 느껴지겠지만, 어느 순간 "실행되는 코드는 무조건 올바르다"는 강력한 확신을 갖게 될 것입니다. Rust는 여러분을 단순히 성능 좋은 프로그램을 개발하게 해줄 뿐만 아니라, 더 나은 프로그래머로 성장시켜 줄 것입니다.