저자

프라부에스왈라

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

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

목차


옮긴이머리말ix
베타리더후기x
시작하며xii
감사의글xiv
이책에대하여xv
표지에대하여xix

PARTI웹서버와웹서비스

CHAPTER1왜러스트가웹애플리케이션에적합한가?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

CHAPTER2기본웹서버작성하기21
2.1네트워킹모델22
2.2러스트를사용해TCP서버작성하기24
__2.2.1TCP/IP통신흐름설계하기24/2.2.2TCP서버와클라이언트작성하기26
2.3러스트를사용해HTTP서버작성하기31
__2.3.1HTTP요청메시지파싱하기33/2.3.2HTTP응답메시지구성하기42
__2.3.3main()함수와server모듈작성하기51
__2.3.4router및handler모듈작성하기52/2.3.5웹서버테스팅하기57
요약60

CHAPTER3RESTful웹서비스구축하기62
3.1Actix시작하기62
__3.1.1첫번째RESTAPI작성하기63/3.1.2Actix개념이해하기66
3.2REST를사용해웹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

CHAPTER4데이터베이스조작하기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

CHAPTER5에러핸들링하기125
5.1프로젝트구조설정하기126
5.2러스트와ActixWeb에서의에러핸들링기본130
5.3커스텀에러핸들러정의하기137
5.4모든강의정보얻기에대한에러핸들링하기141
5.5강의상세정보얻기에대한에러핸들링하기148
5.6새로운강의게시에대한에러핸들링하기150
요약153

CHAPTER6API의진화와두려움없는리팩터링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

PARTII서버사이드웹애플리케이션

CHAPTER7러스트를사용한서버사이드웹애플리케이션개요201
7.1서버사이드렌더링개요202
7.2Actix를사용해정적웹페이지제공하기204
7.3Actix와Tera를사용해동적웹페이지렌더링하기207
7.4폼을사용해사용자입력추가하기210
7.5템플릿을사용해리스트표시하기213
7.6클라이언트사이드테스트작성및실행하기217
7.7백엔드웹서비스에연결하기220
요약224

CHAPTER8템플릿을사용해강사등록하기226
8.1초기웹애플리케이션작성하기227
8.2등록폼표시하기234
8.3등록제출처리하기240
요약247

CHAPTER9강의유지보수를위한폼다루기249
9.1사용자인증설계하기250
9.2프로젝트구조설정하기251
9.3사용자인증구현하기252
9.4HTTP요청라우팅하기258
9.5HTTPPOST메서드를사용해리소스생성하기262
9.6HTTPPUT메서드를사용해리소스업데이트하기265
9.7HTTPDELETE메서드를사용해리소스삭제하기268
요약269

PARTIII고급주제:비동기러스트

CHAPTER10비동기러스트이해하기273
10.1비동기프로그래밍개념소개274
10.2동시프로그램작성하기281
10.3비동기러스트자세히살펴보기287
10.4퓨처이해하기292
10.5커스텀퓨처구현하기300
요약304

CHAPTER11비동기러스트를사용해P2P노드구현하기305
11.1P2P네트워크소개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.2libp2p네트워킹의핵심아키텍처이해하기310
__11.2.1피어ID및키페어311/11.2.2멀티어드레스312
__11.2.3스웜과네트워크동작314
11.3피어노드사이에서ping명령교환하기316
11.4피어발견하기318
요약321

CHAPTER12도커를사용해웹서비스배포하기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.1Postgres데이터베이스패키징하기338
__12.3.2데이터베이스테이블생성하기344
12.4도커를사용해서웹서비스패키징하기347
12.5도커컴포즈를사용해서도커컨테이너조정하기348
요약355

APPENDIXA부록357
Postgres설치357

찾아보기360

출판사 서평

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

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

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장은웹애플리케이션을도커이미지로준비하고패키징하는방법을살펴본다.

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

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