메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

처음 배우는 스프링 부트 2

처음 배우는 스프링 부트 2

커뮤니티 게시판을 구현하며 배우는 입문부터 보안까지

한빛미디어

집필서

판매중

  • 저자 : 김영재
  • 출간 : 2018-10-01
  • 페이지 : 336 쪽
  • ISBN : 9791162241264
  • 물류코드 :10126
  • 초급 초중급 중급 중고급 고급
4점 (16명)
좋아요 : 20

구현 순서에 맞춰 프로젝트를 진행하며 배우는 실전 입문서

 

이 책은 스프링 부트 입문자의 눈높이에 맞춰 스프링 부트 환경 설정부터 커뮤니티 게시판 구현까지를 다룹니다. 스프링 부트의 기본 개념과 다양한 스프링 부트 스타터를 이용해 커뮤니티 게시판 구축 프로젝트를 구현합니다. 스프링을 몰라도 공부할 수 있도록 가능한 한 쉽게 설명하고 따라 할 수 있게 예제 코드와 그림을 제시했습니다.

* 물론 자바를 사용할 줄은 알아야 합니다.

 

이 책의 구성

이 책은 1장과 2장에서 스프링 부트를 알아보고 개발 환경을 설치합니다. 3장부터 7장까지는 커뮤니티 사이트를 만듭니다. 이 과정에서 스프링 부트에서 제공하는 스타터를 사용하여 구현합니다. 해당 프로젝트를 어떠한 구조로 설계할지 어떠한 코드를 쓰는지 예제를 통해 알게 될 겁니다.

 

[ 1장 스프링 부트 입문하기 ]

스프링 부트의 다양한 스타터를 살펴보며 각 의존성과 부가 정보를 어떻게 확인하는지 알아봅니다. 이를 위해 스프링 부트 프로젝트의 특징을 이해하고 스프링 부트를 이용해서 어떻게 프로젝트를 구성하고 개발하는지 살펴봅니다.

 

[ 2장 스프링 부트 환경 설정 ]

스프링 부트 개발 환경을 구축합니다. JDK를 설치하고 인텔리제이 IDEA를 살펴봅니다. 아울러 그레이들(Gradle)로 빌드하고 멀티 프로젝트를 구성하여 공통 사용되는 코드를 재활용합니다. 이어서 1장에서 살펴보았던 분산된 의존성이 어떻게 하나로 모아져 자동 설정되는지도 알아보겠습니다.

 

[ 3장 스프링 부트 테스트 ]

기본적인 테스트 스타터를 알아봅니다. 스타터는 크게 두 가지 모듈로 구성됩니다. 하나는 spring-boot-test이고 다른 하나는 spring-boot-test-autoconfigure이며 테스트 관련 자동 설정 기능을 제공합니다. 보통은 spring-boot-starter-test로 두 모듈을 함께 사용합니다. 자주 사용하는 어노테이션도 살펴봅니다.

 

[ 4장 스프링 부트 웹 ]

스프링 부트 웹을 이용하여 커뮤니티 게시판을 만듭니다. 스프링 부트 웹은 주로 뷰 페이지나 API 용도로 사용합니다. 이 장에서는 커뮤니티 게시판의 뷰 페이지를 만드는 방법을 다루고 API는 7장에서 스프링 부트 데이터 레스트(REST)를 사용하여 다룹니다.

 

[ 5장 스프링 부트 시큐리티 + OAuth2 ]

스프링 부트 1.5 버전에서 지원하는 스프링 시큐리티와 OAuth2 API를 빠르고 쉽게 적용해봅니다. 2.0 버전부터는 스프링 시큐리티 내부에 OAuth2 API가 포함되었습니다. 두 가지 버전 모두 알아봅니다.

 

[ 6장 스프링 부트 데이터 레스트 ]

REST는 웹의 장점을 극대화하는 통신 네트워크 아키텍처입니다. REST API 개발을 기존의 MVC 패턴으로도 해보고, 스프링 부트 데이터 레스트를 사용하여 개발하며 어떻게 다른지 장단점을 비교합니다. 그 결과 제대로 REST API를 만드는 방법을 익히게 됩니다.

 

[ 7장 스프링 부트 배치 ]

스프링 부트 배치는 백엔드의 배치 처리 기능을 구현하는 데 사용하는 프레임워크입니다. 스프링 부트 배치를 간단히 소개하고, 스프링 부트 배치를 써야 하는 이유와 스프링 부트 배치 2.0에 강화된 기능에 대해 알아봅니다. 끝으로 휴면회원 전환 기능을 직접 개발해봅니다.

 

[ 부록 ]

스프링 부트로 개발하는 데 부가적으로 필요한 '코드 다이어트를 위한 롬복 프로젝트', '자동으로 LiveReload하는 devtools', '스프링 부트 빌드와 배포', '커스텀 배너 설정하기', '페이스북, 구글, 카카오 개발자센터 연동'을 다룹니다.

 

상세이미지.jpg

 

 

김영재 저자

김영재

평범한 IT 연구원으로 무난하게 지내다가 교육 분야에 관심을 가지며 모바일 애플리케이션 ‘바로풀기’를 개발한 에듀테크 스타트업 바풀의 CTO가 되었다. 바풀이 네이버/LINE에 인수된 후 기술 전문 임원인 ‘펠로우’로 재직 중이다. 여러 프로덕션 조직을 이끌면서 업무 프로세스, 팀워크, 자동화, 아키텍처에 관심을 가지고 있다.

 

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 페이스북, 구글, 카카오 개발자센터 연동 

스프링 부트를 활용해 처음 개발을 시작하였을 때 이전보다 빠른 설정을 할 수 있어서 굉장히 만족했던 기억이 납니다. 그러나 간단히 사용할 수 있다 하여 스프링을 이해하지 않고 적용할 수 있는 것은 아니었습니다. 특수 상황에서는 스프링 부트의 자동 설정 효과를 보지 못할 수도 있습니다. 그러나 스프링 부트가 왜 등장하였고 어떻게 개발되었는지 이해하면 대부분의 경우 장점이 많다는 것을 알게 됩니다. 아직 시작하지 않은 분이 있다면 이 책을 통해 스프링 부트 2를 접해보시길 추천드립니다.

- 장소현, 카카오페이 서버 개발자

 

스프링 3를 주로 사용하다가 요즘엔 스프링 부트를 사용하고 있습니다. 스프링 부트 덕분에 많이 편리해진 개발 환경에 놀라고 있습니다. 이 책은 스프링 부트의 최신 버전을 다루고 있으며, 꼭 필요한 필수적인 스프링 프로젝트(Web, Security, Batch)를 튜토리얼 형식으로 소개하고 있기 때문에 처음 접하는 분뿐만 아니라 기존 사용자에게도 좋은 책입니다. 모두 즐거운 개발 되세요!

- 한상곤, Favorie 서버 개발자

 

기존 스프링 환경을 사용하시는 분들께서 스프링 부트로 넘어가지 않는 이유로 2가지를 얘기합니다. 하나는 대규모 트래픽에서 버틸 수 있는가 하는 것이고, 다른 하나는 내가 모르는 설정이 되어 있는 것 아닌지 불안하다는 겁니다. 저자는 하루 2천만 이상의 PV가 발생하는 서비스를 스프링 부트로 개발하고 운영한 경험이 있습니다. 그 경험과 노하우가 이 책에 담겨 있다고 생각합니다. 그간 여러 가지 이유로 스프링 부트를 사용하지 못하셨던 분들에게 좋은 길잡이가 되리라 생각합니다.

