본문 바로가기

도서 소개

러스트 서버, 서비스, 앱 만들기

분산 웹 앱 구축하며 풀스택 러스트 마스터하기

 

이 책은 오직 러스트만으로 웹서버, RESTful 서비스, 서버 렌더링 앱, 클라이언트 프런트엔드를 만든다. 작고 예측 가능한 리소스 풋프린트로 코드를 작성하는 법, 탁월한 안전성과 신뢰성을 갖춘 고성능 애플리케이션을 구축하는 법을 배울 수 있다. 책 전체에 걸쳐, 강사들을 위한 온라인 교육 플랫폼을 풀스택 러스트로 만들어나간다. 간단한 HTTP 서버와 RESTful 웹 서비스를 구축하는 기초부터 시작해서 보안, 데이터베이스 상호작용, 오류 처리를 추가해 프로덕션 레디 상태로 만든다. 최종적으로 서비스를 구현하고 SPA를 만들고 비동기 프로그래밍까지 살펴본다.

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

전자책 구매 사이트(가나다순)

  교보문고 / 구글북스 / 리디북스 / 알라딘 / 예스이십사

 

출판사 제이펍
저작권사 Manning
원서명 Rust Servers, Services, and Apps (9781617298608)
도서명 러스트 서버, 서비스, 앱 만들기
부제 백엔드 서버, 서비스, 프런트엔드 모두 러스트로 안전하고 빠르게 구축하기
지은이 프라부 에스왈라
옮긴이 김모세
감수자 (없음)
시리즈 (없음)
출판일 2024. 05. 17
페이지 388쪽
판 형 46배판변형(188*245*18.7)
제 본 무선(soft cover)
정 가 28,000원
ISBN 979-11-92987-96-5 (93000)
키워드 Rust, 백엔드, 풀스택, 웹, HTTP, API, 멀티스레딩, 리팩터링, 테스트, Actix, 패턴
분 야 프로그래밍 언어 / 러스트

 

관련 사이트
아마존 도서 페이지
저작권사 도서 페이지

 

관련 시리즈

■ (없음)

 

관련 포스트

■ 2024.05.08 - [출간 전 책 소식] - 러스트 봄이 오나 봄 봄이 왔나 봄 봄이 왔나 봐

 

관련 도서

러스트 프로그래밍 공식 가이드(제2판)

제로부터 시작하는 러스트 백엔드 프로그래밍

프로그래밍 러스트(개정판)

 

관련 파일 다운로드

■ (없음)

 

강의 보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음 자료를 보내드립니다.)
■ 본문의 그림과 표

 

미리보기(옮긴이 머리말, 베타리더 후기, 시작하며, 감사의 글, 이 책에 대하여, 표지에 대하여, 1장, 2/3/4장 일부)

 

정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

전자책 구매 사이트(가나다순)

  교보문고 / 구글북스 / 리디북스 / 알라딘 / 예스이십사

 

도서 소개

백엔드부터 프런트엔드까지 직접 구축하며 러스트 스킬업

 

러스트는 고도의 동시성을 안전하게 제공하는 언어로 설계되었고, 이를 활용하면 ‘모든 프로그래밍 언어의 도전’인 고성능 네트워크 서비스를 만드는 것도 가능하다. 이 책은 다양한 도구, 기법, 기술을 십분 활용해 오직 러스트만으로 백엔드부터 프런트엔드까지 현대적인 웹 서비스 및 애플리케이션을 점진적으로 구축해나간다.

 

1부에서는 웹 애플리케이션의 기초를 다지고 백엔드를 구축한다. 먼저 1장은 분산 아키텍처 등 핵심 개념 및 책에서 구축해나갈 온라인 교육 플랫폼 애플리케이션에 대해 소개한다. 2장에서는 TCP 기반 컴포넌트를 개발하고, 3장은 서드파티 크레이트를 활용해 RESTful 웹 서비스를 구현하는 방법을 살펴본다. 4장은 SQL 데이터베이스(PostgreSQL), 5장은 예외 처리, 6장은 리팩터링을 다룬다.

 

