도서 소개
프로젝트로 배우는 러스트 웹 백엔드 개발 프레임워크. Axum은 사용성과 성능에 중점을 둔 러스트 프레임워크로, Axum을 활용하면 고성능 서버를 간단하게 구축할 수 있다. 이 책은 Axum의 기초부터 SeaORM, tower 미들웨어, 웹소켓까지 자세히 다루며, 실전 프로젝트를 통해 깊이 있게 학습할 수 있도록 구성되었다. 채팅 앱 서비스는 프런트엔드와 백엔드를 모두 구현해보며, 만든 앱을 Shuttle로 쉽고 빠르게 배포하는 방법을 배운다. 도커로 간단하게 실행하기 위해 도커 이미지 빌드 방법도 소개한다. 실무 중심의 학습으로 Axum을 활용한 백엔드 개발 역량을 키워보자.
출판사 리뷰
뛰어난 유연성과 확장성, 완벽한 개발자 경험까지 웹 백엔드 개발 프레임워크 Axum은 전 세계 개발자들의 주목을 받고 있습니다. 최소한의 코드만으로 원하는 기능을 구현할 수 있도록 설계된 Axum은 웹소켓, SSE, HTTP/2와 같은 최신 프로토콜을 모두 지원합니다. 고성능 서버를 간단하게 구축하고 싶다면 사용성과 성능을 모두 갖춘 Axum이 답입니다. 빠르게 변화하는 개발 트렌드와 러스트 생태계에 남들보다 먼저 앞서 나가보세요.
이 책만의 특별한 점 이 책은 가장 빠르게 성장하고 있는 러스트 프레임워크 Axum을 이해하기 쉽게 설명하는 최고의 가이드입니다. 러스트 입문자부터 고성능 서버 프로그램을 작성해보고 싶은 실무자까지 다양한 독자층을 고려하여 구성했습니다.
1. 입문자를 위한 러스트 핵심 개념 복습
이 책을 이해하기 위해 필요한 러스트 핵심 개념을 단계적으로 정리합니다. 풍부한 예제 코드와 쉬운 설명으로 처음 배우는 분들도 막힘없이 따라 할 수 있습니다.
2. 실무 중심의 프로젝트 예제 이론 학습만으로 실무에 적용하는 기술을 배우기는 어렵습니다. 이 책은 실무 감각을 익힐 수 있도록 프런트엔드와 백엔드를 모두 구현한 채팅 서비스를 만들어봅니다. 코드를 완성한 후에는 Shuttle, 도커를 이용해 웹에 배포하는 과정도 배웁니다.
3. 저자의 인프런 동영상 강의 책만으로 부족하다고 느낄 초보자들을 위해 저자는 인프런 동영상 강의를 제작했습니다. 책의 흐름에 맞춰 진행되는 강의는 핵심 이론과 실습 프로젝트를 알기 쉽게 설명하며, 실전에서 유용한 팁까지 담았습니다.
이 책은 누가 읽으면 좋을까요? - 러스트에 입문하고자 하는 타 언어 개발자
- 새로운 프로젝트를 만들어보고 싶은 러스트 개발자
- 고성능 서버 프로그램을 작성해보고 싶은 실무자
먼저 읽은 독자들의 한줄평 - 이미 다른 언어로 웹 개발 경험이 있으면서 고성능과 안정성을 동시에 갖춘 언어로 새로운 가능성을 탐색하고자 하는 분들에게 추천합니다. _김진영 님
- 러스트는 인지도 있는 언어가 되었지만 아직 라이브러리를 활용한 학습 자료가 부족하여 초심자들에게 새로운 것을 만들며 배울 기회가 적었습니다. 이 책은 그런 면에서 가뭄에 단비 같은 존재입니다. _김태근 님
- 책을 따라 REST API를 만들고 ORM으로 데이터베이스를 연동하며 인증, 웹소켓을 이용한 채팅 앱까지 구현하면서 러스트와 Axum의 매력에 빠져들 수 있었습니다. _김호준 님
- 러스트 생태계에 대한 이해를 돕는 실용적인 내용이 많아 적극 추천합니다. _이현수 님

