Rust 다음 단계
이 강좌의 주제를 차근차근 따라왔다면, 이미 실제 프로그램을 만들 수 있을 만큼 Rust를 알고 있어요. 변수, 제어 흐름, 함수, 소유권(ownership), 대여(borrowing), 컬렉션, 모듈, 에러 처리, 트레이트, 제네릭, 그리고 스레드, 스마트 포인터, unsafe, 매크로까지요. 평소에 쓰는 것의 대부분이 정말 여기 다 들어 있어요. 남은 건 대부분 연습, 그리고 필요할 때마다 라이브러리 사용법을 익히는 일이에요.
작은 것부터 만들어 보기
섹션 제목: “작은 것부터 만들어 보기”여기서부터 실력을 늘리는 가장 빠른 방법은 작은 프로젝트를 하나 골라서 몇 번 막혀 보는 거예요. 이 사이트에는 시작하기 좋은 가이드 프로젝트가 다섯 개 있어요.
- 숫자 맞히기 게임 — 고전적인 첫 Rust 프로젝트예요. 입력, 반복문,
match를 써요. - 단어 세기 — 텍스트 파일을 읽고
HashMap으로 단어 수를 세요. - 할 일 목록 CLI —
Vec,struct,enum, 파일 저장을 연습해요. - clap으로 만드는 CLI 도구 — 하위 명령과
--help가 있는 진짜 명령줄 도구예요. - Axum으로 만드는 웹 API — async/await 위에서 돌아가는 JSON API 서버예요.
이걸 다 해 봤다면, 혼자 힘으로 하나 만들어 보세요.
- 간단한 계산기 —
match,Result, 그리고 잘못된 입력에 대한 에러 처리를 연습해요. - JSON 설정 파일 읽기 — Serde로 파일에서 설정을 불러와요.
- 작은 웹 스크레이퍼나 API 클라이언트 — async/await와
reqwest로 URL을 가져와요.
어떤 프로그램을 만들고 싶은지 아직 모르겠다면 “Rust로 만들 수 있는 것” 페이지들을 둘러보세요. Rust가 어디에 강한지, 사람들이 어떤 크레이트를 쓰는지 보여 줘요. 네트워킹, 데이터베이스, 데스크톱 GUI 앱, 게임, 마이크로컨트롤러가 있어요.
그보다 작은 연습부터 하고 싶다면 연습 문제를 풀어 보거나, 면접 질문으로 실력을 점검해 보세요.
알아 두면 좋은 크레이트
섹션 제목: “알아 두면 좋은 크레이트”Rust의 패키지인 크레이트는 crates.io (영어)를 통해 배포돼요. 라이브러리가 필요할 만한 일이라면 거의 다 크레이트가 있어요. 그중에서도 자주 등장하는 것들을 모았어요(링크는 모두 영어 문서예요).
serde— JSON(과 다른 형식)을 읽고 쓸 때 써요. Serde로 JSON 다루기를 참고하세요.clap— 명령줄 인자 파서를 만들 때 써요. clap 프로젝트를 참고하세요.anyhow/thiserror— 애플리케이션과 라이브러리의 에러 처리에 써요. anyhow와 thiserror를 참고하세요.rand,regex,chrono— 난수, 정규 표현식, 날짜를 다뤄요. 난수, 정규 표현식, 날짜와 시간을 참고하세요.log/tracing— 로깅에 써요. 로깅을 참고하세요.reqwest— HTTP 요청을 보낼 때 써요.tokio— 비동기 프로그래밍에 써요. async/await를 참고하세요.
이 크레이트들은 모두 cargo add <크레이트 이름>으로 프로젝트에 추가할 수 있어요. 따로 패키지 관리자를 설치할 필요가 없어요. 어떻게 동작하는지, 좋은 크레이트는 어떻게 고르는지는 Cargo와 크레이트 페이지에서 설명해요.
다루지 않은 주제
섹션 제목: “다루지 않은 주제”이 강좌는 보통의 입문 강좌보다 꽤 멀리까지 다뤘어요. 스마트 포인터, 스레드와 채널, async/await, unsafe Rust, C 호출하기(FFI), WebAssembly, 직접 만드는 macro_rules! 매크로까지요. 좀 더 깊은 주제 몇 가지는 따로 페이지가 있으니, 준비가 되면 읽어 보세요.
- 절차적 매크로(procedural macro) — 매크로 페이지에서 본
macro_rules!매크로보다 더 강력하고 더 복잡한 사촌이에요.#[derive(Debug)]같은 것들이 내부적으로 이걸로 만들어져요. - no_std / 임베디드 Rust — 표준 라이브러리 없이 Rust를 쓰는 방법이에요. 마이크로컨트롤러처럼 자원이 제한된 환경에서 써요.
이런 걸 몰라도 쓸모 있는 Rust 코드는 얼마든지 쓸 수 있어요. 이런 게 있다는 것만 알아 두고, 정말 필요한 문제를 만났을 때 배우면 충분해요.
계속 공부할 곳
섹션 제목: “계속 공부할 곳”- The Rust Programming Language 한국어판 — 기초가 잡힌 지금 다시 한번 읽어 보세요. 두 번째로 읽으면 훨씬 많은 부분이 이해될 거예요.
- Rust by Example (영어) — 설명이 달린 코드를 더 많이 읽어 볼 수 있어요.
- Rustlings (영어) — 터미널에서 바로 고쳐 보는 작은 연습 문제들이에요.
- This Week in Rust (영어) — 커뮤니티가 무엇을 만들고 있는지 볼 수 있는 주간 뉴스레터예요.
마지막으로 솔직한 이야기
섹션 제목: “마지막으로 솔직한 이야기”앞으로도 헷갈리는 컴파일러 에러를 계속 만날 거예요. 그건 정상이에요. 초보자만 그런 게 아니라 몇 년 동안 Rust를 써 온 사람들도 똑같이 겪어요. 경험이 쌓인다고 에러가 사라지는 게 아니에요. 에러를 읽는 속도가 빨라질 뿐이에요. 계속 코드를 쓰고, 컴파일러가 하는 말을 계속 읽다 보면 점점 쉬워져요.
여기까지 꾸준히 따라와 줘서 고마워요. 앞으로도 응원할게요! 🦀
이해도 점검
섹션 제목: “이해도 점검”이해도 점검
1. 이 페이지에서 JSON을 읽고 쓸 때 추천하는 크레이트는 무엇일까요?
2. 비동기 프로그래밍용으로 소개한 크레이트는 무엇일까요?
3. 이 페이지에서 다루지 않은 주제로 꼽은 것은 무엇일까요?
점수: 0 / 3