저자소개
지은이_ 지오프로이 워렌(Geoffroy Warin)
소프트웨어 장인 운동Software Craftsmanship movement과 오픈소스 확산을 지지하고 이에 대
한 확고한 신념을 가진 개발자로, 개발을 시작한 지 10년이 넘었다. 그는 주로 자바와
자바스크립트로 엔터프라이즈급 웹 애플리케이션을 구상하는 일을 해왔다.
지오프로이는 백엔드와 프론트엔드 양쪽에 모두 능통하며, 깔끔한 코드와 테스트 가
능성에 많은 관심이 있다. 그는 개발자들이 그들의 고객에게 지속적인 가치를 제공하
려면 읽을 수 있는 코드를 작성하기 위해 노력해야 한다고 믿는다.
그는 테스트 주도 개발Test-driven Development 접근법과 훌륭한 소프트웨어 설계를 활성화
하기 위해 페어 프로그래밍과 멘토링을 활용한다. 현재 자바 웹스택 과정을 가르치고
있으며 그루비와 스프링의 광신자이기도 하다. 또한, Packt에서 출간한 『Learning
Spring Boot』(2014)와 『Spring Boot Cookbook』(2015) 리뷰팀에서 스프링 생
태계에 최근 추가된 주요 항목을 다뤘다.
그의 블로그 http://geowarin.github.io와 트위터 계정 https://twitter.com/
geowarin을 살펴보면 스프링과 자바스크립트 프로그래밍에 관한 뜨끈뜨끈한 소식
들을 살펴볼 수 있다.
역자소개
옮긴이_ 김지헌
자바를 주력으로 하는 개발자로, 인터넷에서는 허니몬honeymon이라는 이름으로 활동하
고 있다. 다양한 취미활동(스포츠 클라이밍, 로드 레이싱, 스쿠버다이빙 등)을 하며 유유자적
한 생활을 즐긴다. Spring Boot 1.2 버전의 레퍼런스 문서를 번역한 것이 인연이 되
어 이 책을 번역하게 됐다.
이책에서 다루는 것들
1장 스프링 웹 애플리케이션 설정하기는 스프링 부트를 이용해 간결하게 시작한다. 여
기서 이용하는 STSSpring Tool Sutie와 깃Git은 생산성을 높여주고, 스프링 부트 뒤에서 마
법을 부리듯 애플리케이션을 빠르게 구축하는 데 도움을 준다.
2장 MVC 구조 익히기에서는 간단한 트위터Twitter 검색 엔진을 만드는 과정을 소개한
다. 이 과정에서 Spring MVC의 기본과 웹 구조에 대한 이론을 다룬다.
3장 폼과 복잡한 URL 매핑 다루기에서는 사용자 프로필 폼을 어떻게 만드는지를 이
해할 수 있게 돕는다. 또한, 클라이언트뿐만 아니라 서버에 전달된 데이터의 유효성을
검증하는 방법과 애플리케이션에서 다른 언어를 사용할 수 있게 만드는 방법 등을 다
룬다.
4장 파일 업로드와 오류 다루기에서는 프로필 폼에서 파일을 업로드하는 과정을 안내
한다. 발생한 오류를 Spring MVC에서 처리하는 방법과 정의한 오류 페이지를 사용
자에게 표시하는 법을 보여준다.
5장 RESTful 애플리케이션 만들기에서는 RESTful 아키텍처 이론을 설명한다. 사용
자 관리 API를 만들어 HTTP 호출로 접근하고 API를 설계하는 데 도움이 되는 도구
를 살펴본다. 또한, 어떻게 하면 손쉽게 문서를 작성할지 의견을 나눈다.
6장 애플리케이션 보안에서는 애플리케이션 보안에 관해 설명한다. RESTful API에
대한 기본 HTTP 인증 보안과 웹 페이지에 앞서 로그인 페이지를 노출하는 방법을 다
룬다. 그리고 어떻게 트위터를 통해 로그인하고 레디스Redis 서버에 세션을 저장해 애
플리케이션을 확장하는지에 대해 설명한다.
7장 운에 맡기지 않기 - 단위 테스트와 인수 테스트에서는 애플리케이션 테스트에 대
해 살펴본다. 테스트와 TDD에 대해 알아보고, 컨트롤러에 대한 단위 테스트를 어떻
게 작성하는지, 라이브러리를 사용해 통합end-to-end 테스트를 어떻게 설계하는지 알아
본다. 마지막으로 그루비로 어떻게 생산성을 높이고 테스트 가독성을 향상시킬지를
살펴본다.
8장 요구사항 최적화에서는 애플리케이션 최적화에 대해 살펴본다. 이 장에서는 캐
시-컨트롤Cache-control과 Gzipping을 사용하는 방법을 다룬다. 또한, 트위터 검색결
과를 레디스의 인-메모리In-memory에서 어떻게 사용하는지 살펴보고 멀티스레드 검색
을 어떤 방법으로 하는지도 보여준다. 이에 더해 ETags를 구현하는 방법과 웹소켓
WebSockets 사용법도 다룬다.
9장 웹 애플리케이션을 클라우드 환경에 배포하기에서는 애플리케이션을 배포하는
방법을 소개한다. 각기 다른 PaaS 솔루션을 비교하면서 차이점을 살펴보고, 클라우드
파운드리Cloud Foundry와 히로쿠Heroku에 어떻게 애플리케이션을 배포하는지 설명한다.
10장 스프링 웹을 넘어서에서는 전체적인 스프링 생태계의 모습과 현재 웹 애플리케
이션이 어떻게 만들어지며 앞으로 어떻게 변화되어 갈지를 논의한다.
이 책의 대상 독자
이 책은 자신의 웹 개발 기술이 향상되길 바라는, 스프링 프로그래밍에 관한 기본적인
지식을 가진 개발자에게 적합하다. 또한, 스프링 프레임워크에 대한 사전지식이 필요
하다.