- 이동욱, 우아한형제들 서버 개발자

 

2005년에 IT 서적을 2권 집필했고 최근에 다시 집필의 꿈을 꾸고 있습니다. 그런데 우연히 이 책의 베타리딩 기회를 얻게 되어 즐거웠고 새로운 의욕을 얻는 시간이었습니다. 지금은 모바일 SDK 개발 직무를 맡고 있지만 스프링 프레임워크 3.x ~ 4.x 시절에 느꼈던 스프링 프레임워크의 경험은 ‘스프링은 설정이 반이다’였습니다. 스프링 부트는 설정을 줄이고 컨테이너를 내장하여 최근 트랜드로 부상하고 있습니다. 이 책으로 스프링 프레임워크에서 스프링 부트로 넘어가는 발판을 마련해보시기 바랍니다.

- 김형구, 데브시스터즈 시니어 개발자

 

스프링 프레임워크를 처음 시작하시는 분들은 개발 환경 설정에서 많이 힘들어합니다. 스프링 부트는 개발 환경을 자동으로 구성해주고 개발을 빠르게 시작할 수 있게 도와줍니다. 요즘은 마이크로서비스 아키텍처로 빠른 개발을 하는 데 스프링 부트만한 것이 없다고 생각합니다. 이 책은 스프링 부트 2 최신 버전을 소개하고 있는데, 실무에 적합한 예제로 구성되어 있고, 메서드, 코드, 플로 설명이 쉽게 되어 있어 입문자도 부담 없이 쉽게 스프링을 접할 수 있을 겁니다. 스프링 부트를 처음 시작하시는 분들께 꼭 한번 읽어보시길 추천합니다.

- 이석곤, 엔컴 서버 개발자

스프링 부트2 를 처음 배우는 사람을 대상으로 낸 책은 맞지만..

그 대상이 스프링을 마스터하고 스프링 부트2로 넘어가려는 사람인 것 같습니다.

 

저는 스프링을 공부하자마자 스프링 부트로 넘어가려고 이 책을 삿지만 너무 설명이 어렵습니다..

DI, AOP 등과 같은 기본적인 스프링 지식을 알고 있어야 겨우 따라갈 수 있습니다.

 

만약 스프링을 선행하지 않고 바로 스프링 부트를 배우고 싶다면 이 책을 절.대.로 추천하지 않습니다.

책이 기본적으로 난이도가 좀 있고 기초적인 설명은 하나도 안나옵니다.

초보자를 위한 기초적인 내용을 다룬 책이라기 보다, 스프링을 써오던 사람을 대상으로

"스프링 부트에서는 이렇게 하면 스프링에서 하던거 보다 더 빠르고 쉽습니다~" 라고 알려주는 느낌입니다.

 

 

오늘 리뷰할 도서는 처음배우는 스프링부트2(한빛미디어) 입니다.

전통의 명가 한빛미디어에서 스프링부트2 초보자를 위한 책이 나왔습니다. 

또 운이 좋게도 리뷰 이벤트에 당첨되어서 책을 읽고 리뷰를 할 수 있는 기회를 얻었습니다. 

항상 좋은책을 출반해주시는 전통의 명가, 개발자들의 친구 한빛미디어에 감사의 말씀 드립니다. 


책이 약간 돌아가고 포커스가 잘 안맞는거같지만 저는 개발자이지 사진작가가 아니기때문에 너그러이 이해해주시면 감사하겠습니다. 

리뷰할 책의 표지는 이책입니다. 

10월에 출간된 책 치고는 벗꽃 비슷한것이 표지에 보이네요 약간 이해가 안갈수도 있지만 로드존슨 아저씨가 스프링 이름을 춥고 길었던 EJB에 봄이 왔으면 좋겠다는 생각에 지었다는 말을 어디서 봤던거같은데 아마 저자 김영재(young891221@gmail.com)님과 한빛미디어는 봄은 이미 왔고, 스프링 부투로 꽃이 피리란 생각에 이런 표지를 정했는지도 모르겠습니다. 


기술서적 리뷰는 처음이라 약간 설레이면서 걱정도 되는데요. 이제 본격적으로 리뷰를 시작해봅시다. 


이 책은 크게 이런 목차를 가지고 있습니다. 

CHAPTER 1 스프링 부트 입문하기

더보기

 

CHAPTER 2 스프링 부트 환경 설정

더보기

 

CHAPTER 3 스프링 부트 테스트

더보기

 

CHAPTER 4 스프링 부트 웹

더보기

 

CHAPTER 5 스프링 부트 시큐리티 + OAuth2

더보기

 

CHAPTER 6 스프링 부트 데이터 레스트

더보기

 

CHAPTER 7 스프링 부트 배치

더보기

 

부록 A 코드 다이어트를 위한 롬복 프로젝트 

부록 B 자동으로 LiveReload하는 devtools 

부록 C 스프링 부트 빌드와 배포 

부록 D 커스텀 배너 설정하기 

부록 E 페이스북, 구글, 카카오 개발자센터 연동  


이렇게 크게 7가지 부분과 5가지의 부록으로 나뉘어져있습니다. 

먼저 앞의 2장은 스프링 부트의 소개, 개발환경 설정방법 이구요 

그다음 3장은 설정된 환경을 잘 테스트하여 앞으로 배울 스프링 부트의 여러 기능들에 대해서 살펴보는 준비단계입니다. 


이어지는 4, 5, 6, 7장은 각각 웹, 시큐리티, REST, 배치를 다루고 있습니다. 

이런 구성을 보면서 저는 정말 적절하다고 느꼇는데요, 

스프링을 강력하게 만들어주는 네가지 기능이바로 4,5,6,7장에서 다루어 지고 있는 부분들이라고 생각합니다.  이미 스프링을 사용하고 계신분들은 그 중요성과 필요성때문에 가장 필요한 부분일 것이고, 책의 제목처럼 '처음 배우는'분들에게는 실무에서 접할 가능성이 가장 큰 네가지 라고 생각됩니다. 

각각 쳄터는 배경지식 설명 -> 설계 -> 구현 순으로 진행되고있습니다. 해당 챕터들에 대해 처음 보는 분들이시더라도 적절한 설명이있기때문에 큰 문제는 없지만, 해당 키워드로 검색을해서 배경지식을 채우신 후에 책을 읽으시면 시너지 효과가 더 클거라고 생각됩니다. 


실습을 통하여 설명을 진행하기 때문에 특별히 어려운점없이 쉽게 이해해가며 스프링부트를 배울 수 있었습니다. 


책을 보면서 계속 든 생각중 하나는 '너무 복잡하고 어려운 설정' 때문에 어려워진 스프링을 위해서 '약간의 규약을 따른다며 모든것이 편해진다'라는 개념으로 볼 수 있는 스프링 부트가 나왔지만 결국 스프링부트도 적절하고 효율적으로 사용하려면 규약속에 어떤 의미가 있고, 규칙들이있는지를 알고있어야하며, 좋을 효율을 위해서는 커스터마이징도 필요하다 라는 생각이었습니다. 


책에서는 어노테이션들과 설정 등에 대한 설명도 잘 되어있어, 처음 접하는 사람들이 가질 수 있는 의문에 대한 해답도 잘 주고있다고생각합니다. 


