본문으로 건너뛰기 Rust 시리즈 전체 목차 | 메모리 안전한 시스템 프로그래밍

Rust 시리즈 전체 목차 | 메모리 안전한 시스템 프로그래밍

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️⃣ 고급자 (병렬/비동기)

#07 동시성#08 비동기#09 웹 개발

목표: 고성능 서버 애플리케이션 구축
소요 시간: 약 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/동시성)에 따라 선택하세요.


📖 추천 학습 자료

공식 문서

심화 학습

커뮤니티


시작하기: Rust 시작하기 (#01)에서 Hello World부터 시작하세요!