Rustlings Arena
← 아레나로 돌아가기

초보자 가이드 · 2026

Rust 학습: 완전한 초보자 로드맵

제로에서 자신감 있는 Rustacean까지 — 소유권, 트레이트, 빌림 검사기를 통한 체계적 학습.

~1개월
유용한 Rust 코드 작성까지
~3개월
편안함을 느끼기까지
~6개월
실제 프로젝트에서 생산적이 되기까지

시작 전에 필요한 것

Rust는 첫 번째 언어로 적합하지 않습니다. 전문가일 필요는 없지만, 다음은 갖추고 있어야 합니다:

Rust 학습 로드맵

1

설치 & Hello World

1–2시간
rustup(공식 설치 프로그램)으로 Rust를 설치합니다. 하나의 명령으로 컴파일러, Cargo(빌드 도구), rustfmt(포매터)가 설치됩니다. 첫 번째 프로그램을 작성하고 실행하세요. cargo new, cargo build, cargo run에 익숙해지세요.
VS Code 또는 선호하는 편집기에 rust-analyzer 확장을 설치하세요. 인라인 오류 강조 표시는 필수입니다 — 컴파일러를 실행하기 전에 빌림 검사기 오류를 설명해 줍니다.
2

변수, 타입 & 함수

1–3일
기본을 배우세요: let, let mut, 기본 타입들(i32, f64, bool, char, &str), 명시적 반환 타입이 있는 함수, 그리고 "마지막 표현식이 반환값" 규칙.
핵심 인사이트: 변수는 기본적으로 불변입니다. let mut으로 가변성을 선택합니다. 섀도잉(let x = x + 1)은 새로운 바인딩을 만들면서 이름을 재사용할 수 있게 합니다.
3

소유권 — 어려운 부분

3–7일

대부분의 초보자가 막히는 곳입니다. 소유권에는 세 가지 규칙이 있습니다: (1) 모든 값에는 하나의 소유자가 있습니다; (2) 소유자가 범위를 벗어나면 값이 삭제됩니다; (3) 힙 값이 다른 변수에 할당되면 소유권이 이동합니다.

여기서 컴파일러와 싸우는 것은 정상입니다. 오류 메시지를 주의 깊게 읽으세요 — Rust의 오류는 모든 언어 중 가장 도움이 됩니다. 컴파일러와의 모든 싸움은 메모리에 대한 실제 교훈을 가르쳐 줍니다.

5–7일 즈음에 이해가 됩니다. 그 전에 포기하지 마세요.
4

빌림 & 참조

2–4일
소유권이 항상 필요한 것은 아닙니다 — 빌릴 수 있습니다. &T는 불변 빌림(동시에 여러 개 허용)입니다. &mut T는 가변 빌림(한 번에 하나만, 다른 빌림 없음)입니다.
규칙: 여러 공유 & 또는 하나의 독점적 &mut — 절대 동시에 둘 다는 안 됩니다. 이것은 컴파일 타임에 적용되는 읽기/쓰기 잠금입니다. 데이터 레이스를 불가능하게 만드는 것이 바로 이것입니다.
5

구조체, 열거형 & 패턴 매칭

3–5일
구조체는 데이터를 그룹화합니다. impl 블록은 메서드를 추가합니다. Rust 열거형은 대수적 데이터 타입입니다 — 각 변형이 다른 데이터를 가질 수 있습니다. match가 이를 완전하게 처리합니다.
Option<T>(Some/None — Rust의 널 안전 타입)와 Result<T, E>(Ok/Err — Rust의 오류 타입)를 배우세요. 이 둘은 모두 열거형이며 어디서나 사용됩니다.
6

오류 처리

2–3일
Rust에는 예외가 없습니다. 실패할 수 있는 함수는 Result<T, E>를 반환합니다. ? 연산자는 매 단계마다 수동으로 match 하지 않고 호출 스택 위로 오류를 전파합니다. unwrap()(오류 시 패닉 — 프로토타입에는 괜찮음)과 적절한 오류 처리의 차이를 배우세요.
7

트레이트 & 제네릭

3–5일
트레이트는 공유 동작을 정의합니다 — 인터페이스와 비슷하지만 더 강력합니다. 제네릭은 하나의 함수가 많은 타입과 작동할 수 있게 합니다. 함께 표준 라이브러리가 제로 비용 재사용성을 달성하는 방법입니다. 공통 내장 트레이트를 배우세요: Display, Debug, Clone, Iterator, From/Into.
8

클로저 & 이터레이터

2–3일
클로저는 익명 함수입니다: |x| x * 2. 이터레이터 체인(.filter().map().collect())은 지연 평가되고 중간 할당 없이 효율적인 루프로 컴파일됩니다. 이것이 관용적인 Rust이며 항상 사용하게 될 것입니다.
9

라이프타임

2–4일
라이프타임은 댕글링 참조를 방지합니다. 대부분은 추론됩니다 — 컴파일러가 참조가 얼마나 오래 사는지 알아낼 수 없을 때만 명시적 어노테이션이 필요합니다. 문법은 'a입니다. 멘탈 모델: "출력 참조는 입력 참조보다 오래 살 수 없다."

라이프타임에 초기에 스트레스 받지 마세요. 대부분의 실제 코드는 명시적 어노테이션이 필요하지 않습니다. 다른 모든 것이 편안해진 후에 이 챕터로 돌아오세요.

10

실제 프로젝트 만들기

진행 중

모든 것을 통합하는 가장 빠른 방법은 프로젝트를 만드는 것입니다. 좋은 시작 프로젝트:

  • CLI 도구(clap 크레이트로 인수 파싱)
  • axum으로 간단한 HTTP 서버
  • 텍스트 파일 파서 또는 CSV 처리기
  • 기존 Python/JS 스크립트 중 하나를 Rust로 재작성하기

