Rust 실전 로드맵: 문법부터 비동기 웹 API까지
Rust 문법과 소유권부터 테스트된 비동기 웹 API까지 단계별로 완성합니다.
단계 1 — 핵심 문법과 CLI 기초
단계 목표: 작은 Rust 프로그램을 컴파일, 실행, 포맷, 린트, 테스트하고 일반적인 표현식과 컬렉션 코드를 읽습니다.
-
공개됨01
개발 환경과 Cargo
도구 체인을 설치하고 검증한 뒤 크레이트 하나를 빌드·실행·포맷·린트·테스트합니다.
-
공개됨02
변수와 상수
타입 추론과 명시적 타입, shadowing, 상수, 가변성을 구분해서 사용합니다.
-
공개됨03
함수와 제어 흐름
문장과 표현식의 차이를 이해하고 함수, 분기, 반복문을 테스트 가능한 형태로 작성합니다.
-
공개됨04
튜플·배열·구조 분해
고정 크기 데이터를 튜플과 배열로 다루고 범위를 벗어난 인덱스 접근을 피합니다.
-
공개됨05
Vec·String·HashMap
Vec, String, HashMap으로 엔드포인트 데이터를 파싱하고 요약하며 UTF-8 문자열을 안전하게 처리합니다.
-
공개됨06
CLI 입력과 로직 분리
입출력과 로직을 분리한 엔드포인트 레지스트리 CLI를 만들고 단위 테스트를 실행합니다.
프로젝트 마일스톤: 테스트 가능한 엔드포인트 레지스트리 CLI
단계 2 — 소유권과 빌림
단계 목표: 이동과 빌림을 예측하고 소유 데이터와 빌린 데이터를 선택하며 불필요한 clone 없이 라이프타임 진단을 해결합니다.
-
공개됨07
소유권과 이동
대입과 함수 호출 뒤 값의 유효성을 예측하고 불필요한 clone을 피합니다.
-
공개됨08
참조와 빌림
CLI가 데이터를 빌리도록 리팩터링하고 별칭과 가변성 규칙을 설명합니다.
-
공개됨09
슬라이스와 문자열
문자열 API에서 String과 &str 중 적절한 타입을 선택하고 UTF-8 경계를 안전하게 처리합니다.
-
공개됨10
라이프타임
빌린 값을 반환하는 코드의 라이프타임 진단을 해결하고 불필요한 'static 사용을 피합니다.
-
공개됨11
소유권 기반 API 설계
엔드포인트 모델을 소유권·빌림·변환 경계가 분명한 API로 리팩터링합니다.
프로젝트 마일스톤: 명확한 소유권 경계를 갖춘 엔드포인트 모델
단계 3 — 타입 추상화와 크레이트 설계
단계 목표: 모듈을 구성하고 타입으로 상태를 모델링하며 트레이트와 이터레이터를 사용하고 오류 처리와 테스트 규칙을 세웁니다.
-
공개됨12
구조체와 메서드
엔드포인트 ID, URL, 검사 주기, 유효성 규칙을 구조체와 메서드로 표현합니다.
-
공개됨13
열거형·Option·Result·패턴 매칭
플래그와 특수값을 enum, Option, Result와 빠짐없는 패턴 매칭으로 바꿉니다.
-
공개됨14
제네릭과 트레이트
저장소와 검사기 경계를 정의하고 제네릭, 트레이트 객체, impl Trait의 선택 기준을 비교합니다.
-
공개됨15
클로저와 이터레이터
이터레이터와 클로저로 엔드포인트 결과를 필터링·변환·집계하며 불필요한 할당을 줄입니다.
-
공개됨16
모듈·크레이트·워크스페이스
도메인, 애플리케이션, 어댑터 책임을 모듈·크레이트·워크스페이스로 나눕니다.
-
공개됨17
오류 처리와 테스트
오류에 문맥을 보존하고 단위·통합·실패 테스트의 경계를 세웁니다.
프로젝트 마일스톤: 도메인, 애플리케이션, 어댑터로 나뉜 크레이트 구조
단계 4 — 스마트 포인터와 동시성
단계 목표: 스마트 포인터와 동기화 도구를 의도적으로 선택하고 Send와 Sync를 이해하며 구조를 숨기지 않는 매크로를 사용합니다.
-
공개됨18
스마트 포인터와 소유 그래프
소유 관계와 공유 범위에 맞춰 Box, Rc, Arc, Weak를 선택하고 순환 참조를 피합니다.
-
공개됨19
내부 가변성과 동기화
런타임 빌림 검사와 스레드 간 동기화를 구분하고 잠금으로 보호한 상태를 테스트합니다.
-
공개됨20
매크로와 코드 생성
작은 선언적 매크로를 작성하고 확장 결과를 확인한 뒤 함수나 derive가 더 나은 경우를 판단합니다.
-
공개됨21
스레드와 Send·Sync
소유권을 스레드로 옮겨 차단 작업을 병렬화하고 Send와 Sync가 막는 문제를 설명합니다.
-
공개됨22
채널과 공유 상태
메시지 전달과 공유 상태를 비교하고 종료 가능한 제한된 작업자 구조를 만듭니다.
프로젝트 마일스톤: 종료 경로를 테스트한 제한된 작업 큐
단계 5 — 비동기와 네트워크
단계 목표: Future를 이해하고 Tokio 태스크와 채널을 사용하며 취소, 마감 시간, 동시성 제한을 적용한 HTTP 작업을 설계합니다.
-
공개됨23
Future·Poll·Pin
간단한 Future를 따라가며 executor, wake, Pin이 필요한 이유를 이해합니다.
-
공개됨24
Tokio 태스크와 async/await
Tokio task로 검사를 동시에 실행하고 join 결과를 처리하며 동시성과 병렬성을 구분합니다.
-
공개됨25
비동기 채널과 정상 종료
채널, select!, 취소를 이용해 backpressure와 정상 종료를 갖춘 작업자를 만듭니다.
-
공개됨26
HTTP 타임아웃·재시도·동시성 제한
타임아웃·재시도·동시성 제한 정책을 명시한 HTTP 검사기를 구현합니다.
-
공개됨27
네트워크 오류와 부분 실패
DNS, 연결, TLS, 상태 코드, 타임아웃, 취소 오류를 분류해 안정적인 도메인 오류로 노출합니다.
프로젝트 마일스톤: 취소 가능한 제한된 비동기 HTTP 검사기
단계 6 — 웹 API와 프로덕션
단계 목표: 최종 서비스를 조립하고 데이터를 저장하며 백그라운드 작업자, 관측성, 보안 제어를 추가하고 배포 가능한 시스템을 검증합니다.
-
공개됨28
Axum 라우팅·상태·추출기
타입이 지정된 상태와 JSON 요청 검증을 사용하는 Axum CRUD·상태 API를 만듭니다.
-
공개됨29
SQLx·SQLite·마이그레이션
반복 가능한 마이그레이션과 트랜잭션 경계를 갖춘 SQLx·SQLite 저장소를 구현합니다.
-
공개됨30
API와 백그라운드 작업자
스케줄링, HTTP 검사, 저장, API 상태를 시작과 종료가 명확한 하나의 애플리케이션으로 연결합니다.
-
공개됨31
관측성과 API 보안
구조화 로그, 요청 ID, 로그 마스킹, 입력 제한, 상태 점검, 설정 검증을 추가합니다.
-
공개됨32
통합 테스트와 컨테이너 배포
API·데이터베이스·작업자·종료·실패 경로를 통합 테스트하고 재현 가능한 릴리스 이미지를 만듭니다.
프로젝트 마일스톤: 통합 테스트와 컨테이너 실행을 검증한 Endpoint Monitor API