() 해외배송 가능
도서소개 |
러스트로 뼈대부터 웹 서비스, 테스트, 배포까지! 더 빠르고 안전한 웹 애플리케이션을 만드는 최상의 방법! 러스트는 시스템 프로그래밍을 위한 안전하고 빠르며 생산적인 언어다. 또한, 개발자들이 가장 배우고 싶은 언어 1위이기도 하다. 이 책은 러스트로 웹 애플리케이션을 처음부터 끝까지 따라 하며 만들 수 있도록 도와준다. 먼저 애플리케이션의 뼈대인 기본적인 사항부터 구현한 다음, 러스트의 기능과 장점을 활용해 코드를 점진적으로 개선해 나간다. API를 외부에 공개하고, 데이터베이스를 연결하여 데이터를 저장하고, 애플리케이션을 테스트하고 배포하는 데 필요한 모든 과정을 다루며, 라우팅, 미들웨어, 데이터베이스, 비동기 작업 등 필요한 내용으로 가득차 있다. 또한, 따라 하는 실습에 그치지 않고 애플리케이션을 개발하는 동안 만나는 다양한 상황과 시행착오를 겪는 과정을 보여주면서 러스트의 장점을 살린 솔루션을 제공하기 때문에 여러분도 이 솔루션을 이해하여 자신의 프로젝트에 적용하고, 러스트를 더 깊이 있게 이해할 수 있을 것이다. |
목차 |
1부 러스트 소개 1장 왜 러스트인가? 1.1 배터리 포함: 러스트의 도구 1.2 러스트 컴파일러 1.3 웹 서비스를 위한 러스트 1.4 러스트 애플리케이션의 유지보수성 1.5 요약 2장 기초 쌓기 2.1 러스트 플레이북 따라 하기 __2.1.1 구조체로 리소스 모델링하기 __2.1.2 Option 이해하기 __2.1.3 에러를 해결하기 위해 문서 사용하기 __2.1.4 러스트에서 문자열 다루기 __2.1.5 이동, 대여, 소유권에 대해 훑어보기 __2.1.6 트레이트를 사용하고 구현하기 __2.1.7 Result 다루기 2.2 웹 서버 만들기 __2.2.1 동시에 다수 요청을 다루기 __2.2.2 러스트의 비동기 환경 __2.2.3 러스트에서 async/await 다루기 __2.2.4 러스트의 퓨처 타입 사용하기 __2.2.5 런타임 고르기 __2.2.6 웹 프레임워크 고르기 2.3 요약 2부 시작하기 3장 첫 경로 핸들러 만들기 3.1 웹 프레임워크에 대해 알아보기: Warp __3.1.1 Warp에 있는 기능 __3.1.2 Warp의 필터 체계 3.2 첫 JSON 응답을 GET 요청으로 받기 __3.2.1 프레임워크가 생각하는 대로 따르기 __3.2.2 성공 경로 처리하기 __3.2.3 Serde의 도움 받기 __3.2.4 우아하게 에러 처리하기 3.3 CORS 헤더 다루기 __3.3.1 애플리케이션 레벨에서 CORS 헤더를 반환하기 __3.3.2 CORS 응답 검사 3.4 요약 4장 Restful API 구현하기 4.1 인메모리 스토리지에서 질문 가져오기 __4.1.1 모의 데이터베이스 설정하기 __4.1.2 테스트 데이터를 준비하기 __4.1.3 가짜 데이터베이스에서 읽어 들이기 __4.1.4 쿼리 매개변수 파싱하기 __4.1.5 전용 에러 반환하기 4.2 질문을 POST, PUT, DELETE하기 __4.2.1 스레드에 안전한 방식으로 데이터를 수정하기 __4.2.2 질문 추가하기 __4.2.3 질문 업데이트하기 __4.2.4 잘못된 요청 처리하기 __4.2.5 저장소에서 질문 삭제하기 4.3 url-form-encoded로 answers POST 요청하기 __4.3.1 url-form-encoded와 JSON의 차이점 __4.3.2 url-form-encoded로 answers 추가하기 4.4 요약 5장 코드 정리하기 5.1 코드 모듈화 __5.1.1 러스트의 내장 mod 시스템 사용하기 __5.1.2 다양한 경우를 위한 실용적인 폴더 구조 __5.1.3 라이브러리와 하위 크레이트 만들기 5.2 코드 문서화하기 __5.2.1 문서 주석과 비공개 주석 사용하기 __5.2.2 주석에 코드 추가하기 5.3 코드베이스를 린팅하고 서식화하기 __5.3.1 클리피 설치하기 __5.3.2 Rustfmt로 코드 서식화하기 5.4 요약 6장 로그, 추적, 디버깅 6.1 러스트 애플리케이션 로깅하기 __6.1.1 웹 서비스에 로깅 구현하기 __6.1.2 들어오는 HTTP 요청을 로깅하기 __6.1.3 구조화된 로그 만들기 6.2 비동기 애플리케이션 추적하기 __6.2.1 Tracing 크레이트 소개 __6.2.2 애플리케이션에 tracing 통합하기 6.3 러스트 애플리케이션 디버깅하기 __6.3.1 명령줄에서 GDB 사용하기 __6.3.2 LLDB로 웹 서비스 디버깅하기 __6.3.3 비주얼 스튜디오 코드와 LLDB 사용하기 6.4 요약 7장 애플리케이션에 데이터베이스 추가하기 7.1 예제 데이터베이스 설정하기 7.2 첫 번째 테이블 만들기 7.3 데이터베이스 크레이트로 작업하기 __7.3.1 프로젝트에 SQLx 추가하기 __7.3.2 Store에 데이터베이스 연결하기 7.4 경로 핸들러 다시 구현하기 __7.4.1 get_questions에 데이터베이스 추가하기 __7.4.2 add_question 경로 핸들러 재구현하기 __7.4.3 질문을 수정, 삭제하는 핸들러 수정하기 __7.4.4 add_answer 경로 수정하기 7.5 에러 처리와 데이터베이스 상호 작용 추적하기 7.6 SQL 마이그레이션 통합하기 7.7 사례 연구: DBMS 바꾸기 7.8 요약 8장 서드파티 라이브러리와 통합하기 8.1 코드 준비하기 __8.1.1 API 고르기 __8.1.2 HTTP 크레이트 이해하기 __8.1.3 Reqwest로 예제 HTTP 호출 추가하기 __8.1.4 외부 API 요청에 대한 에러 처리하기 8.2 JSON 응답을 구조체로 역직렬화하기 __8.2.1 API 응답 정보를 수집하기 __8.2.2 API 응답에 대한 타입 만들기 8.3 API에 질문과 답변 보내기 __8.3.1 add_question 경로 핸들러 리팩터링 __8.3.2 질문 수정 시 금칙어 적용하기 __8.3.3 add_answer 경로 핸들러 수정하기 8.4 타임 아웃과 다수 요청을 한 번에 처리하기 __8.4.1 외부 HTTP 호출의 재시도 구현하기 __8.4.2 퓨처를 동시에 또는 병렬로 실행하기 8.5 요약 3부 프로덕션으로 투입시키기 9장 인증과 권한 추가 9.1 웹 서비스에 인증 추가하기 __9.1.1 사용자 개념 만들기 __9.1.2 데이터베이스 마이그레이션하기 __9.1.3 registration 엔드포인트 추가하기 __9.1.4 비밀번호 해시하기 __9.1.5 중복 계정 에러 처리하기 __9.1.6 상태 저장 인증과 상태 비저장 인증 __9.1.7 login 엔드포인트 추가하기 __9.1.8 토큰에 만료 날짜 추가하기 9.2 인증 미들웨어 추가하기 __9.2.1 데이터베이스 테이블 마이그레이션하기 __9.2.2 토큰 검증 미들웨어 만들기 __9.2.3 계정 ID를 처리하도록 기존 경로를 확장하기 9.3 다루지 않는 내용 9.4 요약 10장 애플리케이션 배포하기 10.1 환경 변수로 애플리케이션 설정하기 __10.1.1 구성 파일 설정하기 __10.1.2 애플리케이션에 명령줄 입력을 허용하기 __10.1.3 웹 서비스로 환경 변수 읽고 파싱하기 10.2 서로 다른 환경에 맞춰 웹 서비스 컴파일하기 __10.2.1 바이너리를 빌드할 때 개발 플래그와 릴리스 플래그 사용하기 __10.2.2 다른 환경을 위해 크로스 컴파일하기 10.3 빌드 프로세스에서 build.rs 사용하기 10.4 웹 서비스에 맞는 도커 이미지 생성하기 __10.4.1 정적으로 연결된 도커 이미지 생성하기 __10.4.2 도커 컴포즈로 로컬 도커 환경 설정하기 __10.4.3 웹 서버의 구성을 추출하여 새로운 모듈에 넣기 10.5 요약 11장 러스트 애플리케이션 테스트하기 11.1 비즈니스 로직의 단위 테스트 __11.1.1 페이지 로직을 테스트하고 자체 에러로 처리하기 __11.1.2 환경 변수로 Config 모듈 테스트하기 __11.1.3 새로 생성된 모의 서버로 profanity 모듈 테스트하기 11.2 Warp 필터 테스트하기 11.3 통합 테스트 설정 만들기 __11.3.1 lib.rs와 바이너리로 코드 분할하기 __11.3.2 통합 테스트 크레이트와 원샷 서버 구현하기 __11.3.3 등록 테스트 추가하기 __11.3.4 에러가 발생하는 경우 되돌리기 __11 3.5 로그인과 질문 올리기 테스트하기 11.4 요약 부록 보안 고려하기 A.1 종속성의 보안 이슈 검증하기 A.2 자신의 코드 확인하기 A.3 맺음말 찾아보기 |
* 배송마감 : 평일 오후 5시까지 입금확인시 당일발송됩니다.
* 배송기간 : 입금확인후 1~2일(제주도 등은 2~3일)
* 품절 등의 사유로 배송이 1~2일 정도 지연될 수 있습니다.
* 일부 테이프나 플레이디스크, 또는 신간이 나와있는 도서의 구판 등
재고를 가지고 있지 않은경우는 입고되어 발송해드리는 경우가 있습니다.
이때에는 배송일이 2~3일 소요될 수 있습니다.
* 예약판매도서 안내
교환 및 반품이 가능한 경우
- 상품을 공급 받으신 날로부터 5일이내 단, 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우에는 교환/반품이 불가능합니다.
- 공급받으신 상품이 주문내용과 다른 경우
교환 및 반품이 불가능한 경우
- 고객님의 책임 있는 사유로 상품등이 멸실 또는 훼손된 경우. 단, 상품의 내용을 확인하기 위하여
포장 등을 훼손한 경우는 제외
- 테이프, 플레이디스크, 서브종류 등은 상품특성상 교환 및 반품이 불가능합니다.
- 복제가 가능한 상품등의 포장을 훼손한 경우
(자세한 내용은 고객만족센터 02)812-9070 , 1:1 E-MAIL상담을 이용해 주시기 바랍니다.)
- 도서의 스프링 제본 선택시 교환, 반품, 환불이 불가능합니다.
※ 고객님의 마음이 바뀌어 교환, 반품을 하실 경우 상품반송 비용은 고객님께서 부담하셔야 합니다.