책에 총평을해보자면 - 웹개발이 처음인사람 / 중급 개발자가 되는 과정에 있는사람 모두에게 적절한 책이라고 생각됩니다. 다만 이미 스프링 부트에 대해 전반적으로 알고계신다면 이책은 리마인드 의 의미 정돌르 가질거같습니다. 


이상 예지우랑의 처음해보는 스프링 부트2 리뷰였습니다.

감사합니다. 


 



출처: http://devms.tistory.com/59 [자전거타는프로그래머]

우선 리뷰를 시작하기 전에 필자가 Spring framwork를 접해본 경력을 말해보겠다. 국비지원학원에서 호스팅까지 완료한 프로젝트를 한 번 진행해본 적이 있고, N사에서 진행했던 boostcourse라는 온라인 교육프로그램에 참여한 적이 있다. (끝까지 수료하지 못했고 프로젝트 6개 중 3개를 진행하고 중단하였다.) spring을 잘 안다고 할 수는 없고, 혼자 공부했던 학부생 정도의 수준이라고 보면 적당한 표현이지 않을까 싶다.

우연인지 필연인지, 현재 다니고 있는 직장에서도 본의 아니게 외주 업체의 spring framework로 만들어진 프로젝트를 수정해야하는 상황이 와서 만지고 있다.

지금까지 스프링 프레임워크를 경험하면서 가장 짜증났던 점은 ‘환경 설정’이다. 잦은 eclipse의 오류, 라이브러리 하나를 쓰기 위해서 거쳐야 하는 수 많은 파일 변경과 클린 빌드에 걸리는 오랜 시간… 정말 코드를 작성하기까지 너무나도 많은 준비가 필요했다.

문제는 이런 에러들이 일어나는 근본적인 원인을 알아야 에러가 재발생하거나 유사한 오류가 발생하면 해결을 할 수 있는데, 시간이 없는 나는 구글링을 통한 주먹구구식 해결로 상황을 넘어가고 있다는 것에 있었다.

그래서 기존 spring framework의 환경설정을 간략화해서 나온 spring boot에는 관심이 갈 수 밖에 없었고, 좋은 기회가 오게되어 이번에 새로 출간된 ‘처음 배우는 스프링 부트 2’를 리뷰할 수 있는 자격이 주어졌다.

지원을 받아 작성된 리뷰이지만, 가식적인 리뷰는 소비자에게 전혀 도움이 되지 않기도 하고 필자에게 딱히 돌아오는 이득도 없으므로 굉장히 솔직하게 작성했다는 점을 먼저 밝힌다.

이 책을 한 마디로 요약 하면 개발자의 ‘자생력’을 키워주는 책이다.

스프링 부트를 어떻게 사용하고의 문제가 아니라 훨씬 근본적인 내용을 다룬다. 이러한 것을 보면서 저자의 내공이 얼마나 깊은 지를 알 수 있었다. 책의 내용 중에 스프링 부트가 어떻게 자동 환경 설정을 하는 지에 대해 다루는 부분이 있다. 사실 책을 더 읽어보면 이러한 자동 환경 설정 원리는 개발자가 크게 신경쓰지 않아도 된다. 클릭 한 번이면 해당 작업을 스프링 부트에서 모두 알아서 해주기 때문이다. 일반적인 책이었다면 아마 이렇게 어려운 동작 원리 따위는 나중에 추가적으로 공부해보라고 하면서 넘어갔을 것이다. 그런데 왜 저자는 따로 지면을 할애하여 이러한 섹션을 넣은 것일까?

이 질문에 대한 답을 책에 있는 저자의 말을 인용해서 대신해본다.

‘동작 원리가 어떻게 추상화되었는지 내부 코드를 통해 파악하면 이 과정을 좀 더 깊게 이해할 수 있기 때문입니다. 스프링 부트의 자동 설정을 정확하게 파악했으니 이제 스프링 부트를 부트답게 설정해 더 효율적으로 사용하는 방법을 알아보겠습니다.’

이 두 문장을 간략하게 말해보자면

  1. 동작 원리를 이해해야
  2. 스프링 부트를 내 입맛대로 바꿔서 활용할 수 있다.

라고 할 수 있겠다.

내가 지금까지 스프링 프레임워크를 다루면서 고통스러웠던 이유는 스프링 프레임워크가 내부적으로 어떻게 돌아가는 지를 알지 못했기 때문이고, 이러한 깊은 부분을 나의 능력으로는 탐구할 수 없었기 때문이다. 아마 대부분의 주니어 개발자 혹은 스프링 프레임워크를 처음 접하는 많은 사람들이 나와 같은 상황일 것이다. 그런데 이 책은 우리의 부족함을 메꿀 수 있도록 스프링 부투의 구체적인 동작 원리와 어떻게 소스 코드를 찾아서 읽고 이해해야 하는지를 알려준다. 필자는 이러한 부분의 차이가 초급, 중급 개발자를 가르는 기준이라고 생각한다. 만약 필자가 스프링 프레임워크를 배울 때 이렇게 직접 소스 코드를 되짚어 가며 이해를 하는 방법을 알려준 자료 혹은 스승이 있었다면 실력을 더 향상시킬 수 있지 않았을까 하는 생각이 든다.

책을 읽으며 느낀 장단점을 간단하게 정리해보겠다.

장점

  • 위에서 말했듯이 ‘자생력’을 키워준다. 스프링 부트의 버전이 달라질 때마다 어떻게 변경사항을 확인해야하는지부터 알려주고 시작한다. 즉, 스프링 부트를 배우는 사람들이 직접 변경된 소스를 찾아보고 읽으면서 성장할 수 있는 ‘자생력’을 길러주는 것.
  • 스프링 프레임워크에서 가장 까다로운 부분은 환경설정 부분이다. 아무리 스프링 부트로 넘어왔다고 해도, 커스텀을 위해서는 각 설정이 의미하는 부분을 알아야하는데 이 책에서는 혹시나 독자가 각각의 환경 설정에 대해 모를 경우를 대비해 설정 하나하나 놓치지 않고 의미를 설명하고 있다.
  • 프로젝트 기반 설명. 현재 동작하는 최신 버전으로 내용이 구성되어 있기 때문에 실제로 내가 진행하는 스프링 부트 프로젝트에 활용할 수 있다. 또한 막히는 부분이 있으면 끙끙댈 필요없이 깃허브에서 예제코드를 받아 비교하면 된다. 혼자 막힘없이 공부할 수 있다는 것은 굉장히 효율적으로 시간을 쓸 수 있게 만들어 준다.
  • 데이터, api의 흐름을 설명해준다. 스프링 부트는 기존 스프링 프레임워크를 축약해놓은 것이다. 따라서 기존에 스프링 프레임워크에서 사용하던 프로젝트의 데이터와 api의 흐름을 파악 할 수 없다면 어떻게 이 프로젝트가 돌아가는 건지 이해하기 힘들다. 그런데 이 책에서는 도표와 이미지 자료를 풍부하게 활용하여 데이터와 api의 흐름을 먼저 이해하고 상세한 부분으로 넘어가게 하고 있다.

단점

  • 어느 정도 진입 장벽이 존재한다. 기본적으로 spring framework 4를 통해 프로젝트를 진행해본 사람이어야 원활한 이해가 가능하지 않을까 싶다. spring framework를 간략화해놓은 spring boot이지만, 그래도 생소한 개념들이 너무 많이 나온다.
  • 또한 소스 코드를 무리 없게 이해할 수 있는 Java에 대한 이해도(객체지향언어에 대한 이해)가 선수되어야 한다.
  • 생각보다 많은 오류에 직면할 수 있다. 스프링 프레임워크에 대한 환경 설정 오류는 정말 많다. 책에서 다루지 않은 에러도 발생할 수 있는데, 이런 부분을 혼자 해결 할 수 있는 능력이 있어야 원활하게 프로젝트를 따라하면서 공부할 수 있다.