2부에서는 Actix 프레임워크를 이용한 서버 사이드 렌더링 프런트엔드 및 GUI를 개발한다. 7장은 프레임워크 및 폼에 대해 설명하고, 1부에서 개발한 백엔드 웹 서비스와 상호작용하는 방법도 살펴본다. 8장은 서버 사이드 Tera 템플릿 엔진을 살펴보고 폼을 이용한 사용자 등록 방법을 설명한다. 9장은 사용자 인증, 라우팅, HTTP 메서드를 사용한 CRUD 방식의 유지보수를 다룬다.

 

끝으로 3부는 프로덕션 배포를 위한 고급 주제를 다룬다. 10장은 Tokio와 퓨처를 활용한 비동기 프로그래밍, 11장은 libp2p를 사용한 P2P 애플리케이션 개발, 12장은 웹 애플리케이션을 도커 이미지로 준비하고 패키징하는 방법을 살펴본다.

 

챕터별로 실제 작동하는 프로젝트에 대해 이터레이션을 걸쳐 점진적으로 기능을 추가해나가며, 관련 이론은 프로젝트의 문맥 안에서 설명하는 실무 친화적인 방식으로 쓰인 책이다. 웹에서 돌아가는 서버/서비스/앱을 직접 만드는 과정을 통해, 개발자들의 사랑을 받으며 성장 중인 러스트 생태계의 진가를 맛보고 개발 스킬도 크게 향상할 수 있다.

 

주요 내용

  • 러스트로 데이터베이스 기반 웹 서비스 개발
  • RESTful API 빌드 및 보안 확보
  • 러스트로 서버 측 웹 애플리케이션 작성
  • 웹 서비스 성능 측정 및 벤치마킹
  • 웹 서비스 패키징 및 배포
  • 풀스택 러스트 애플리케이션

지은이 소개

프라부 에스왈라(Prabhu Eshwarla)

20년 이상 대기업에 고품질의 비즈니스 크리티컬 소프트웨어와 분산 시스템을 공급하고 IT 운영을 담당했다. 현재는 러스트를 사용해 레이어 1 블록체인을 구축하는 스타트업의 CTO다. 복잡한 기술을 쉽게 가르치는 데 진심인 교육자이기도 하다. 분산 시스템용 소프트웨어 인프라 및 시스템 도구 구축에 러스트가 강점이 있음을 일찍이 파악하고 활용해왔다. 코딩의 창의적 성격을 중요하게 여기지만, 깔끔하고 효율적이며 안전하고 유지 가능한 코드를 만들기 위한 소프트웨어 엔지니어링의 엄격함 또한 중시한다.

 

옮긴이 소개

김모세

대학 졸업 후 소프트웨어 엔지니어, 소프트웨어 품질 엔지니어, 애자일 코치 등 다양한 부문에서 소프트웨어 개발에 참여했다. 재미있는 일, 나와 조직이 성장하고 성과를 내도록 돕는 일에 보람을 느껴 2019년부터 번역을 시작했다. 저서로 《코드 품질 시각화의 정석》(지앤선)이 있고, 옮긴 책은 《제로부터 시작하는 러스트 백엔드 프로그래밍》(제이펍), 《추천 시스템 입문》(한빛미디어), 《타입스크립트, 리액트, Next.js로 배우는 실전 웹 애플리케이션개발》(위키북스), 《애자일 개발의 기술 2/e》(에이콘출판사) 등 다수다.

 

차례

옮긴이 머리말 ix

베타리더 후기 x

시작하며 xii

감사의 글 xiv

이 책에 대하여 xv

표지에 대하여 xix

 

PART I 웹서버와 웹 서비스

 

CHAPTER 1 왜 러스트가 웹 애플리케이션에 적합한가? 3

1.1 모던 웹 애플리케이션 개요 4

1.2 웹 애플리케이션을 위해 러스트를 선택하기 7

__1.2.1 웹 애플리케이션의 특성 8

__1.2.2 러스트를 사용한 웹 애플리케이션 구현의 이점 9

