Rust 시리즈 전체 목차 | 메모리 안전한 시스템 프로그래밍
이 글의 핵심
Rust 시리즈 전체 목차: 입문부터 고급까지 12개 주제로 메모리 안전한 시스템 프로그래밍 완벽 마스터.
시리즈 소개
Rust는 메모리 안전성과 고성능을 동시에 제공하는 시스템 프로그래밍 언어입니다. 이 시리즈는 Rust의 핵심 개념부터 실무 활용까지 체계적으로 학습할 수 있도록 구성했습니다.
C++에서 자주 겪는 메모리 누수, 댕글링 포인터, 데이터 레이스를 컴파일 타임에 방지하면서도 제로 코스트 추상화로 성능을 유지합니다. 웹 서버, CLI 도구, WebAssembly 등 다양한 분야에서 활용할 수 있습니다.
📚 전체 목차
🟢 입문 (초급)
#01 Rust 시작하기
15분 | 초급 | 튜토리얼
- Hello World부터 Cargo 기본 사용법까지
- Rust 설치, 프로젝트 생성, 빌드/실행
- 변수, 불변성, 스칼라/복합 타입 기초
- 핵심: Rustup, Cargo, 기본 문법
🟡 중급
#02 소유권 (Ownership)
18분 | 중급 | 튜토리얼
- Rust의 핵심: 소유권, 빌림, 라이프타임
- 스택과 힙, 소유권 이동, 참조와 빌림
- 댕글링 참조 방지, 라이프타임 명시
- 핵심: Move, Borrow, Lifetime
#03 구조체와 열거형
18분 | 중급 | 튜토리얼
- 구조체 정의, 메서드, 연관 함수
- 열거형(Enum), Option, Result
- 패턴 매칭(match), if let, while let
- 핵심: Struct, Enum, Pattern Matching
#04 에러 처리
18분 | 중급 | 튜토리얼
- Result와 Option으로 안전한 에러 처리
- ? 연산자로 에러 전파
- panic! vs Result, unwrap vs expect
- 커스텀 에러 타입 정의
- 핵심: Result<T, E>, ?, anyhow, thiserror
#05 트레이트 (Trait)
28분 | 중급 | 튜토리얼
- 트레이트로 공통 행동 정의
- 제네릭과 트레이트 바운드
- 트레이트 객체(dyn Trait), 동적 디스패치
- 연관 타입, 기본 구현
- 핵심: Trait, Generic, dyn Trait
#06 컬렉션
30분 | 중급 | 튜토리얼
- Vec: 동적 배열, push, pop, 슬라이싱
- HashMap, HashSet: 키-값 저장, 중복 제거
- iter(), into_iter(), iter_mut() 차이
- 소유권과 빌림 규칙 적용
- 핵심: Vec, HashMap, Iterator
#10 테스팅
22분 | 중급 | 튜토리얼
- cargo test로 단위/통합 테스트
- #[test], #[should_panic], assert! 매크로
- tests/ 디렉토리 구조, 모의 객체
- 벤치마크 테스트 (Criterion)
- 핵심: cargo test, #[test], assert!
#11 CLI 도구 만들기
20분 | 중급 | 튜토리얼
- clap으로 커맨드라인 인자 파싱
- 파일 읽기/쓰기, 에러 처리
- stdin/stdout 표준 입출력
- 바이너리 배포 (cargo install)
- 핵심: clap, std::fs, std::io
🔴 고급
#07 동시성 (Concurrency)
26분 | 고급 | 튜토리얼
- Thread로 병렬 실행, join(), move 클로저
- Channel로 스레드 간 메시지 전달
- Arc<Mutex
>로 공유 상태 관리 - 데이터 레이스 방지, Send/Sync 트레이트
- 핵심: Thread, Channel, Arc, Mutex
#08 비동기 프로그래밍
32분 | 고급 | 튜토리얼
- async/await 키워드, Future 트레이트
- Tokio 런타임 설정, 태스크 생성
- 비동기 I/O, 타임아웃, Select
- Pin, Unpin, 비동기 트레이트
- 핵심: async/await, Tokio, Future
#09 웹 개발 (Actix-web)
42분 | 고급 | 튜토리얼
- Actix-web으로 REST API 구축
- 라우팅, JSON 직렬화 (serde)
- 미들웨어, 에러 핸들링, 상태 관리
- 데이터베이스 연동 (diesel, sqlx)
- 핵심: Actix-web, serde, diesel
#12 C++ 개발자를 위한 Rust
22분 | 고급 | 튜토리얼
- C++ vs Rust: 메모리 관리 비교
- unique_ptr/shared_ptr → Box/Rc/Arc
- RAII, 이동 의미론, 소유권 대응
- 성능, FFI, 마이그레이션 전략
- 핵심: C++ 전환, 메모리 모델 비교
🎯 학습 경로
1️⃣ 초보자 (Rust 입문)
#01 시작하기 → #02 소유권 → #03 구조체/열거형 → #04 에러 처리
목표: Rust 기본 문법과 소유권 시스템 이해
소요 시간: 약 3~4시간
난이도: ⭐⭐☆☆☆
2️⃣ 중급자 (실전 활용)
#05 트레이트 → #06 컬렉션 → #10 테스팅 → #11 CLI 도구
목표: 실무 프로젝트 개발 능력 확보
소요 시간: 약 5~6시간
난이도: ⭐⭐⭐☆☆
3️⃣ 고급자 (병렬/비동기)
목표: 고성능 서버 애플리케이션 구축
소요 시간: 약 6~8시간
난이도: ⭐⭐⭐⭐☆
4️⃣ C++ 개발자
#12 C++ 비교 → #02 소유권 → #07 동시성 → #08 비동기
목표: C++에서 Rust로 마이그레이션
소요 시간: 약 4~5시간
난이도: ⭐⭐⭐⭐☆
💡 시리즈 특징
✅ 실무 중심
- 프로덕션 환경에서 바로 사용 가능한 패턴
- 실제 프로젝트 예제 (CLI, 웹 서버)
- 에러 처리, 테스팅 등 실무 필수 주제
✅ C++ 개발자 친화적
- C++ 개념과 비교하며 설명
- 스마트 포인터, RAII, 이동 의미론 대응
- C++ 전환 가이드 제공
✅ 컴파일러 친구 만들기
- 소유권 에러 해결 패턴
- 컴파일러 에러 메시지 읽는 법
- 빌림 검사기와 협업하는 방법
✅ 최신 기술 스택
- Tokio 비동기 런타임
- Actix-web, axum 웹 프레임워크
- serde, clap, diesel 등 주요 크레이트
🔗 관련 시리즈
- C++ 시리즈 - 메모리 관리, 스마트 포인터, RAII
- Go 시리즈 - 고루틴, 채널, 동시성 패턴
- 시스템 프로그래밍 - Linux, 파일 시스템, 프로세스
❓ 자주 묻는 질문
Q1. Rust는 어디에 사용하나요?
A: 웹 서버(Actix-web, axum), CLI 도구(ripgrep, bat), WebAssembly, 임베디드, 블록체인, 게임 엔진 등 다양합니다.
Q2. C++보다 Rust가 나은가요?
A: 메모리 안전성은 Rust가 우수하고, 성능은 비슷합니다. 기존 C++ 코드베이스가 크다면 점진적 전환을 권장합니다.
Q3. Rust 학습 시간은 얼마나 걸리나요?
A: 기본 문법 1주, 소유권 이해 24주, 실무 적용 23개월 정도 소요됩니다. C++ 경험자는 더 빠릅니다.
Q4. Rust는 배우기 어렵나요?
A: 소유권 개념이 생소해서 초반 진입장벽이 있지만, 컴파일러가 친절하게 안내합니다. 한 번 이해하면 안전한 코드를 자연스럽게 작성하게 됩니다.
Q5. 어떤 순서로 학습하나요?
A: #01→#02→#03→#04 순서로 기본기를 다진 후, 관심 분야(웹/CLI/동시성)에 따라 선택하세요.
📖 추천 학습 자료
공식 문서
- The Rust Book - 공식 튜토리얼
- Rust By Example - 예제 중심 학습
심화 학습
- Rustlings - 인터랙티브 연습
- Rust Cookbook - 실용 레시피
커뮤니티
- Rust 한국 사용자 모임
- r/rust - Reddit 커뮤니티
시작하기: Rust 시작하기 (#01)에서 Hello World부터 시작하세요!