사실 책을 읽으면서, 완성도에 꽤나 놀랐다. 내가 스프링 프레임워크를 책으로 배울 때는 그냥 코드를 따라하면서 배웠던 것 같은데, 이 책은 읽는 사람의 사고력까지 올려주는 것 같았다. 그만큼 저자분이 목차부터 내용까지 섬세하게 신경쓰셨기 때문이리라.

개인적으로 이 책을 추천하는 대상 독자는 다음과 같다.

‘기존 스프링 프레임워크의 환경설정에 대한 시간 낭비를 줄이고, 빠른 시간에 로직에 집중하여 웹앱을 완성해보고 싶은 주니어 웹 개발자’

만약 당신이 웹 개발자이고 스프링 프레임워크를 다루고 있다면, 스프링 부트는 선택이 아닌 필수가 될 것이다. 당신 자신과 회사를 위해서 한 단계 더 실력있는 중급 개발자로 거듭나고 싶은 사람이라면 이 책을 눈여겨 보시길. 

yes24 구매 링크 : 처음 배우는 스프링 부트 2

이 책은 그냥 스프링 부트2에 대해 기초를 샅샅이 훑어간다는 개념보다는 커뮤니티 게시판을 구현하면서 입문 부터 보안까지 코드로 경험해보는 책이다

개인적으로도 레퍼런스 책도 있으면 개발할때 참조할 때 보면 좋기는 하지만
 
내가 처음 써보는 프레임웍이나 언어에 대해서 레퍼런스 서적을 보면서 개발하기란 정말 쉽지 않다
연관된 라이브러리들이라던가 개발 노하우를 처음 쓰는 프레임웍이나 언어에서 펼쳐내기란 쉽지 않기 때문이다
 
그래서 이런 하나의 간단한 시스템을 만들어보면서 저자의 노하우를 녹여 낸 따라하기 서적이 매우 유용하다
 
저자가 사용한 라이브러리 정보나 코드들을 기록해두고 실무에 활용하면 굉장히 유용하기 때문이다
 
요즘 솔직히 JS기반(Angular, React, Vue, Node) 기반 언어만 다루다 보니 JAVA, Spring 기반으로 개발을 안한지 거의 1년정도됐다
 
요즘 JAVA 서버 개발언어로는 Spring 프레임웍이 거의 필수이다 그 중 요즘은 MSA가 대세인 관계로 작고 마이크로 하게 서버를 구성할 수 있는 SpringBoot 가 완전 대세이다
 
거기다 SpringBoot 2.1이나오고 그 뼈대인 Spring이 5가 나오면서 함수형 프로그래밍과 Reactive 한 프로그래밍을 굉장히 강조하는 쪽으로 업데이트가 되고 있다
 
아직 Java언어는 최고 인기 있는 언어중 하나이다 Spring 뿐만 아니라 모바일에서는 Kotlin 언어가 아주 핫 하게 쓰이고 있다
 
예제 소스는 아래의 저자의 깃 허브 주소로 가면 받을 수 있다
 
이 책은
1장 스프링 입문하기
2장 스프링 부트 환경 설정
3장 스프링 부트 테스트
4장 스프링 부트 웹
5장 스프링 부터 시큐리티 + OAuth2
6장 스프링 부트 데이터 레스트
7장 스프링 부트 배치
부록
 
으로 주제를 나누고 있다
 
각 챕터별로 그렇게 길지 않고 책 전체 페이지수가 336페이지에 불과하다
일반적인 스프링 부트 서적들에 비해 압도적으로 얇은 페이지 수다
 
주저리 주저리 이론을 설명하기 보단 아주 핵심만 다루면서 실전 코드로 진행하는 식이다
 
그리고 IDE도 Eclipse 가 아닌 Jetbrain 사의 Intellij 기반으로 진행한다는 것도 마음에 든다
요즘 Eclipse 안쓴지도 한 백만년된 것 같다 솔직히 Eclipse 가 안좋은 것은 아니지만
Jetbrains 사의 IDE툴들이 정말 압도적으로 좋다
 
써보면 안다 ..
상세한 리뷰는 아래의 링크를 참조
https://blog.naver.com/rock1192/221400849537

 

CHAPTER 1 스프링 부트 입문하기
CHAPTER 2 스프링 부트 환경 설정
CHAPTER 3 스프링 부트 테스트
CHAPTER 4 스프링 부트 웹
CHAPTER 5 스프링 부트 시큐리티 + OAuth2
CHAPTER 6 스프링 부트 데이터 레스트
CHAPTER 7 스프링 부트 배치

 

이 책을 읽었을 때 1,2 장 외에 3장부터 7장까지의 내용이 매우 마음에 들었습니다.


스프링 레거시만 하던 저에게 분명히 신선한 충격이었고, 


3장 이후의 새로운 어노테이션 및 게시판을 만들 수 있는 REST적인 방식 또한 매우 마음에 들었습니다.


또한 분명히 게시판이 서비스가 커지면 어떻게 유지할 수 있는지 까지 알려준 좋은 책이었습니다.

 


아쉬운 점은 오탈자와 , 부록이 있었던 순서가 조금 아쉽긴 하였습니다.


하지만 오타가 메꿔지고 부록 순서가 바뀔 2쇄가 매우 기대되는 책이었습니다.


부트 기초를 익힐 때 개인적으로 매우 추천하고 싶던 책 이었습니다.


 

감사합니다.

 

우선 내 상황을 밝히자면 

 

스프링을 이용하여 프로젝트를 진행한 경험이 있고,

 

현재 회사에서 근무하며 스프링 부트를 실무에 적용하기 위한 공부를 하는 중이다.

 

 

500페이지가 넘어가는 책은 아무래도 가볍게 읽기에 부담스러운데

 

이 책은 약 300페이지로 구성되어 있어 큰 압박감 없이도 쉽게 책꽂이에서 꺼내들 수 있다.

 

 

아예 스프링조차도 처음 접하는 사람에게 이 책이 어떻게 다가갈지는 모르겠으나

 

나는 이미 스프링을 써보고 부트로 넘어가는 개념으로 접하는 터라 

 

범접할 수 없는 엄청난 난이도가 있다고 느끼지는 않았다.

 

(그렇다고 이 책을 100% 다 이해했다는 뜻은 아니다)

 

 

책을 가볍게 훑으면서 예제 소스를 따라치다보면 프로젝트 하나가 완성되므로

 

'처음 배우는' 사람들도 재밌게 공부할 수 있으리라 생각된다.

 

 

핵심은 뒷부분에 있다. RESTfull과 배치에 대한 부분.

 

실무에서 RESTfull에 대한 것은 피할래야 피할 수 없는 영역이다.

 

REST가 무엇이고, 어떻게 해야 구성할 수 있는지에 대해 50쪽 분량으로 설명하고 있는데

 

기존 방식과 스프링부트 데이터 레스트를 사용하여 개발하는 방식의 차이, 장단점에 

 

대해 설명하고 있어 매우 유익하다고 느꼈다.

 

또한 배치에 대한 부분은 꽤나 상세한 편인데 쉽지는 않지만 반드시 잘 짚고 넘어가야 하고,

 