__1.2.3 러스트에 없는 것은? 15

1.3 예제 애플리케이션 소개 15

__1.3.1 무엇을 만들 것인가? 16 / 1.3.2 예제 애플리케이션의 기술적 가이드라인 19

요약 20

 

더보기

CHAPTER 2 기본 웹서버 작성하기 21

2.1 네트워킹 모델 22

2.2 러스트를 사용해 TCP 서버 작성하기 24

__2.2.1 TCP/IP 통신 흐름 설계하기 24 / 2.2.2 TCP 서버와 클라이언트 작성하기 26

2.3 러스트를 사용해 HTTP 서버 작성하기 31

__2.3.1 HTTP 요청 메시지 파싱하기 33 / 2.3.2 HTTP 응답 메시지 구성하기 42

__2.3.3 main() 함수와 server 모듈 작성하기 51

__2.3.4 router 및 handler 모듈 작성하기 52 / 2.3.5 웹서버 테스팅하기 57

요약 60

 

CHAPTER 3 RESTful 웹 서비스 구축하기 62

3.1 Actix 시작하기 62

__3.1.1 첫 번째 REST API 작성하기 63 / 3.1.2 Actix 개념 이해하기 66

3.2 REST를 사용해 웹 API 만들기 70

__3.2.1 프로젝트 범위와 구조 정의하기 71 / 3.2.2 애플리케이션 상태 정의 및 관리하기 74

__3.2.3 데이터 모델 정의하기 78 / 3.2.4 강의 게시하기 83

__3.2.5 한 강사의 모든 강의 정보 얻기 87 / 3.2.6 한 강의에 관한 세부 정보 얻기 90

요약 93

 

CHAPTER 4 데이터베이스 조작하기 95

4.1 프로젝트 구조 설정하기 96

4.2 첫 번째 데이터베이스와의 비동기 커넥션 작성하기(이터레이션 1) 98

__4.2.1 데이터베이스 및 커넥션 라이브러리 선택하기 98

__4.2.2 데이터베이스를 설정하고 비동기 풀과 연결하기 99

4.3 웹 서비스 설정하기와 단위 테스트 작성하기(이터레이션 2) 105

__4.3.1 디펜던시와 라우트 설정하기 106

__4.3.2 애플리케이션 상태와 데이터 모델 설정하기 107

__4.3.3 디펜던시 주입을 사용해 커넥션 풀 설정하기 108

__4.3.4 단위 테스트 작성하기 111

4.4 데이터베이스에서 레코드를 생성하고 질의하기(이터레이션 3) 113

__4.4.1 데이터베이스 접근 함수 작성하기 114 / 4.4.2 핸들러 함수 작성하기 117

__4.4.3 데이터베이스 기반 웹 서비스를 위한 main() 함수 작성하기 120

요약 124

 

CHAPTER 5 에러 핸들링하기 125

5.1 프로젝트 구조 설정하기 126

5.2 러스트와 Actix Web에서의 에러 핸들링 기본 130

5.3 커스텀 에러 핸들러 정의하기 137

5.4 모든 강의 정보 얻기에 대한 에러 핸들링하기 141

5.5 강의 상세 정보 얻기에 대한 에러 핸들링하기 148

5.6 새로운 강의 게시에 대한 에러 핸들링하기 150

요약 153

 

CHAPTER 6 API의 진화와 두려움 없는 리팩터링 154

6.1 프로젝트 구조 개편하기 155

6.2 강의 생성 및 관리와 관련된 데이터 모델 개선하기 160

__6.2.1 데이터 모델 변경하기 162 / 6.2.2 강의 API 변경하기 168

6.3 강사 등록 및 유지 관리를 가능하게 하기 183

__6.3.1 강사를 위한 데이터 모델과 라우트 184

__6.3.2 강사 관련 라우트에 대한 핸들러 함수 187

__6.3.3 강사 관련 라우트에 대한 데이터베이스 접근 함수 189

__6.3.4 강사에 대한 데이터베이스 스크립트 191

__6.3.5 강사 관련 API 실행 및 테스트하기 193