Axum은 tokio와 hyper를 제대로 사용하기 위해서 만들어진 서버 프레임워크인 만큼 다른 Tokio 생태계의 라이브러리들과 매끄럽게 연결됩니다. 특히 다른 프레임워크에서도 많이 사용하고, 다양한 미들웨어(middleware) 기능이 미리 구현되어 있는 미들웨어 크레이트인 tower와의 연동이 매우 간편합니다. 이러한 이유에서 Tokio 생태계에서 제공하는 다양한 기능을 쉽게 통합해서 사용하려면 Axum이 가장 적합한 선택입니다.
또한 특정 경로를 다른 경로로 변경할 때도 여러 번 경로를 수정해야 하는 번거로움이 있습니다. 예를 들어 /user 경로를 /my_user로 바꾸려면 라인 4개를 일일이 고쳐야 하기 때문에 번거로운 데다 실수로 이름을 잘못 넣을 가능성도 있습니다. 이런 이유에서 route 메서드를 계속 연결하는 방법은 라우터에서 정의하고자 하는 경로와 핸들러의 가짓수가 많을 때는 바람직하지 않습니다. / 이처럼 경로와 핸들러가 많아지는 경우 코드가 길어지고 관리가 어렵기 때문에, 하나의 경로에 여러 개의 핸들러를 묶는 방법을 사용하면 문제를 간단하게 해결할 수 있습니다. route 함수의 두 번째 매개변수로 get, post, put, delete 메서드를 연결해주면 됩니다.
작가 소개
지은이 : 윤인도
서울대학교에서 공학 학사와 석사 학위를 취득하고, 현재 SAP Labs Korea에서 백엔드 개발자로 근무하고 있다. 한 줄의 코드가 세상을 더 나은 곳으로 만들 수 있다는 신념을 가지고 지식을 나누기 위해 여러 기업과 대학에서 강연을 이어가고 있다. 또한 프로그래머스, 클래스101, 인프런, 베어유 등 여러 플랫폼에서 다양한 주제로 온라인 클래스도 운영하고 있다.
목차
머리말 vii
베타리더 후기 ix
이 책을 읽는 법 x
학습 가이드 xiv
로드맵 xvi
CHAPTER 1 러스트와 서버 개발
1.1 왜 러스트인가? 2
1.2 러스트 서버 개발 사례 4
1.3 러스트 백엔드 프레임워크 비교 6
1.4 개발 환경 설정하기 9
1.5 러스트 핵심 개념 복습 22
돌아보기/쪽지시험 39
CHAPTER 2 Axum 기초 살펴보기
2.1 HTTP 기초 42
2.2 Axum 프로젝트 만들기 45
2.3 라우터와 핸들러 49
2.4 상태 관리 76
2.5 핸들러 디버깅 86
2.6 예제: 프록시 서버 만들기 88
돌아보기/쪽지시험 94
CHAPTER 3 SeaORM으로 데이터베이스 연동해보기
3.1 ORM이란? 98
3.2 스키마와 모델 만들기 100
3.3 SeaQuery 111
3.4 HTTP 요청에 Users 테이블 연결하기 123
3.5 데이터베이스 연결 126
3.6 모듈화 128
3.7 나머지 엔드포인트 완성하기 141
3.8 DBeaver 사용해보기 148
돌아보기/쪽지시험 154
CHAPTER 4 tower 미들웨어
4.1 미들웨어란? 158
4.2 미들웨어 레이어 추가해보기 160
4.3 예제: JWT 인증 레이어 만들기 171
돌아보기/쪽지시험 182
CHAPTER 5 웹소켓
5.1 웹소켓 살펴보기 184
5.2 웹소켓 사용해보기 186
5.3 동시 접속 웹소켓 193
5.4 인증 헤더 202
돌아보기/쪽지시험 206
CHAPTER 6 프로젝트: 채팅 서비스 만들어보기
6.1 프로젝트 개요 210
6.2 Shuttle로 배포하기 213
6.3 도커로 실행하기 241
돌아보기 245
찾아보기 247