그런 면에 있어 이 책이 중요한 길잡이가 되리란 생각이 든다.

 

예제 소스 따라 치며 직접 구현해보고 난 뒤, 참 잘 만든 책이구나 하고 생각했다.

 

 

 

다른 기존 책들에 비해 얇고, '처음 배우는' 사람을 위한 책이지만 

 

그렇다고 내용까지 마냥 깃털처럼 가볍지 않다.

 

스프링을 아예 처음 접하는 사람이라면

 

이 책을 통해 부담감 없이 입문하여 더 큰 지식으로 향해가기 위한 발판을 다질 수 있을 것이고,

 

기존 스프링을 접했던 사람이라면 그 차이점에 대해 분명하게 얻어갈 수 있을 것이다.

스프링 부트를 처음 접하시는 분들을 위한 책인거 같습니다.

 

처음 부트를 사용하는 사람들이 가장 궁금해하는 부분을 예제을 잘 활용해서 설명해주셨지만,

 

좀 더 상세한 설명이 있었으면 좋았을텐데, 그런 부분이 많이 빠져있어서 아쉽습니다.

 

 

11월도 행운의 달인가!
역시 좋은 서적을 포스팅 할 수 있게 해주신 한빛미디어 관계자분께
깊은 감사의 인사를 드리며 이번달도 파이팅있는 포스팅을 시작하겠다.
     

 

이번에 리뷰할 서적은 '처음 배우는 스프링 부트 2'다.
커뮤니티 게시판을 구현하며 배우는
입문부터 보안까지

 


 

1.jpg


 

2.jpg


 

3.jpg


 

이 책의 저자분께선 줌 인터넷에서 스프링 부트로 개발/운영하며 쌓은 노하우를 통해 스프링 부트 관련 내용을 공유하고 책을 쓰게 되었다고 한다. 현재는 라인플러스에서 빌링 시스템을 개발하고 있다고 나와있다.

저자분의 공식 블로그는 : http://haviyj.tistory.com/ 이므로 궁금한 분들은 접속 바란다!
 
Duck Programming
프로그래밍을 잘하고 싶어서 만든 블로그
haviyj.tistory.com

 


필자 역시 저자 분 블로그에 다녀와서 리뷰를 적는 것이다. 읽을 거리가 많다 꼭 가보길 바란다!

이 서적은 스프링 프레임워크에 대한 이해가 있으면 학습하는데 도움이 많이 될 것이다. 그러나 없어도 공부할 수 있도록 가능한 한 쉽게 설명했고 따라하며 공부할 수 있도록 예제코드와 그림도 넣어두었다고 한다.

아! 자바는 할 줄 알아야 이 서적이 이해가 될 것이다.

 

 

 

DAY 1


스프링부트 입문, 환경설정
스프링 부트 세계에 오신 여러분을 환영합니다.

 

스프링 부트 소개

 

 


 

4.jpg


 

5.jpg


 

 

 

DAY 2


테스트, 커뮤니티 게시판 구현
스프링 부트 웹을 구현하는 방법은 매우 다양하다.

 

놀라운 스프링 부트

 

 

 


 

6.jpg


 

7.jpg


 

 

 
2일차부터 재미있는 녀석들이 나오기 시작한다니! 스프링 부트에서는 기본적인 테스트 스타터를 제공한다고 나와있다. 테스트 라이브러리가 잔뜩 뭉쳐있다니 환영이다. 뭐 이렇게 테스트 라이브러리가 많은지 놀랐다. 몇 가지 테스트 어노테이션을 살펴보다보니 어느덧 3장도 끝나 있었다. 이제 재미있는 프로젝트다.

챕터 4에서는 커뮤니티 게시판 설계, 프로젝트 준비, 구현까지 많은 내용이 담겨있다.
전형적인 MVC 패턴으로 설계하기 때문에 큰 어려움 없이 진행이 가능하였다.

구현이 조금 어려웠는데, 게시판 구현 순서부터 앱 개발과는 다른 무언가.. 모르는 용어가 잔뜩 나오기 때문에 긴장하며 진행하였다.
스프링을 조금 공부한 적이 있었는데도 이렇게 빨리 까먹다니!

서적에서 게시판 구현 순서를 프로젝트 의존성 구성부터 작성 폼 만들기까지 총 9단계로 진행하였다. 가장 중요한 챕터이자 기본기를 익히기에 너무 좋은 챕터라고 생각했다. 페이징 처리나, 라이브러리 추가, DB넣기, 리스트 기능 등 필수로 알아야 될 지식이 잔뜩 들어있다. 어서 구현해보길 바란다!

 

 


 

 

 

DAY 3


스프링 부트 시큐리티 + OAuth2
인증과 권한에 관련된 강력한 기능인 스프링 부트 시큐리티 제공!

 


 

래핑 프레임워크

 

 

 


 

8.jpg


 

 

스프링 부트 시큐리티는 스프링 시큐리티의 번거로운 설정을 간소화시켜주는 래핑 프레임워크라고 나와있다. 스프링 시큐리티는 십여년간 보안 노하우를 쌓아 와서 기본적인 틀 안에서 원하대롤 인증, 권한 처리를 편리하게 관리할 수 있다. 훌륭하다! 특히 보안에 대해 민감한 필자로서는 이런 편한 프레임워크는 매우 환영이다.

OAuth2는 많이 알고 계실 것이다.
토근을 사용한 범용적인 방법의 인증을 제공하는 표준 인증 프로토콜이며, OAuth 프로토콜의 버전2다.
이 프로토콜은 서드파티를 위한 범용적인 인증 표준이라고 나와있다.

자! 이제 이 두 친구를 가지고 설계부터 의존성 설정, 구현, 설정까지 총 4단계를 거쳐 프로젝트를 진행 할 것이다.

핵심 코드에 대한 자세한 설명과 프로세스가 매우 자세하게 서적에 나와 있으므로 그냥 보고 따라해도 완성할 수 있을 정도다.
부분 부분 코드 추가와 이유 로직 구현까지 너무 자세하기 때문에 초보자도 쉽게 해볼 수 있다.

 

 

 


DAY 4


REST!
REST, RESTful

 

 

 

REST에 대한 개념을 익혀보자!

 

6장은 가장 헬이라고 생각했던 챕터 중 하나다. 그만큼 중요한 내용과 필수적으로 알아야 할 지식이 있는 곳이다.
자! 집중하고 REST를 만나러 가볼까.

 

 


 

9.jpg
 
 
 
 
DAY 5

스프링 부트 배치
만들었으면 운영해보자.
 
 
배치(batch)?
 
 

여기서 말하는 배치는 무슨 물건을 배치할 때 사용하는 그 단어가 아니다.
컴퓨터 용어에서 '배치'라는 단어는 서적에도 나와있지만 '프로그램의 흐름에 따라 순차적으로 자료를 처리한다'는 뜻이다.
우리가 기초 자격증 공부할 때 많이 보던 '일괄 처리'와 같은 말이다.

 



 



1.jpg

 
 

배치 처리에 스프링 부트 배치를 사용해보자!
 
