nasky***
2018-11-05

구현 순서에 맞춰 프로젝트를 진행하며 배우는 실전 입문서 이 책은 스프링 부트 입문자의 눈높이에 맞춰 스프링 부트 환경 설정부터 커뮤니티 게시판 구현까지를 다룹니다. 스프링 부트의 기본 개념과 다양한 스프링 부트 스타터를 이용해 커뮤니티 게시판 구축 프로젝트를 구현합니다. 스프링을 몰라도 공부할 수 있도록 가능한 한 쉽게 설명하고 따라 할 수 있게 예제 코드와 그림을 제시했습니다
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 페이스북, 구글, 카카오 개발자센터 연동
이 책의 목차는 위와 같이 구성되어 있다.
이 책의 시작은 좋았다.
Chapter 1, 2 까지만 해도 책 소개에 나와 있듯이 스프링 부트 입문자의 눈높이 맞춰 배려하는 느낌이 들어 참 친절한 책
이라고 느껴졌었다.
그러나 Chapter3 부터는 실무에서 사용될 만한 내용을 담으려고 해서였을까? 눈높이가 점점 높아지고, 친절함이 사라지는 느낌
이 들었으며 마지막 장에 가서는 오히려 초반의 느낌과는 정반대로 불친절하다고 느껴질 정도
가 되었다.
전반적으로 실무에서 다룰 만한 기술들(REST API, 소셜 로그인, 배치 등)을 접하게 해준 점은 높게 산다.
그러나, 내용이 진행되면서 책 소개에서 언급한 대상이 아닌 다른 대상을 바라보고 책을 쓰고있다라는 느낌을 지울 수 없었다.
대상 독자의 기준이 저자와의 시선차이 일 수 있으나, 이런 생각을 가진 사람들이 더 있다면 대상 독자를 어느 수준으로 바라볼지에 대해 다시 한번 고민해볼 필요가 있을듯 하다.
소스코드도 막연히 따라쳐서는 안되는 경우가 많았는데, 이 부분은 보완이 필요할 것이라고 생각된다.
좋은 소재이나, 그 소재를 풀어나가는데 있어서 조금 더 친절했으면 좋겠다.
운전 연습을 시켜주겠다던 친절한 친구가, 다른 차를 보더니 갑자기 핸들을 잡고 엑셀레이터를 밟아버리는 친구의 이면을 보는듯한 느낌의 책이였다.