모두가 걸려 넘어지는 5가지

1. 빌려야 할 때 소유권을 가지려는 실수

새로운 Rust 프로그래머들은 소유권 오류를 피하기 위해 .clone()을 남발합니다. clone은 작동하지만 종종 불필요합니다 — 대부분의 경우 참조(&T)가 실제로 필요한 것입니다. "나는 이것을 소유해야 하는가, 아니면 그냥 읽기만 해도 되는가?"라고 자문해보세요.

2. 세미콜론 함정

함수의 마지막 줄에 붙는 세미콜론은 반환 타입을 ()로 조용히 변경합니다. 이것이 E0308 타입 불일치를 유발하고 초보자를 며칠 동안 혼란스럽게 합니다. Rust는 표현식 기반입니다 — 세미콜론 없음은 표현식이 반환된다는 의미입니다.

3. String vs &str 혼란

String은 소유된 힙 할당 문자열입니다. &str은 빌린 슬라이스입니다. 함수 매개변수는 거의 항상 String이 아닌 &str을 받아야 합니다 — &str은 String과 문자열 리터럴 모두를 받습니다. 컴파일러 오류는 보통 as_str()이나 &를 사용하라고 알려줍니다.

4. 클로저에서 이터레이터 이중 참조

Vec<i32>에서 .iter()를 호출하면 클로저 안에서 각 요소는 &&i32입니다. |&&x| 또는 |x| *x로 역참조하세요. .into_iter()는 소비하고 소유된 i32를 직접 제공합니다. 이것은 거의 모든 Rust 초보자를 걸려 넘어지게 합니다.

5. 참조를 유지하면서 동시에 변경하려는 시도

활성 &T 빌림이 있는 동시에 &mut T 메서드를 호출할 수 없습니다. 해결책은: (a) 변경 전에 값을 복사하거나, (b) 범위를 사용하여 빌림을 종료하거나, (c) 둘 다 필요하지 않도록 코드를 재구성하는 것입니다.

🎯 가장 빠른 학습법: 읽기만 하지 말고 연습하기

The Rust Book을 읽는 것은 가치 있습니다 — 하지만 빌림 검사기는 직접 싸워볼 때만 이해됩니다. 컴파일러 오류를 수정하도록 강제하는 연습문제는 수동 읽기보다 3배 빠릅니다. 그것이 Rustlings Arena가 존재하는 이유입니다: 브라우저에서 26개의 인터랙티브 챌린지, 설치 불필요.

단계별 최고의 무료 리소스

🌱 완전한 초보자

  • Rustlings Arena (이 사이트) 26개의 인터랙티브 브라우저 챌린지 — 설치 불필요
  • The Rust Programming Language Book 공식 책, 온라인 무료 — 표준 참고서
  • Rustlings CLI Rust Foundation의 공식 터미널 기반 연습문제

🔥 익숙해지는 중

  • Rust by Example 모든 개념에 대한 실행 가능한 예제를 갖춘 코드 우선 접근 방식
  • Exercism Rust 트랙 커뮤니티 멘토링과 함께하는 100개 이상의 연습문제
  • rustlings 오류 레퍼런스 수정 방법과 함께 설명된 일반 컴파일러 오류

🚀 프로젝트 구축

  • Zero to Production in Rust 실제 이메일 뉴스레터 백엔드 구축 — 강력 추천
  • Comprehensive Rust (Google) Android/시스템 개발자를 위한 Rust, Google 제공
  • Jon Gjengset의 YouTube 채널 심층 라이브 코딩 — 기초를 넘어섰을 때

자주 묻는 질문

Rust를 배우는 데 얼마나 걸리나요?

소유권이 진정으로 이해되기까지 1–2주, 유용한 프로그램을 작성할 수 있기까지 1개월, 실제 프로젝트에서 편안함을 느끼기까지 3–6개월을 예상하세요. 학습 곡선은 앞에 집중되어 있습니다 — 소유권 챕터 이후 훨씬 쉬워집니다.

Rust는 초보자에게 좋은가요?

Rust는 첫 번째 언어로 이상적이지 않습니다 — 빌림 검사기는 Python이나 JavaScript에 없는 개념을 추가합니다. 하지만 이미 한 언어를 알고 시스템 프로그래밍을 배우고 싶다면, Rust의 컴파일러 오류는 C++보다 교육적이고 툴링도 훌륭합니다.

Rust를 배우려면 C나 C++를 알아야 하나요?

아니요. 많은 성공적인 Rust 개발자들이 Python, JavaScript, 또는 Go에서 왔습니다. C/C++ 지식은 소유권이 중요한 이유를 이해하는 데 도움이 되지만(그것이 방지하는 버그를 경험했으므로), 전제 조건은 아닙니다.

Rust로 처음 무엇을 만들어야 할까요?

CLI 도구는 고전적인 시작 프로젝트입니다. 파일 I/O, 파싱, 오류 처리, 구조체를 사용하여 async나 웹 프레임워크 없이 대부분의 Rust 개념을 다룹니다. clap 크레이트는 인수 파싱을 쉽게 만들어 줍니다.

2026년에 Rust를 배울 가치가 있나요?

네. Rust는 이제 Linux 커널, Android, Windows, AWS, Cloudflare, 그리고 수많은 프로덕션 시스템에 있습니다. Rust 엔지니어는 수요가 높고 기술에 비해 급여가 낮습니다. 또한 소유권이 이해되면 매우 만족스러운 언어입니다.

🦀

시작할 준비가 됐나요?

26개의 무료 인터랙티브 챌린지. 설치 불필요. 계정 없이 바로 시작.