현재 스프링 부트 배치 2.0은 스프링 배치 4.0을 기반으로 한다.
버전이 높을수록 자바 상위 버전과 호환이 좋다는 뜻과 같다. 즉, 람다식 등을 지원해 한층 더 편리한 개발을 지원한다.
일단, 스프링 부트 배치를 이해하고 사용하는 것이 순서일 듯 하다.
배치의 일반적인 시나리오는 순서대로 읽기 -> 처리 -> 쓰기로 되어 있다. 그리고 이러한 배치 처리 흐름에 대하여 관련된 객체의 관계를 사진으로 보여주는데, 반드시 이해가 필요하다.
물론 이해를 한다고 다 되는 것은 아니다. 스프링 부트 휴면회원 배치 설계시 어떤식으로 적용되는지 직접 작성해 보자.
스프링 부트 배치를 설정하고, 휴면회원 배치를 구현하며 테스트 코드도 생성해야한다. 또한 휴면회원 배치 정보도 설정하는 파트도 있다. 많이 신기함을 느꼈던 파트 중 하나다.
여기까지 이해가 다 되었으면 심화학습을 반드시 돌려보자.
정말 잘 빠진 서적이라고 느낀 챕터다.
 
 
 

 

 

DAY 6, 7


코드 다이어트를 위한 롬복 프로젝트
많이 듣던 친구가 나왔다.

 

 

 

 

프로젝트

 

 


 

2.jpg


 

3.jpg


 

 

 

 

롬복 라이브러리는 자바를 사용했던 분들이면 한번쯤은 들어본 라이브러리일 것이다.


필자도 그렇다. 그래서 플러그인을 설치하고 의존성 설정 후 몇가지 사용해봤는데, 학부생 때 하던 자바 프로젝트가 어렴풋이 기억이 났다.
뒤어어 구성되어있는 devtools나 스프링 부트 빌드와 배포 부분은 서적을 구매하여 보길 권한다.

재미있었던 것은 앞서 배웠던 OAuth2을 이용하여 각종 sns 개발자 센터에 연동하는 방법을 설명하는 챕터가 있었다는 점이다.
생각보다 되게 단순하여 놀랐다. 그리고 큰 어려움없이 진행이 가능하였다.

 

 

 

 

 

 

 

2018년에는 좋은 서적만 당첨됐다.


모바일 개발이 재미있어 모바일 위주로 개발을 배우고 삽질하고 했지만, 웹도 기회가 되면 반드시 배워보리라 속으로 다짐했던 것이 이렇게 서적으로 기회를 잡을 수 있게 되었다. 그리고 스프링 여정만 벌써 2번째다. 이제 어느정도 단어도 눈에 익히게 되었고
조금은.. 정말 조금은 스프링 프레임워크에 대한 이해도 생겼다. 아이고 어려버라~~ㅠㅠ

그래도 참 매력있는 분야고 재미있다.

스프링 부트를 배우려는 모든 초급자 분들께 추천하는 서적이다 별표 5개 쾅쾅!


★★★★★

 

 

 

 


 

리뷰를 마치며!

 

 

 


 

4.jpg


저자 : 김영재 | 출판 : 한빛미디어

 

 

 

"<처음 배우는 스프링 부트 2>의 자세한 내용은 한빛미디어 홈페이지에서 확인 하실 수 있습니다."

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 


 

현재 시중에 스프링 부트 2에 관련 책이 몇 개 있습니다.

다른 책보다 눈에 띄게 처음 배우는 스프링 부트2는 첫인상이 내용이 깔끔해 보여서 좋았습니다.

책의 내용도 역시 입문서라는 느낌이 강하게 듭니다. 어느 정도 기초 원리를 이해하는데 큰 도움이 되는 책입니다.

물론 스프링을 처음 접하거니 아주 낮은 지식을 가지고 책을 본다면 조금 힘들것 같습니다.

스프링 부트 특성상 이점은 어쩔 수 없는 벽이라 생각합니다.

하지만 스프링 프레임워크를 다루어봤다면 어려움 없이 내용을 이해할 것입니다.

 

책의 내용은 주로 스프링 테스트와 웹, 시큐리티 그리고 데이터를 다루고 있습니다.

위에 나열한 부분만 알더라도 실무 프로젝트를 진행하는데 큰 무리가 없는 알찬 내용입니다.

예시를 통해 코드를 설명하고 있어서 급할 때 필요한 부분만 고쳐서 바로 활용해도 괜찮을 듯 싶습니다.

 

깔끔한 레이아웃과 보기 쉽게 하이라이트된 코드와 넘버링는 설명과 코드를 넘나들면서도 책이 술술 읽힙니다.

가장 맘에 드는 부분입니다.

 

다만 한 가지 아쉬운 점은 아직까지는 실무에서는 보편적으로 이클립스를 활용하는 곳이 많습니다.

이클립스를 중점으로 설명했다면 더할 나위 없었을 것 같습니다.

 

1장

스프링 부트에 대한 기본적 소개와 간단한 특징들을 다루고 있다. 스프링 부트가 스프링에 비해 간결한 설정 방법을 가질 수 있는 이유는 무엇인지, 책을 관통하는 프로젝트 '커뮤니티 게시판'의 설계를 위해서는 어떠한 설계도가 필요한지에 대한 이야기가 주를 이룬다. 이후, starter가 포함하고 있는 의존 관계에 대한 짧은 설명이 등장하는데 사실 이 부분은 스프링 부트 혹은 스프링을 전혀 접해보지 못했다면 이해할 수 없는 부분이었던 것 같다. 하지만, 책을 두 번 째 보면서 그 중요성을 다시 느낄 수 있는 부분이었다. 

2장

스프링 부트 기반의 프로젝트를 생성하기 위해 필요한 환경 설정에 대한 내용을 다룬다. 즉, 이번 장에서는 JDK, IntelliJ 그리고 빌드 툴인 Gradle의 활용법 등이 상세 내용으로 등장한다. JDK와 IntelliJ의 경우 스프링 부트 교재를 본다는 가정 하에 이 책을 보는 모든 독자가 아는 부분일 것이기 때문에 이 부분들을 줄이고, Gradle의 특징이나 활용법에 대해 더 다루었으면 좋았을 것 같다. 아무래도 maven 기반의 프로젝트를 실습해와본 독자들이 많았을 것이고, 나 같은 경우도 gradle 기반의 프로젝트를 처음 따라 배워보았다. 따라서 막히는 부분에 있어 검색할 때 정보가 많이 나오지 않아 답답한 부분이 종종 있었다. gradle에 대한 설명이 조금 더 추가되어 있었더라면 이러한 가려운 부분을 조금이나마 해결해줄 수 있었을 것 같다! 이후 중요한 애노테이션 설정들에 대한 설명이 들어간 것들은 아주 만족스러웠다. 

3장

3장은 스프링 부트 테스트를 다루고 있다. 테스트 스타터로 뭉쳐진 의존성을 통해 스프링 부트가 얼마나 쉽게 테스트의 수행이 가능할 수 있는지 실습을 통해 보여주고 있는 장이다. TDD는 개발을 함에 있어 매우 중요한 덕목(?)으로 여겨지기 때문에 책에 등장해야 할만한 적합한 주제이긴 하나, 갑작스러운 등장이 약간 당황스러웠던 장이었던 것 같다. 3, 4장의 위치가 바뀌고 4장에서 생성하는 모듈들에 대한 단위 테스트를 실습하는 것을 이후에 보여주었다면 더 나은 구성이었을 것 같다는 생각을 해본다. 

4장

