책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
· ISBN : 9788966265190
· 쪽수 : 348쪽
· 출판일 : 2026-02-23
책 소개
프로그램을 만들면서 문제를 해결하는 힘을 기른다!
이 책은 문법부터 외우기보다 실제로 실행되는 프로그램 하나를 처음부터 끝까지 완성하는 과정을 먼저 보여 준다. 각 장의 프로그램은 하나의 과제를 잘게 쪼개서 생각하도록 짜여 있고 구현에 필요한 개념만 그때그때 단계적으로 등장한다. 구조체, 열거형, 컬렉션 같은 개념도 따로 떼어 설명하지 않는다. 계산기 같은 실제 프로그램을 구현하면서 왜 이런 타입이 필요한지, 왜 이런 구조가 안전한지를 직접 보여 준다. 이렇게 문제를 쪼개고, 구현하고, 수정하는 과정을 거치며 러스트식 문제 해결법을 기른다.
이 책에서 다루는 내용
● 계산 퀴즈
● 계산기
● 도서 관리 프로그램
● TODO 앱
● 포커 게임
● 가계부 프로그램
● 스터디 모임 캘린더
● 썸네일 생성 프로그램
목차
▶ 1장 러스트는 어디서 쓸까요? 1
1.1 러스트란? 1
1.2 러스트는 고성능 2
____1.2.1 기계어로 컴파일된다 3
____1.2.2 가비지 컬렉션이 필요 없다 3
____1.2.3 제로 코스트 추상화를 실현한다 4
1.3 러스트는 안전성이 높다 4
1.4 러스트는 생산성이 높다 5
____1.4.1 패키지 매니저 5
____1.4.2 단위 테스트 5
____1.4.3 포매터와 린터 6
____1.4.4 풍부한 표현력 6
1.5 러스트, 어디서 쓰고 있을까? 8
1.6 활발한 커뮤니티 활동 8
▶ 2장 러스트로 프로그램을 실행해 보자: Hello, world! 9
2.1 러스트 설치하기 9
____2.1.1 macOS와 리눅스에서 설치하기 10
____2.1.2 러스트 개발 도구 구성 10
2.2 러스트로 프로그램 작성하기 13
____2.2.1 코드를 작성하기 전에 14
____2.2.2 rustc 사용하기 16
____2.2.3 Cargo 사용하기 19
____2.2.4 cargo new로 신규 프로젝트 작성하기 19
____2.2.5 프로그램 작성하기 요약 24
2.3 개발 환경 만들기 25
____2.3.1 VS Code를 더 편리하게 사용하기 25
▶ 3장 인터랙티브 프로그램 만들기 [계산 퀴즈] 29
3.1 애플리케이션 사양 30
____3.1.1 실행 예 30
3.2 준비 작업 30
____3.2.1 코드 안 주석 30
____3.2.2 값과 데이터 타입 31
____3.2.3 변수 33
____3.2.4 표현식과 구문 34
____3.2.5 불변성과 가변성 34
3.3 퀴즈 정답 판정하기 35
____3.3.1 프로젝트 작성 35
____3.3.2 사용자 입력 받기 36
____3.3.3 덧셈 문제 만들기: if 문 38
____3.3.4 뺄셈 문제 만들기: unsigned/signed 40
____3.3.5 무작위 문제 생성하기 42
3.4 다양한 제어 흐름 사용하기 45
____3.4.1 종료 판정하기: for in/while 45
____3.4.2 퀴즈 종류 나누기: match 46
____3.4.3 정답을 맞힐 때까지 문제 반복하기: loop 48
▶ 4장 다양한 자료 구조 다루기 [포커 게임] 53
4.1 애플리케이션 사양 53
____4.1.1 실행 예 54
4.2 프로젝트 작성하기 55
4.3 트럼프 카드 정의하기 55
4.4 트럼프 카드를 변수에 대입하기 57
4.5 52장 카드 더미 만들기 58
4.6 카드 더미 섞기 59
4.7 카드 더미에서 카드 뽑기 59
4.8 패 교환 61
4.9 조합 판정 62
▶ 5장 함수와 메서드 다루기 [메모리 기능이 있는 계산기] 65
5.1 애플리케이션 사양 66
5.2 덧셈, 뺄셈, 곱셈, 나눗셈 기능 만들기 66
____5.2.1 함수를 사용하지 않는 구현 66
____5.2.2 함수 정의와 호출 방법 68
____5.2.3 처리를 함수로 분할하기 71
____5.2.4 함수의 장점 72
5.3 메모리 기능 구현하기 74
____5.3.1 메모리 읽고 쓰기 74
____5.3.2 참조 전달과 값 전달 79
5.4 메모리 기능 확장하기 82
____5.4.1 메모리를 10개로 늘리기 82
____5.4.2 소유권 시스템 86
____5.4.3 재도전: 메모리를 10개로 늘리기 90
____5.4.4 메모리 이름 지정하기 94
5.5 복잡한 수식 계산하기 107
____5.5.1 토큰 의미 해석 위치 정리하기 108
____5.5.2 [심화 내용] 괄호가 없는 수식 계산하기 112
____5.5.3 [심화 내용] 괄호가 있는 수식 계산하기 116
▶ 6장 파일 입출력이 있는 명령줄 도구 만들기 [가계부 프로그램] 123
6.1 애플리케이션 사양 123
6.2 명령어 만들기 124
____6.2.1 CLI 명령어 만들기 124
____6.2.2 서브 명령어 만들기 126
6.3 CSV 파일 다루기 130
____6.3.1 파일 작성하기: new 명령어 구현하기 130
____6.3.2 파일에 내용 추가하기: deposit, withdraw 명령어 구현하기 135
____6.3.3 여러 레코드 일괄 작성하기: import 명령어 구현하기 144
____6.3.4 여러 파일 조작하기: report 명령어 구현하기 153
▶ 7장 직접 만든 라이브러리 공개하기 [도서 관리 프로그램] 159
7.1 패키지, 크레이트, 모듈 이해하기 159
____7.1.1 패키지와 크레이트 160
____7.1.2 모듈 이해하기 162
____7.1.3 모듈 사용하기 162
____7.1.4 모듈을 여러 파일로 분할하기 173
7.2 외부 크레이트 사용하기 175
____7.2.1 crates.io 175
____7.2.2 크레이트 추가하기 176
7.3 라이브러리 직접 만들기 181
____7.3.1 구현하기 181
____7.3.2 다른 크레이트 불러오기 186
____7.3.3 깃 사용하기 187
____7.3.4 만든 라이브러리 사용하기 192
▶ 8장 단위 테스트 작성하기 [스터디 모임 캘린더] 195
8.1 테스트란 무엇인가? 196
____8.1.1 끝없는 버그 196
____8.1.2 테스트하기 197
____8.1.3 이 장에서 다루는 내용 197
8.2 일정을 읽고 쓰는 기능 구현하기 198
____8.2.1 애플리케이션 사양 198
____8.2.2 데이터 저장 형식 198
____8.2.3 일정 목록 표시하기 199
____8.2.4 일정 추가하기 203
8.3 중복 일정 확인하기 206
____8.3.1 중복 일정 판정 206
____8.3.2 테스트 작성하기 209
____8.3.3 중복 확인 로직 수정하기 215
____8.3.4 테스트 간결하게 작성하기 218
8.4 일정 삭제하기 225
____8.4.1 일정 삭제 기능 구현하기 225
____8.4.2 디버깅 방법 229
▶ 9장 오류 처리하기 [스터디 모임 캘린더] 239
9.1 오류 처리 239
9.2 오류 처리의 기본 개념 240
9.3 오류 타입 정의하기 242
9.4 ?를 사용한 오류 처리 243
9.5 실용적인 오류 처리 244
____9.5.1 달력 읽기 함수의 오류 처리 244
____9.5.2 달력 저장 함수의 오류 처리 245
____9.5.3 사용자 지정 오류 타입 구현하기 246
____9.5.4 오류 변환 로직 구현하기 248
____9.5.5 thiserror 248
▶ 10장 간단한 웹 앱 만들기 [TODO 앱] 251
10.1 웹 브라우저 작동 원리 251
10.2 TODO 앱 만들기 252
____10.2.1 애플리케이션 사양 253
____10.2.2 메시지 표시하기 253
____10.2.3 HTML 표시하기 257
____10.2.4 데이터 저장하기 267
____10.2.5 TODO 앱 완성하기 274
▶ 11장 직접 만든 웹 앱 공개하기 [TODO 앱] 287
11.1 사전 준비 287
11.2 깃 리포지터리 작성 288
11.3 Render.com 등록하기 290
▶ 12장 병렬 처리 다루기 [썸네일 생성 프로그램] 295
12.1 썸네일 생성 프로그램 만들기 295
____12.1.1 병렬 처리 프로그램 작성하기 296
12.2 병렬 처리 시작하기 300
____12.2.1 1을 10억 번 더하기 300
____12.2.2 이상한 덧셈 301
____12.2.3 배타적 제어로 안전한 데이터 동기화 304
12.3 다양한 데이터 동기화 방법 309
____12.3.1 썸네일 생성 도구 병렬화 309
____12.3.2 채널 313
____12.3.3 rayon으로 간편하게 병렬 처리하기 316
▶ 13장 채용 면접 대비하기 321
13.1 전형 절차 321
____13.1.1 서류 전형 321
____13.1.2 1차 면접 322
____13.1.3 기술 면접 322
____13.1.4 2차 면접 323
13.2 기술 면접 준비하기 323
____13.2.1 문제 A 323
____13.2.2 문제 A 풀이 324
____13.2.3 문제 B 328
____13.2.4 문제 B 풀이 329
찾아보기 332




