요약 197

 

PART II 서버 사이드 웹 애플리케이션

 

CHAPTER 7 러스트를 사용한

서버 사이드 웹 애플리케이션 개요 201

7.1 서버 사이드 렌더링 개요 202

7.2 Actix를 사용해 정적 웹페이지 제공하기 204

7.3 Actix와 Tera를 사용해 동적 웹페이지 렌더링하기 207

7.4 폼을 사용해 사용자 입력 추가하기 210

7.5 템플릿을 사용해 리스트 표시하기 213

7.6 클라이언트 사이드 테스트 작성 및 실행하기 217

7.7 백엔드 웹 서비스에 연결하기 220

요약 224

 

CHAPTER 8 템플릿을 사용해 강사 등록하기 226

8.1 초기 웹 애플리케이션 작성하기 227

8.2 등록 폼 표시하기 234

8.3 등록 제출 처리하기 240

요약 247

 

CHAPTER 9 강의 유지보수를 위한 폼 다루기 249

9.1 사용자 인증 설계하기 250

9.2 프로젝트 구조 설정하기 251

9.3 사용자 인증 구현하기 252

9.4 HTTP 요청 라우팅하기 258

9.5 HTTP POST 메서드를 사용해 리소스 생성하기 262

9.6 HTTP PUT 메서드를 사용해 리소스 업데이트하기 265

9.7 HTTP DELETE 메서드를 사용해 리소스 삭제하기 268

요약 269

 

PART III 고급 주제: 비동기 러스트

 

CHAPTER 10 비동기 러스트 이해하기 273

10.1 비동기 프로그래밍 개념 소개 274

10.2 동시 프로그램 작성하기 281

10.3 비동기 러스트 자세히 살펴보기 287

10.4 퓨처 이해하기 292

10.5 커스텀 퓨처 구현하기 300

요약 304

 

CHAPTER 11 비동기 러스트를 사용해 P2P 노드 구현하기 305

11.1 P2P 네트워크 소개 306

__11.1.1 전송 308 / 11.1.2 피어 신원 308 / 11.1.3 보안 308

__11.1.4 피어 라우팅 308 / 11.1.5 메시징 309 / 11.1.6 스트림 멀티플렉싱 309

11.2 libp2p 네트워킹의 핵심 아키텍처 이해하기 310

__11.2.1 피어 ID 및 키 페어 311 / 11.2.2 멀티어드레스 312

__11.2.3 스웜과 네트워크 동작 314

11.3 피어 노드 사이에서 ping 명령 교환하기 316

11.4 피어 발견하기 318

요약 321

 

CHAPTER 12 도커를 사용해 웹 서비스 배포하기 323

12.1 서버와 앱의 프로덕션 배포 개요 324

__12.1.1 소프트웨어 배포 수명 주기 325 / 12.1.2 도커 컨테이너 기본 327

12.2 첫 번째 도커 컨테이너 작성하기 329

__12.2.1 도커 설치 확인하기 329 / 12.2.2 간단한 도커 컨테이너 작성하기 331

__12.2.3 다단계 도커 빌드 334

12.3 데이터베이스 컨테이너 빌드하기 337

__12.3.1 Postgres 데이터베이스 패키징하기 338

__12.3.2 데이터베이스 테이블 생성하기 344

12.4 도커를 사용해서 웹 서비스 패키징하기 347

12.5 도커 컴포즈를 사용해서 도커 컨테이너 조정하기 348

요약 355

 

APPENDIX A 부록 357

Postgres 설치 357

 

찾아보기 360

 

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

  포스트  유튜브  인스타그램  트위터  페이스북

'도서 소개' 카테고리의 다른 글

실전 SQL 퀵스타트  (4) 2024.05.20
실무에 바로 쓰는 일잘러의 UiPath 업무 자동화  (0) 2024.05.14
자바 잘 읽는 법  (0) 2024.04.29
실전 스벨트 & 스벨트킷 입문  (0) 2024.04.23
퀴즈로 배우는 디자인  (0) 2024.04.18