가장 도움을 많이 받았던 스프링 부트 웹에 대한 설명을 다루고 있는 4장이다. 기본적인 게시판의 구현을 실습하며, 어떠한 전체 구조를 지녀야 웹 페이지를 설계할 수 있는지에 대한 지식을 얻을 수 있었던 장이었다. 또한 게시판 구현에서 어려움을 많이 발생시키는 페이징 처리나, 서버 사이드 템플릿 '타임리프'에 대한 정보를 다루고 있었던 것도 아주 만족스러웠다. 아마 나 같은 초심자에게는 이번 4장과 6장이 책에서 얻을 수 있는 가장 좋은 정보를 담고 있는 장이라고 생각한다. 

5장

스프링 시큐리티와 oAuth에 대한 내용을 담고 있는 5장이다. 이 장 역시 알짜배기 장이었던 것 같다. 스프링 시큐리티가 사실 초보가 처음 접하기엔 어려운 부분이라고 생각하는데 좋은 설명과 실습으로 개념을 잘 진행할 수 있도록 구성이 잘 짜여져 있었던 장이다. 그리고 요즘 핫한 기술인 oAuth를 다루고 있다는 점에서 좋은 점수를 주고 싶다. 각종 sns와 어떻게 연동을 할 수 있는지를 친절한 설명을 통해 도와주고 있다. 

6장

4장과 함께 굉장히 마음에 들었던 6장이다. 6장은 REST API 서버를 다루고 있다. 최근 Rest API에 대한 관심이 굉장하다고 생각한다. 내가 최근에 접해서 그 인기를 늦게 체감한 것일 수도.. 각설하고, 이 장이 특히 좋았던 이유는 Rest API의 구성을 MVC 패턴으로도 한 번, 스프링 데이터 레스트로도 한 번 설계해보며 그 설명의 끈을 이어나간다는 점이다. 저자의 섬세함이 돋보인 장이라고 생각한다. 초기 설정을 위해 DB로 사용하고 있는 MySQL에 대한 설명이 조금 들어있었다면 좋았을 것 같기는 하지만, 이 정도는 독자가 삽질하며 배워봐도 좋은 부분이라고 생각한다. 실제로 나는 mysql connector 설정 때문에 삽질을 많이 했다.. MySQL이 8 버전 이후로 넘어가면서 많은 default 설정들이 바뀌었던 것 같다. 그럼에도 삽질을 통해 웹 서버와 API 서버를 연동했을 때, 이 장의 빛을 다시 느낄 수 있었다! 

7장

마지막 장은 스프링 부트 데이터 배치를 다루고 있다. 사실 이 장은 리뷰를 하기 민망할 정도로 주의 깊게 보지 못했다. 아직 어렵다.. 이후에 다시 실습해보면 리뷰를 할 수 있을 것 같다! 다만 평이 좋은 것을 보니 좋은 내용을 다루고 있는 것 같다. 


총평

리뷰 이벤트를 통해 증정 받은 도서이긴 하지만 주위에 누군가 스프링 부트를 배워보고 싶다고 하면 주저없이 추천을 해주고 싶은 책이다. 책이 짧은게 아쉬울 정도로 알짜배기 내용들을 잘 녹아내고 있는 책이라고 생각을 한다. 아마, 조금의 분량이 더 주어졌다면 분명 더 좋은 퀄리티의 책이 되었을 것 같다. 저자 분이 처음 집필한 책이라고 들었는데 아마 이후에 더 좋은 책의 저자가 되실 것 같다. 초심자의 시선으로 유익하게 볼 수 있었다 :) 

"실무에서 다룰 수 밖에 없는 기술들을 모아 놓은 서적"
 
실무에서 Spring을 다뤄보신분들을 위주로 기존 Spring 의 사용법과 Spring boot 의 차이점을 비교하며 진행됩니다.
또는 boot 만의 특성을 가진 어노테이션들과 여러기능을 사용하는데 프론트엔드 개발자인 저에게는 조금 어렵게 다가왔습니다.
하지만 실무에서 접할 수 밖에 없는 주제들을 다루고 있기 때문에 실무에서 spring 을 사용하거나 boot 를 쓰시고 계신분들에게는 많은 도움이 될 것 같습니다.
 

JPA와 배치를 사용하며 예제를 진행하는 것이 너무 좋았습니다.

 

 

 

 

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 페이스북, 구글, 카카오 개발자센터 연동 


이 책의 목차는 위와 같이 구성되어 있다.


이 책의 시작은 좋았다.Emotion Icon

Chapter 1, 2 까지만 해도 책 소개에 나와 있듯이 스프링 부트 입문자의 눈높이 맞춰 배려하는 느낌이 들어 참 친절한 책Emotion Icon이라고 느껴졌었다.

그러나 Chapter3 부터는 실무에서 사용될 만한 내용을 담으려고 해서였을까? 눈높이가 점점 높아지고, 친절함이 사라지는 느낌Emotion Icon이 들었으며 마지막 장에 가서는 오히려 초반의 느낌과는 정반대로 불친절하다고 느껴질 정도Emotion Icon가 되었다.


전반적으로 실무에서 다룰 만한 기술들(REST API, 소셜 로그인, 배치 등)을 접하게 해준 점은 높게 산다.

그러나, 내용이 진행되면서 책 소개에서 언급한 대상이 아닌 다른 대상을 바라보고 책을 쓰고있다라는 느낌을 지울 수 없었다.


대상 독자의 기준이 저자와의 시선차이 일 수 있으나, 이런 생각을 가진 사람들이 더 있다면 대상 독자를 어느 수준으로 바라볼지에 대해 다시 한번 고민해볼 필요가 있을듯 하다.


소스코드도 막연히 따라쳐서는 안되는 경우가 많았는데, 이 부분은 보완이 필요할 것이라고 생각된다.

좋은 소재이나, 그 소재를 풀어나가는데 있어서 조금 더 친절했으면 좋겠다.


운전 연습을 시켜주겠다던 친절한 친구가, 다른 차를 보더니 갑자기 핸들을 잡고 엑셀레이터를 밟아버리는 친구의 이면을 보는듯한 느낌의 책이였다.

[도서 리뷰] : 스프링을 익힌 분들이 스프링 부트로 넘어가기 위한 책 <처음 배우는 스프링 부트2>

book.jpg

<사진 출처 : 교보문고>


책의 제목이 <처음 배우는 스프링 부트2>입니다. 


전체 페이지가 300페이지를 조금 넘기기 때문에 책의 두께는 대략 성인 손가락 굵기 정도 됩니다. 
책을 처음 봤을 때, 두께가 그렇게 두껍지 않은데, '처음 배우는...'이라고 된 책 제목을 보고 다소 의아했습니다. 
스프링 책하면 대부분 아는 토비의 스프링 책만 해도 2권이고, 일반 스프링 책만해도 두꺼운데 말이죠. 

책을 보면서, 나름 얇게 나온 이유를 알게 되었습니다. 
스프링을 경험해본 독자를 대상으로 스프링 부트로 넘어오기 위해, 
심플하게 핵심을 짚기 때문에 너무 두껍지도, 너무 얇지도 않게, 스프링 부트2를 이용해서 커뮤니티 게시판을 만들 수 있도록 안내해주는 책입니다. 

책의 구성은 목차에 나온 것처럼, 
1. 스프링 부트 입문하기 
2. 스프링 부트 환경 설정 
3. 스프링 부트 테스트 
4. 스프링 부트 웹 
5. 스프링 부트 시큐리티 + OAuth2 
6. 스프링 부트 데이터 레스트(Rest) 
7. 스프링 부트 배치(Batch) 
부록 A~E 
찾아보기 
위의 순서로 되어 있습니다. 

