bae***
2020-05-31

스프링 부트로 웹 개발을 할 때 마주치는 문제를 속 시원하게 해결하고 싶다면 이 책이 답이다. 스프링 부트에서 자주 발생하는 문제의 해결 방법부터 웹플럭스 사용법까지 실무에 꼭 필요한 내용만 담았다.
현재 여러 IT 산업 분야에서 사용하는 인기 있는 자바 기반 엔터프라이즈 프레임워크라면 단연코 스프링 프레임워크가 그 선두다. 특히, 웹 개발에서 스프링 프레임워크는 그 의존도가 매우 커서 대부분의 시스템 통합 업체에서 개발 엔지니어 채용 시 반드시 체크하는 기술 요소이기도 하다.
Spring Boot는 다음과 같은 장점들이 있다.
- Spring Application을 단독으로 실행할 수 있다.
- 기본 설정이 되어 있는 스타터 컴포넌트를 제공한다.
- 설정을 위해 일일이 XML 코드를 생성하거나 설정해야 하는 번거로움이 없다.
이처럼 Spring Boot는 Spring Framework를 사용해 보다 쉽게 애플리케이션을 개발할 수 있어 실제로 프로젝트 개발 일정 등에 기여하는 바가 크다. 그렇기에 스프링을 사용하는 자바 개발자라면 반드시 알아두어야 할 기술임이 틀림없다.
<배워서 바로 쓰는 스프링 부트2>는 실전 경험을 통해 얻은 지식과 노하우를 바탕으로 스프링 부트를 어떻게 활용하는지 예제를 통해 구체적으로 알려준다. 이 책을 통해 실제 현장에서 사용하는 스프링 부트의 전반적인 기술을 이해할 수 있다.
<배워서 바로 쓰는 스프링 부트2> 책은 스프링 입문서를 읽고 튜토리얼을 따라 해봤지만, 프로젝트에 적용하기 어렵거나 더 나은 방법이 없는지 고민하며 실무 활용 방법을 찾는 사람을 위한 책이다. 스프링과 스프링 부트를 모르는 독자라면 내용의 수준이 다소 높을 수 있다.
<배워서 바로 쓰는 스프링 부트2>책은 여러 프로젝트에서 발생한 문제 해결 방법을 다른 멤버에게 설명하고 공유하기 위해 만든 예제 프로젝트를 토대로 실항하기 때문에 매우 실용적인 노하우를 다룬다. 이 책을 읽고 이해하지 못한 부분이 있다면, 참고 문헌에 기재된 입문서나 공개된 문서를 찾아보면서 읽으면 더 효과적이다.
<1장 스프링 부트의 구성>은 스프링/스프링 부트 프로젝트 구성을 설명한다. 스프링 부트의 기초 / 웹 애플리케이션 개발 / 예제 프로젝트의 구성을 살펴보며, 특히 웹 애플리케이션의 디렉터리 구조를 설명한다.
<2장 웹 애플리케이션의 공통 처리>는 웹 애플리케이션을 구축할 때 기능 사양에 의해 변경이 발생하지 않는 공통 처리 부분을 설명한다. 유효성 검증, 객체 매핑, 로그 출력, 파일 다운로드, 파일 업로드, 메일 송신이 있다.
<3장 데이터 액세스>는 데이터베이스 액세스 라이브러 통합과 이용 방법을 설명한다. Spring data jpa로는 프로그램에서 실행되는 SQL을 떠올리기 어렵다라는 문제가 있었기에 이 책에서는 Doma2라는 O/R mapper를 사용한다. 엔티티 공통 처리, 페이징 처리, 논리 삭제 등을 통해 알아보자.
<4장 보안>은 스프링 시큐리티의 사용법과 응용법을 설명한다. 스프링 시큐리티는 입문서나 가이드라인이 있지만, 실제로 이를 응용하려고 하면 난관에 봉착한다. 실제 프로젝트에서 고민한 내용을 설명한다. 인증, 이중 송신 방지 등을 포함한다.
<5장 화면 개발>은 Thymeleaf를 사용한 화면 개발 방법을 설명한다. 다국어 대응 등 실제로 문제가 되었던 내용을 설명한다. 타임리프, 폼 바인딩, 전처리, 정적 콘텐츠 관리하기 등이 있다.
<6장 API 개발>은 REST API 제작법과 호출 방법을 설명한다. 스프링 부트를 이용한 API 개발 및 연계, API 개발 효율 극대화를 살펴보자.
<7장 팀 개발>은 Spring/Spring Boot의 내용을 넘어서 팀 개발에 필요한 환경, 데이터베이스의 구성관리, 단위 테스트 실시 방법을 설명한다. 인프라 구성 관리, 데이터베이스 구성 관리, 유지보수 가능한 테스트 코드, 문서 생성 도구 활용, 소스 생성기를 익힐 수 있다.
<8장 운용>은 운용 시 문제가 생길 만한 부분을 방지하고 해결하는 방법을 설명한다.
환경별 설정 관리, 애플리케이션 서버 설정, 애플리케이션의 상태 확인, 애플리케이션 모니터링, 요청 추적, 지연 시간 분석, 무정지 배포, 컨테이너 오케스트레이션 배포와 같이 실제 현업에서 사용하는 방법을 익힐 수 있다.
<9장 시스템 아키텍처 구성>은 스프링 부트를 사용한 애플리케이션을 적절히 배치하기 위한 시스템 구성 방법을 설명한다. 최근 컨테이너 기술이나 클라우드 기술은 개발 환경에서 충분히 사용할 만하다. 스프링 부트의 애플리케이션을 클라우드의 컨테이너에 탑재하는 방법을 설명한다.
<10장 스프링 5와 스프링 부트 2의 신기능> 스프링5와 스프링 부트2에서 새롭게 적용된 WebFlux에 대해 간단히 설명한다. 웹플럭스는 앞으로 중요해질 것이므로 이론을 이해해두면 좋을 것이다.
<11장 로컬 개발 환경 구축>은 예제 프로젝트를 이용한 개발 환경 구축 방법을 소개한다. Git 설치, 예제 프로젝트 다운로드, Docker 설치, JDK 설치, IDE 설치를 포함한다.
<12장 예제 애플리케이션>은 예제 프로젝트의 이용 방법과 제공 기능을 간단히 소개한다.