이번 연재의 목표: 러스트로 값의 주인이 누구인지 설명하고, 그 규칙 위에서 대출 기록을 파일에 남기는 작은 프로그램을 완성합니다.

기준은 2026년 10월 15일에 나온 안정 버전 1.99.1입니다. 언어 모드는 에디션 2024입니다. 예제는 cargo로 만들고 cargo run으로 실행합니다. 더 높은 안정 버전이어도 아래 문법 자체는 같습니다.

고수는 문법을 많이 외운 상태가 아닙니다. 문자열이 어디로 옮겨가는지, 참조가 언제까지 유효한지, 실패를 Result로 돌려 호출자가 처리하게 하는지를 설명할 수 있는 상태입니다. 동시성과 unsafe는 이 연재의 범위 밖에 둡니다.

목차

01 — 설치와 첫 실행 rustup으로 1.99.1을 두고, cargo가 만든 첫 프로그램을 실행합니다.

02 — 변수와 자료형 바꿀 수 없는 값과 바꿀 수 있는 값을 나누고, 정수와 문자열을 구분합니다.

03 — 함수 연체료 계산에 이름을 붙이고, 세미콜론이 없는 식을 결과로 돌려줍니다.

04 — 조건과 반복 if의 결과로 문구를 고르고, 범위로 연체료 합계를 구합니다.

05 — 소유권 정수는 복사되고 문자열은 옮겨진다는 차이를 컴파일러로 확인합니다.

06 — 참조와 빌림 소유권을 넘기지 않고 주소를 빌려, 호출자가 가진 값을 바꿉니다.

07 — 문자열과 슬라이스 바이트 수와 글자 수를 구분하고, 제목의 첫 단어를 빌립니다.

08 — 구조체 책 한 권의 제목과 연체 일수를 하나의 타입으로 묶습니다.

09 — 열거형과 match 정상과 연체를 한 타입의 갈래로 두고, 빠짐없이 나눕니다.

10 — 벡터 길이가 실행 중에 늘어나는 목록에 연체 일수를 담습니다.

11 — 해시맵 종이책과 전자책의 하루 요율을 이름으로 찾습니다.

12 — Result와 ? 잘못된 입력을 값으로 돌려, 호출자가 다음 행동을 고르게 합니다.

13 — 모듈과 공개 계산을 다른 파일로 옮기고, 밖으로 열 함수만 pub로 표시합니다.

14 — 테스트 연체료가 0일과 3일에서 기대한 값인지 cargo test로 확인합니다.

15 — 제네릭 같은 비교를 정수에도 쓸 수 있게 타입 매개변수로 적습니다.

16 — 트레이트 종이책과 전자책이 각자 다른 연체료를 계산하되 같은 이름으로 호출합니다.

17 — 수명 돌려주는 참조가 어느 입력만큼 살아 있는지 표시합니다.

18 — 클로저와 반복자 목록에서 연체된 날만 골라 요율을 곱하고 합칩니다.

19 — 파일 연체료 한 줄을 텍스트 파일에 쓰고 다시 읽습니다.

20 — 대출 기록기 제목과 연체 일수를 받아 CSV에 남기고, 권마다 연체료를 출력합니다.

학습 방법

01편에서 library 프로젝트를 하나 만듭니다. 02편부터 12편, 15편부터 19편은 그 프로젝트의 src/main.rs를 해당 편의 코드로 교체한 뒤 cargo run으로 확인합니다. 13편과 14편은 src/book.rs를 추가합니다. 20편은 다시 src/main.rs 한 파일로 기록기를 완성합니다.

출력 숫자는 실행 전에 손으로 계산해 맞춥니다. 컴파일 오류가 나오면 다음 편으로 넘어가지 않습니다. 오류 메시지는 어느 값이 이미 옮겨갔는지, 어느 참조가 너무 오래 사는지 알려 줍니다.