스프링을 해본 사람은 STS 내지 이클립스를 이용하는데, 이 책에서는 InteliJ를 이용해서 개발을 진행합니다. 
저 처럼, 과거 스프링에서 Maven의 pom.xml을 통해 며칠을 환경 설정하느라 고생해본 사람이라면, 
'Spring Boot는 사랑입니다.'라는 농담을 이해할 것입니다. 
이 책에서 안드로이드에서 다룰 법한 Gradle을 스프링 부트에서 다룰 수 있도록 안내해줍니다. 
application.properties, application.yml을 통해 환경 설정을 하고 여기에 설정된 값들을 다루는 것도 들어있습니다. 

스프링에서 사용하던 코드가 스프링 부트 설정에 의해서 필요 없는 코드가 되는 것도 책에 기술되어 있으며, 
스프링 부트1에서 사용되는 것이 스프링 부트2로 넘어오면서 사용이 안 되는 항목을 기술해주는 부분이 있었습니다. 
예를 들면, @ConfigurationProperites 에너테이션(어노테이션)의 경우, 스프링 부트2.0부터 프로퍼티명에서 다양한 표기법 대신, 
소문자(예 - fruit.colorname)와 케밥 표기법(예 - fruit.color-name)만 지원한다는 점이 있었습니다.

책 초반에서 getter, setter를 대신 처리해주는 롬복(Lombok)부분에 대해서 간략하게 설명을 하는데, 다른 부트1책에서 상세하게 다루는 것과 대조되었습니다. 
이 책에서 마음에 드는 것 중 하나는 스프링 부트2에서 '자동 환경 설정 이해하기'를 통해 에너테이션을 한 발짝 더 들여다볼 수 있게 되어 있는 부분이었습니다. 
과거 다른 부트 책에서는 이 에너테이션은 그냥 이걸 사용하면 된다는 것이었다면, 
이 책은 자동 환경 설정을 위한 에너테이션 구성에 대해 어떤 에너테이션들이 조합되어서 구성이 된다는 내용이 있었습니다. 

독자 분들 중에 스프링 부트1에서 2로 넘어오면서 혼란스러웠던 부분이 있었을 것이라 생각됩니다. 특히, 스프링 스타터 사이트에서 소셜미디어(Facebook 등) 연동 모듈이 나오지 않는 부분이었을 것입니다. 
이 책에서는 스프링 부트 1.5 버전을 이용해서 전체적인 적용방식을 이해하도록 안내한 뒤, 스프링 시큐리티 에너테이션과 함께, 2.0버전으로 어떻게 업그레이드하는지 알려줍니다. 
특히, 카카오 계정 로그인 연동이 포함된 점이 활용성 면에서 좋은 점수를 줄 수 있었습니다. 

과거 다른 부트책과는 다르게 Rest 설계에 관한 조언들이 들어있습니다. 
이 Rest와 인증을 통해서 커뮤니티 게시판을 만드는 과정이 들어있습니다. 
다른 책과 마찬가지로 PostMapping, PutMapping, DeleteMapping 에너테이션을 이용합니다. 
Rest를 이용하다 보면, 각 메서드별로 권한을 달리해야 하는 경우가 발생하는데, 이 책에서 이 부분을 짚고 넘어갑니다. 

스프링 부트 배치(batch)의 경우, H2 테스트용 DB를 기반으로 나름 상세하게 설명된 점이 인상적이었습니다. 
과거 실무에서 리눅스 상의 Cronjab을 많이 다루는데, 이 책에서는 실무에서 사용하는 스프링부트 배치를 통해서 휴면회원을 배치로 처리는 하는 방법이 나와 있습니다. 
특히, 이 책의 장점으로 스프링 부트 배치 디렉터리 구조부터 각각의 핵심 소스와 테스트 코드 작성, Parameter를 받아서 동적으로 구현하는 방법 등이 들어있습니다.
그리고 MySQL를 사용하다가 테스트 용도로만 H2 데이터베이스를 사용할 수 있도록 팁을 안내해주는 내용이 있어서 인터넷을 뒤지는 수고를 덜어줍니다. 

소셜 미디어 연동을 프로젝트에 포함시키려면, 페이스북, 구글, 카카오 개발자 센터 연동을 통해 시크릿 키를 발급받아야 합니다. 
이 책에의 장점 중 하나는 소셜미디어 연동 경험이 적은 개발자들을 위해, 
부록에서 시크릿 키를 발급받는 부분이 스크린 샷을 통해 안내하고 있습니다. 

이 책의 장점을 요약하면, 소스만 무조건 길게 들어있는 책이 아니라 간략하게 그림과 설명 그리고 소스가 들어있습니다. 그리고 스프링 부트2 책인 것 만큼, 부트의 환경설정에 관련된 내용이 들어있습니다. 그리고 마지막으로 실무에서 사용될 수 있도록 소셜미디어와 인증을 기반으로  커뮤니티 게시판을 제작해볼 수 있다는 것과 스프링 배치 설명이 들어있다는 것입니다.


스프링에서 부트로 넘어오시는 분들께 도움이 되는 책이라고 생각합니다.

마지막으로 예제 소스의 경우 다운로드를 받으셔서 확인하시는 것을 추천합니다.

 

긴 글을 읽어주셔서 감사합니다.


책의 자세한 내용은 한빛미디어 홈페이지 http://www.hanbit.co.kr/store/books/look.php?p_code=B4458049183에서 확인 하실 수 있습니다.

 


 

 

이 책은 스프링 부트2를 통해 전반적인 서버의 설계 과정을 실습해 볼 수 있어서 좋다고 생각합니다.

스프링 부트를 입문해보고 싶은 주니어 개발자라면 이 책으로 실습해보기를 추천드립니다.

 

다만, 책으로 설명하는데 한계가 있어 그런지 책의 예제만 따라쳐선 진행하기가 쉽지 않았습니다.

반드시 실습을 위해 예제 코드를 참고하며 진행하길 추천드립니다.

전반적인 다루는 주제는 좋은 듯 하나,

 

3장까지는 오탈자가 너무 많고, 소스의 정상 동작 여부도 검증하지 않은 채 출간되어 

이 책을 사서 따라하기 식으로 공부를 하려는 독자의 경우 불필요한 스트레스와

시간 허비를 하게 될 것이라 생각된다.

 

개발자라면 테스트를 통해 검증이 완료된 로직을 배포해야 하는데, 

테스트 없이 코딩만 하고 상용 서비스를 릴리즈 해버린 것과 같은 수준의 책

 

스프링부트에 대한 충분한 이해도가 있는 사람의 경우

오탈자와 잘못된 소스 부분을 스스로 수정해 가면서 이 책의 내용대로 진행이 가능하겠지만,

 

그런 수준의 개발자가 "처음 배우는 ..."으로 시작하는 책을 볼 이유가 있을까?

 

 3장까지는 거의 매 페이지 마다 발견되는 오류들로 

모든 장에서 다른 레퍼런스를 찾아서 해결을 해야했다.

 

본 사이트에 기재된 오탈자 리스트를 보면 이 책에 잘못된 부분이 얼마나 많은지 실감하게 될 것이다.

 

그나마 4장부터는 검증된 소스인듯.

 

감사하게도 

앞으로 한빛미디어의 초판 1쇄는 사지 말아야겠구나를

깨우쳐준 소중한 책.

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
처음 배우는 스프링 부트 2
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
처음 배우는 스프링 부트 2
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
처음 배우는 스프링 부트 2
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실