또 운이 좋게도 리뷰 이벤트에 당첨되어서 책을 읽고 리뷰를 할 수 있는 기회를 얻었습니다.
항상 좋은책을 출반해주시는 전통의 명가, 개발자들의 친구 한빛미디어에 감사의 말씀 드립니다.
책이 약간 돌아가고 포커스가 잘 안맞는거같지만 저는 개발자이지 사진작가가 아니기때문에 너그러이 이해해주시면 감사하겠습니다.
리뷰할 책의 표지는 이책입니다.
10월에 출간된 책 치고는 벗꽃 비슷한것이 표지에 보이네요 약간 이해가 안갈수도 있지만 로드존슨 아저씨가 스프링 이름을 춥고 길었던 EJB에 봄이 왔으면 좋겠다는 생각에 지었다는 말을 어디서 봤던거같은데 아마 저자 김영재(young891221@gmail.com)님과 한빛미디어는 봄은 이미 왔고, 스프링 부투로 꽃이 피리란 생각에 이런 표지를 정했는지도 모르겠습니다.
기술서적 리뷰는 처음이라 약간 설레이면서 걱정도 되는데요. 이제 본격적으로 리뷰를 시작해봅시다.
이 책은 크게 이런 목차를 가지고 있습니다.
CHAPTER 1 스프링 부트 입문하기
1.1 스프링 부트 소개
1.1.1 스프링 부트 특징
1.1.2 스프링 부트와 스프링
1.2 커뮤니티 게시판 기능 고안하기
1.3 스프링 부트로 커뮤니티 게시판 설계하기
1.4 스프링 부트 스타터 들여다보기
1.4.1 스타터의 명명규칙 알아보기
1.4.2 스타터 내부의 의존성 확인 방법
1.4.3 스타터에 명시된 버전은 어떻게 확인할까?
1.4.4 스프링 부트 버전에 따라 무엇이 다른지 어떻게 알 수 있을까?
1.4.5 이 책에서 다룰 스타터
1.4.6 스프링 부트 장단점
1.5 마치며
CHAPTER 2 스프링 부트 환경 설정
2.1 JDK 설치하기
2.2 인텔리제이 IDEA 사용하기
2.2.1 커뮤니티 버전과 얼티미트 버전
2.2.2 커뮤니티 버전에서 스프링 부트 사용하기
2.2.3 얼티미트 버전에서 스프링 부트 사용하기
2.3 그레이들 설치 및 빌드하기
2.3.1 그레이들 래퍼
2.3.2 그레이들 멀티 프로젝트 구성하기
2.4 환경 프로퍼티 파일 설정하기
2.4.1 프로파일에 따른 환경 구성 분리
2.4.2 YAML 파일 매핑하기
2.5 자동 환경 설정 이해하기
2.5.1 자동 환경 설정 어노테이션
2.5.2 @EnableAutoConfiguration 살펴보기
2.5.3 자동 설정 어노테이션 살펴보기
2.5.4 H2 Console 자동 설정 적용하기
2.6 마치며
CHAPTER 3 스프링 부트 테스트
3.1 @SpringBootTest
3.2 @WebMvcTest
3.3 @DataJpaTest
3.4 @RestClientTest
3.5 @JsonTest
3.6 마치며
CHAPTER 4 스프링 부트 웹
4.1 커뮤니티 게시판 설계하기
4.2 커뮤니티 게시판 프로젝트 준비하기
4.3 커뮤니티 게시판 구현하기
4.3.1 프로젝트 의존성 구성
4.3.2 스프링 부트 웹 스타터 살펴보기
4.3.3 도메인 매핑하기
4.3.4 도메인 테스트하기
4.3.5 CommandLineRunner를 사용하여 DB에 데이터 넣기
4.3.6 게시글 리스트 기능 만들기
4.3.7 타임리프 자바 8 날짜 포맷 라이브러리 추가하기
4.3.8 페이징 처리하기
4.3.9 작성 폼 만들기
4.4 마치며
CHAPTER 5 스프링 부트 시큐리티 + OAuth2
5.1 배경지식 소개
5.1.1 스프링 부트 시큐리티
5.1.2 OAuth2
5.2 스프링 부트 시큐리티 + OAuth2 설계하기
5.3 스프링 부트 시큐리티 + OAuth2 의존성 설정하기
5.4 스프링 부트 시큐리티 + OAuth2 구현하기
5.4.1 SNS 프로퍼티 설정 및 바인딩
5.4.2 시큐리티 + OAuth2 설정하기
5.4.3 어노테이션 기반으로 User 정보 불러오기
5.4.4 인증 동작 확인하기
5.4.5 페이지 권한 분리하기
5.5 스프링 부트 2.0 기반의 OAuth2 설정하기
5.5.1 스프링 부트 2.0 버전으로 의존성 업그레이드
5.5.2 스프링 부트 2.0 방식의 OAuth2 인증 재설정
5.6 마치며
CHAPTER 6 스프링 부트 데이터 레스트
6.1 배경지식
6.1.1 REST 소개
6.1.2 RESTful 제약 조건
6.1.3 REST API 설계하기
6.2 설계하기
6.2.1 MVC 패턴을 활용하는 방법
6.2.2 스프링 부트 데이터 레스트를 활용하는 방법
6.3 스프링 부트 MVC 패턴으로 REST API 구현하기
6.3.1 준비하기
6.3.2 REST API 구현하기
6.3.3 CORS 허용 및 시큐리티 설정
6.3.4 생성, 수정, 삭제 구현
6.3.5 동작 확인
6.4 스프링 부트 데이터 레스트로 REST API 구현하기
6.4.1 준비하기
6.4.2 기본 노출 전략 살펴보기
6.4.3 스프링 부트 데이터 레스트로 REST API 구현하기
6.4.4 @RepositoryRestController를 사용하여 REST API 구현하기
6.4.5 생성, 수정, 삭제 연동 테스트
6.4.6 프로젝션으로 노출 필드 제한하기
6.4.7 각 메서드 권한 제한
6.4.8 이벤트 바인딩
6.4.9 URI 처리
6.4.10 HAL 브라우저 적용하기
6.5 마무리
CHAPTER 7 스프링 부트 배치
7.1 배경지식
7.1.1 배치 처리에 스프링 부트 배치를 써야 하는 이유
7.1.2 스프링 부트 배치 2.0
7.1.3 스프링 부트 배치 주의사항
7.2 스프링 부트 배치 이해하기
7.2.1 Job
7.2.2 Step
7.2.3 JobRepository
7.2.4 JobLauncher
7.2.5 ItemReader
7.2.6 ItemProcessor
7.2.7 ItemWriter
7.3 스프링 부트 휴면회원 배치 설계하기
7.4 스프링 부트 배치 설정하기
7.5 스프링 부트 휴면회원 배치 구현하기
7.5.1 휴면회원 배치 테스트 코드 생성
7.5.2 휴면회원 배치 정보 설정
7.5.3 SQL로 테스트 데이터 주입하기
7.6 스프링 배치 심화학습
7.6.1 다양한 ItemReader 구현 클래스
7.6.2 다양한 ItemWriter 구현 클래스
7.6.3 JobParameter 사용하기
7.6.4 테스트 시에만 H2 데이터베이스를 사용하도록 설정하기
7.6.5 청크 지향 프로세싱
7.6.6 배치의 인터셉터 Listener 설정하기
7.6.7 어노테이션 기반으로 Listener 설정하기
7.6.8 Step의 흐름을 제어하는 Flow
7.7 멀티 스레드로 여러 개의 Step 실행하기
7.7.1 TaskExecutor를 사용해 여러 Step 동작시키기
7.7.2 여러 개의 Flow 실행시키기
7.7.3 파티셔닝을 사용한 병렬 프로그래밍
7.8 마무리
부록 A 코드 다이어트를 위한 롬복 프로젝트
부록 B 자동으로 LiveReload하는 devtools
부록 C 스프링 부트 빌드와 배포
부록 D 커스텀 배너 설정하기
부록 E 페이스북, 구글, 카카오 개발자센터 연동
이렇게 크게 7가지 부분과 5가지의 부록으로 나뉘어져있습니다.
먼저 앞의 2장은 스프링 부트의 소개, 개발환경 설정방법 이구요
그다음 3장은 설정된 환경을 잘 테스트하여 앞으로 배울 스프링 부트의 여러 기능들에 대해서 살펴보는 준비단계입니다.
이어지는 4, 5, 6, 7장은 각각 웹, 시큐리티, REST, 배치를 다루고 있습니다.
이런 구성을 보면서 저는 정말 적절하다고 느꼇는데요,
스프링을 강력하게 만들어주는 네가지 기능이바로 4,5,6,7장에서 다루어 지고 있는 부분들이라고 생각합니다. 이미 스프링을 사용하고 계신분들은 그 중요성과 필요성때문에 가장 필요한 부분일 것이고, 책의 제목처럼 '처음 배우는'분들에게는 실무에서 접할 가능성이 가장 큰 네가지 라고 생각됩니다.
각각 쳄터는 배경지식 설명 -> 설계 -> 구현 순으로 진행되고있습니다. 해당 챕터들에 대해 처음 보는 분들이시더라도 적절한 설명이있기때문에 큰 문제는 없지만, 해당 키워드로 검색을해서 배경지식을 채우신 후에 책을 읽으시면 시너지 효과가 더 클거라고 생각됩니다.
실습을 통하여 설명을 진행하기 때문에 특별히 어려운점없이 쉽게 이해해가며 스프링부트를 배울 수 있었습니다.
책을 보면서 계속 든 생각중 하나는 '너무 복잡하고 어려운 설정' 때문에 어려워진 스프링을 위해서 '약간의 규약을 따른다며 모든것이 편해진다'라는 개념으로 볼 수 있는 스프링 부트가 나왔지만 결국 스프링부트도 적절하고 효율적으로 사용하려면 규약속에 어떤 의미가 있고, 규칙들이있는지를 알고있어야하며, 좋을 효율을 위해서는 커스터마이징도 필요하다 라는 생각이었습니다.
책에서는 어노테이션들과 설정 등에 대한 설명도 잘 되어있어, 처음 접하는 사람들이 가질 수 있는 의문에 대한 해답도 잘 주고있다고생각합니다.
책에 총평을해보자면 - 웹개발이 처음인사람 / 중급 개발자가 되는 과정에 있는사람 모두에게 적절한 책이라고 생각됩니다. 다만 이미 스프링 부트에 대해 전반적으로 알고계신다면 이책은 리마인드 의 의미 정돌르 가질거같습니다.