한빛출판네트워크

IT/모바일

배워서 바로 쓰는 스프링 부트 2

DB 액세스부터 도커를 활용한 개발까지, 실무에 바로 써먹는 스프링 부트 2 마스터하기

한빛미디어

번역서

판매중

배워서 바로 쓰는 스프링 부트 2
좋아요: 63
  • 저자 : 히로스에 다케시 , 미야바야시 다케히로
  • 역자 : 정인식
  • 출간일 : 2020-04-16
  • 페이지 : 376쪽
  • ISBN : 9791162242995
  • 물류코드 :10299

합계 : 25,200

  • 웹 애플리케이션을 효과적으로 구현하는 실무 비법 대방출

     

    스프링 부트로 웹 개발을 할 때 마주치는 문제를 속 시원하게 해결하고 싶다면 이 책이 답이다. 스프링 부트에서 자주 발생하는 문제의 해결 방법부터 웹플럭스 사용법까지 실무에 꼭 필요한 내용만 담았다. 웹 개발 경력 10년 이상의 베테랑 저자들이 실전 경험에서 얻은 노하우를 친절한 예제를 통해 설명한다. 웹 애플리케이션 공통 처리, 데이터베이스 액세스, 보안, 화면 개발, API 개발, 운용, 시스템 아키텍처 등 실무에 필요한 모든 내용을 총망라하는 스프링 부트 완벽 활용서다. 문제 해결을 넘어 문제를 예방하는 실무 노하우를 확인하고 스프링 부트 마스터가 되어보자.

     

     

    이 책에서 다루는 내용

    • 프레임워크로 데이터베이스 액세스 최적화하기
    • 스프링 시큐리티를 이용해 고성능 보안 환경 구축하기
    • 타임리프를 이용해 효율적으로 화면 개발하기
    • 도커를 활용해 팀 개발 협업 능력 높이기
    • 스프링 프로파일로 시스템 운용 최적화하기

     

     

    이 책의 구성

     

    1장. 이 책에서 다루는 스프링/스프링 부트 프로젝트 구성을 설명한다. 특히 웹 애플리케이션의 디렉터리 구조를 설명한다.

    2장. 웹 애플리케이션을 구축할 때 기능 사양에 의해 변경이 발생하지 않는 공통 처리 부분을 설명한다.

    3장. 데이터베이스 액세스의 라이브러리 통합과 이용 방법을 설명한다. 저자들의 경험상 스프링 데이터 JPA로는 ‘프로그램에서 실행되는 SQL을 떠올리기 어렵다’는 문제가 있었기에 이 책에서는 도마(Doma) 2라는 O/R 매퍼를 사용한다.

    4장. 스프링 시큐리티의 사용법과 응용법을 설명한다. 스프링 시큐리티는 입문서나 가이드라인이 있지만, 실제로 이를 응용하려고 하면 난관에 봉착한다. 저자들이 프로젝트를 진행하며 각자 고민한 내용을 설명한다.

    5장. 타임리프를 사용한 화면 개발 방법을 설명한다. 다국어 대응 등 실제로 문제가 되었던 내용을 설명한다.

    6장. REST API 제작법과 호출 방법을 설명한다.

    7장. 스프링/스프링 부트의 내용을 넘어서 팀 개발에 필요한 환경, 데이터베이스의 구성 관리, 단위 테스트 실시 방법을 설명한다.

    8장. 운용 시 문제가 생길 만한 부분을 방지하고 해결하는 방법을 설명한다.

    9장. 스프링 부트를 사용한 애플리케이션을 적절히 배치하기 위한 시스템 구성 방법을 설명한다. 최근 컨테이너 기술이나 클라우드 기술은 개발 환경에서 충분히 사용할 만하다. 스프링 부트의 애플리케이션을 클라우드의 컨테이너에 탑재하는 방법을 설명한다.

    10장. 스프링 5와 스프링 부트 2에서 새롭게 적용된 웹플럭스에 대해 간단히 설명한다. 

    11장. 예제 프로젝트를 이용한 개발 환경 구축 방법을 소개한다.

    12장. 예제 프로젝트의 이용 방법과 제공 기능을 간단히 소개한다.

  • [저자] 히로스에 다케시

    주식회사 빅 트리 테크놀로지 & 컨설팅 아키텍처 그룹 관리자. 10년 이상 오픈 시스템 개발에 종사하며 자바를 사용했다. 최근에는 스프링 부트를 활용한 백엔드와 SPA(Vue.js/AngularJS) 구성 개발 프로젝트에서 기술 리더로 분투 중이다. 다양한 클라이언트에게 비용 대비 효과와 편의성 대비 보안의 균형을 중시하며 솔루션을 제공한다.

    [저자] 미야바야시 다케히로

    주식회사 빅 트리 테크놀로지 & 컨설팅 아키텍처 그룹 관리자. 10년 이상 웹 시스템 개발 및 운용에 종사하고 있다. 전 직장에서는 높은 트래픽의 대규모 EC 시스템 개발과 운용을 맡아 자동 테스트 기반 구축과 운영 비용 절감에 기여했다. 내부 개발팀 지원과 시스템 감시 최적화 지원, 자동 테스트 도입 등 컨설팅 업무도 경험했다. 복잡한 비즈니스 애플리케이션과 자사 인터넷 서비스 개발, 높은 트래픽의 시스템 설계 및 운용, AWS 등 클라우드를 이용한 서비스 구축과 자바/Node.js를 이용한 서버 애플리케이션 개발에 뛰어나다.

    [역자] 정인식

    숭실대학교에서 전자계산학을 전공하고 현대정보기술 eBiz 기술팀에서 웹 애플리케이션 개발 및 B2B Marketplace 솔루션을 연구했다. 그 후 이동통신 단말기 분야로 옮겨 휴대폰 부가서비스 개발 업무를 담당했다.

     

    일본에서는 키스코 모바일사업부 팀장으로 교세라의 북미향 휴대폰 개발에 참여했으며, 퇴직하고서는 일본 주요 이동통신사에서 업무 프로세스 개선을 위한 IT 컨설팅과 데이터 분석 관련 툴을 개발하고 있다. 옮긴 책으로는 『아파치 카프카』, 『배워서 바로 쓰는 스프링 부트 2』(이상 한빛미디어), 『자바 마스터 북: 기초에서 실무 응용까지』(제이펍)을 비롯해 10여 권이 있다.

     

     

  • CHAPTER 1 스프링 부트의 구성

    __1.1 스프링 부트의 기초

    __1.2 웹 애플리케이션 개발

    __1.3 예제 프로젝트의 구성

     

    CHAPTER 2 웹 애플리케이션의 공통 처리

    __2.1 유효성 검증

    __2.2 객체 매핑

    __2.3 로그 출력

    __2.4 파일 다운로드

    __2.5 파일 업로드

    __2.6 메일 송신

     

    CHAPTER 3 데이터 액세스

    __3.1 스타터

    __3.2 도마 사용 방법

    __3.3 엔티티 공통 처리

    __3.4 페이징 처리

    __3.5 배타 제어

    __3.6 논리 삭제

     

    CHAPTER 4 보안

    __4.1 스타터

    __4.2 인증

    __4.3 RememberMe

    __4.4 인가

    __4.5 CSRF 대책

    __4.6 이중 송신 방지

     

    CHAPTER 5 화면 개발

    __5.1 타임리프

    __5.2 폼 바인딩

    __5.3 전처리

    __5.4 템플릿 공유

    __5.5 타임리프의 다른 기능

    __5.6 정적 콘텐츠 관리하기

     

    CHAPTER 6 API 개발

    __6.1 스프링 부트를 이용한 API 개발

    __6.2 스프링 부트를 이용한 API 연계

    __6.3 API 개발 효율 극대화

     

    CHAPTER 7 팀 개발

    __7.1 인프라 구성 관리

    __7.2 데이터베이스 구성 관리

    __7.3 유지보수 가능한 테스트 코드

    __7.4 문서 생성 도구 활용

    __7.5 소스 생성기

     

    CHAPTER 8 운용

    __8.1 환경별 설정 관리

    __8.2 애플리케이션 서버 설정

    __8.3 애플리케이션의 상태 확인

    __8.4 애플리케이션 모니터링

    __8.5 요청 추적

    __8.6 지연 시간 분석

    __8.7 무정지 배포

    __8.8 컨테이너 오케스트레이션 배포

     

    CHAPTER 9 시스템 아키텍처 구성

    __9.1 시스템 아키텍처 고찰

    __9.2 시스템 아키텍처 구성안

    __9.3 구축 튜토리얼

     

    CHAPTER 10 스프링 5와 스프링 부트 2의 신기능

    __10.1 웹플럭스

     

    CHAPTER 11 로컬 개발 환경 구축

    __11.1 깃 설치

    __11.2 예제 프로젝트 다운로드

    __11.3 도커 설치

    __11.4 JDK 설치

    __11.5 IDE 설치

     

    CHAPTER 12 예제 애플리케이션

    __12.1 관리 애플리케이션의 기능

    __12.2 관리 애플리케이션 이용 방법

  • 웹 개발에 스프링을 사용하는 자바 개발자라면 스프링 부트와 떼려야 뗄 수 없다. 스프링 부트를 사용하면 환경 설정이 복잡한 스프링 프레임워크의 많은 부분을 자동화하여 효율적이고 편리하게 웹 애플리케이션을 개발할 수 있다. 스프링 부트의 스타터와 빌드 도구, 자동 구성 등을 활용해 신속하고 빠르게 개발하는 방법을 알아보고 싶다면 이 책을 읽기 바란다. 

     

    이 책은 현업에서 가장 필요하고, 문제가 많이 발생하는 주제를 예제와 함께 설명하며, 실무에 직접 응용해볼 수 있다. 각 장은 어느 정도 독립적이기 때문에 필요한 부분부터 학습 가능한 구성이다. 스프링 부트로 웹 개발을 하면서 궁금한 점이 있다면 이 책에서 바로 찾아 해결해보자

    • 도마 라는 프레임워크를 사용하는 것이 익숙치는 않지만, 인텔리제이와 그레이들로 구현된 책은 흔하지 않은 것 같습니다.


      이걸로 실무 분위기를 느낄 수 있을 것 같습니다.


      원서와는 다르게 책 자체 품질(종이등)도 더 좋은 것 같습니다.


      감사합니다.

    •  



      KakaoTalk_20200531_230811994_02.jpg


       


       


      스프링 부트를 처음 배우기도 하고 급하게 동아리에서 API 서버 스택으로 채택해야 하는 상황이라 스프링 부트 책을 여러가지 참고를 했습니다.


       


      그 중 한빛미디어 출판사에서 최근 출간된 '배워서 바로 쓰는 스프링 부트2' 책을 리뷰하고자 합니다.


       


      'DB 액세스부터 도커를 활용한 개발까지, 실무에 바로 써먹은 스프링 부트 2 마스터 하기' 라는 부제와 목차에 기술된 스프링 API 개발에 이끌렸는데요.


       


      전체적으로 탄탄한 아키텍처 설명과 많은 코드 설명이 핵심이었습니다.


       


      팀개발에 필요한 환경과 운영에 필요한 도커 환경을 구축하는 장도 있어 팀프로젝트에 도움을 많이 줬습니다.


       


      차례대로 스프링 부트 프로젝트 환경 구성과 로그 처리, 파일 다운로드 및 업로드 설정, 데이터 처리, 보안, 타임리프로 화면 구현, API 개발 방법, 팀 개발, 서버 운용, 시스템 아키텍처 구성, 스프링 5와 스프링 부트 2의 신기능, 로컬 개발 환경 구축, 예제 애플리케이션으로 이루어졌는데요.


       


      당장 스프링 부트로 API 개발을 하고자 하는 분들께 적극 추천드리는 책입니다.


       


      내부 사진은 다음과 같습니다.


       



      KakaoTalk_20200531_230811994.jpg


       



      KakaoTalk_20200531_230811994_01.jpg


       


    •  



      73A7667F-B785-444E-8D59-712772D55C25.jpeg


       


      책을 시작하면서 대상 독자에 대해 `스프링 입문서를 읽고 튜토리얼을 따라해봤지만, 프로젝트에 적용하기 어렵거나 더 나은 방법이 없는지 고민하며 실무 활용 방법을 찾는 사람을 위한 책`이라고 소개하는데 만약 스프링부트에 대한 개념이 전혀 없다면 초면에 약간 당황할 수 있는 수준이었다.  


       


      읽는 방법에 대해서도 소개하는데 1-2장(1장은 스프링부트 구성, 2장은 공통처리)을 먼저 읽고 나머지 부분은 필요한 주제에 대해 독립적으로 공부할 수 있다.


       


      1장에서는 스프링 부트의 전체적인 구조에 대한 내용이었다. 


      특히 설정파일에 대해 잘 모르고 쓰던 것들을 왜 사용하는지, 어떤 옵션이 있는지 알려줘서 유용했다.  


       


      3-10장까지 독립적인 주제(데이터 접근, 보안 등등)중 특히 도움이 되는 장은 6장, 8장, 10장이었다. 


      6장은 API개발에 대한 내용인데 스프링에서 제공하는 RestTemplate에 대한 소개, API Doc + 테스트에 대한 내용까지 포함한다.  


      8장은 실제 운영을 위한 도움을 많이 받을 수 있는데 디버깅, 배포, 컨테이너 환경에서의 배포에 대한 내용까지(!) 포함한다. 


      10장은 웹플럭스(Webflux)라는 조금 생소한 기능에 대한 소개였는데 비동기 스트리밍 처리에 대한 기능이고 여러 예제로 구체적인 이해를 돕는다.  


       


      스프링부트를 개발하기에, 또 바로 써먹기에 유용한 책이었다.


       


       


       


       

       


    • IMG_1478.jpg


       



      대상 : 스프링 혹은 스프링부트를 사용해본 사람



      아예 기초를 보여주는 것은 아닌듯하고 기초를 가진 사람들을 위한 기본서라고 할 수 있다






      스프링부트의 개요와 기본기를 잘 가르쳐 주는 책이다.



      예전에 해맸던 시큐리티 등과 웹 화면 개발부터 API 개발 그리고 운영까지



      총체적으로 잘 설명해주어 스피링 부트 개발 전 읽으면 혹은 개발하며 읽으면 아주 좋은



      참고도서이다.






      정말 제목 그대로 배워서 바로 써먹기 좋은 스프링 부트 책이다

    •  



      배워서 바로 쓰는 스프링 부트2 한빛미디어 (1).jpg


       


      배워서 바로 쓰는 스프링 부트2 #자바 #스프링 #도커


      이 책은 챕터11에서 개발환경을 설명하고 있는데, 이는 스프링, 스프링부트를 어느정도 알고있는 사람들을 독자로 보고 있기 때문. 필요하면 보고 아니면 말고 정도로 끝부분에 간략히 설명되어있다. 


       


      챕터 11을통해 들어는봤지만 써본적없는 도커를 설치하고, 인텔리제이에서 플러그인을 설치하고 다시 앞장으로 돌아와 시작해본다. 


       



      배워서 바로 쓰는 스프링 부트2 한빛미디어 (4).jpg


       


       


      배워서 바로쓰는 스프링부트2 책은 스프링부트 구성/환경설정을 시작으로 DB액세스 라이브러리, 도마2, 스프링시큐리티, 타임리프, REST API를 다루고 있으며 7장부터는 팀 개발에 필요한 환경 - 애플리케이션 운용 - 시스템 아키텍처 구성, 10장부터는 스프링5와 스프링부트2의 신기능을 다루고 있다. 


       


      스프링에 대해 다루고 있는 다른 책들보다 한참 얇다. 모든 부분을 짧게 요점만 집어서 설명해주고 있기 때문에 책 내용에 비해 책이 얇은데, 스프링부트2를 이 책으로 배워야지! 라고 생각한다면 솔직히 어렵거나 혼란이 올 수 있다. 하지만 잘 정리된 요점정리로 전체적인 흐름을 잘 잡아주고 있기 때문에 전체적인 그림을 그리며 스프링부트2를 공부하기에는 안성맞춤이다. 깊히 들어가려면 별도의 공부가 필요하다.


       


      이 책은 챕터별로 각각 독립성을 두고 있다고 말한다. 다른 책들과 달리 원하는 부분만 보더라도 앞뒤내용 상관없이 볼 수 있다는 점. 책을 한번 완독하고 난 후 해당부분만 따로 찾아보기 좋은 책이다. 


       


      스프링에 발만 담궈봤다거나, 스프링부트가 뭔지 모른다면 이 책을 추천하지 않는다. 


      하지만 스프링 개발을 해 봤다거나 스프링부트를 어느정도 접해봤다면 볼만한 책. 


       

    • 이 책은 '이걸 다 다뤘다고?'라고 생각할만큼 광범위한 내용을 다룬다.






      책 뒤에도 적혀있지만,


      - 프레임워크로 데이터베이스 액세스 최적화하기


      - 스프링 시큐리티를 이용해 고성능 보안 환경 구축하기


      - 타임리프를 이용해 효율적으로 화면 개발하기


      - 도커를 활용해 팀 개발 협업 능력 높이기


      - 스프링 프로파일로 시스템 운용 최적화하기






      (DB/보안/화면개발/API개발/운용 등이 다 들어가있다..)






      개인적으로 이 책은 스프링 부트 입문자보다는 이미 스프링 부트를 사용해본 적이 있는 사람에게 더 적합한 책이라고 생각된다.


      입문자에게는 조금 어려울 수 있는 내용이다. 어느정도 쌓인 지식이 있어야 이 책을 제대로 볼 수 있다.






      하지만, 스프링 부트로 웹 개발을 하면서 마주칠 수 있는 다양한 문제를 어떻게 해결할 수 있는지도 다루고 있기 때문에,


      실무에서 스프링 부트를 사용해야하거나 이미 어느정도 스프링 부트에 대해 알고 있는 사람에게는 아주 적합한 책이다.

    •  


      현재 여러 IT 산업 분야에서 사용하는 인기 있는 자바 기반 엔터프라이즈 프레임워크라면 단연코 스프링 프레임워크가 그 선두다. 특히, 웹 개발에서 스프링 프레임워크는 그 의존도가 매우 커서 대부분의 시스템 통합 업체에서 개발 엔지니어 채용 시 반드시 체크하는 기술 요소이기도 하다.


       


       


      Spring Boot는 다음과 같은 장점들이 있다.


      - Spring Application을 단독으로 실행할 수 있다.


      - 기본 설정이 되어 있는 스타터 컴포넌트를 제공한다.


      - 설정을 위해 일일이 XML 코드를 생성하거나 설정해야 하는 번거로움이 없다.


       


      이처럼 Spring Boot는 Spring Framework를 사용해 보다 쉽게 애플리케이션을 개발할 수 있어 실제로 프로젝트 개발 일정 등에 기여하는 바가 크다. 그렇기에 스프링을 사용하는 자바 개발자라면 반드시 알아두어야 할 기술임이 틀림없다.


       


      <배워서 바로 쓰는 스프링 부트2>는 실전 경험을 통해 얻은 지식과 노하우를 바탕으로 스프링 부트를 어떻게 활용하는지 예제를 통해 구체적으로 알려준다. 이 책을 통해 실제 현장에서 사용하는 스프링 부트의 전반적인 기술을 이해할 수 있다.


       


       



      IMG_7647.JPG


       


       


       


      <배워서 바로 쓰는 스프링 부트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장 예제 애플리케이션>은 예제 프로젝트의 이용 방법과 제공 기능을 간단히 소개한다.


       


       


      


    • 서버 개발자로 처음 시작한 것은 닷넷 프레임워크 개발입니다.



      닷넷은 Sap 등에 맞춰서 개발해서 선택지가 당시에 없었습니다.


       



      또한 회사에서 구축한 부분에서 유지보수 및 현황판을 추가하는 식으로 작업을 했습니다.


       



      그 후 이직한 회사에선 신규 프로젝트 개발을 주로 Node·js를 했는데요.



      닷넷과 완전 개념이 달라서 처음에는 애를 먹었습니다.


       



      전체적인 흐름은 유사하나 객체지향언어에서 함수형 언어를 써야 하는 부분과 과도기에 있는 자바스크립트가 문제였죠.


       



      적응하다가 메인 프로젝트를 Django로 되어 있어서 장고 개발도 투입해서 일했습니다.


       



      최근 들어서 프리로 나온 후에는 스프링에 관련된 일들을 의뢰를 많이 받습니다.


       



      자바를 사용하는 점과 서버 개발자의 일감의 절반 이상이 스프링이기 때문이죠.


       



      올해는 스프링에 대한 이해와 유용하게 사용 할 수 있는 레벨까지 가는 게 목표인데요.



      최근 읽은 책을 소개 해드리려고 합니다.


       



      '배워서 바로 쓰는 스프링 부트 2'입니다. 이 책은 일본의 빅 트리 테크놀로지 그룹 관리자들이 만들었습니다.


       



      하나씩 알아보도록 하겠습니다.


       


       



      3.jpg


       


       


       



      1) 스프링 부트란?



      스프링 부트는 프로덕션 환경에서 실행 할 수 있는 애플리케이션 개발을 쉽고 빠르게 할 수 있도록 도와주는데요.



      서드파티 라이브러리와 스프링 플랫폼 설정이 처음부터 들어 있어서 최소한 작업으로 개발을 시작 할 수 있기 때문에 많은 사람이 사용합니다.







      웹 애플리케이션을 개발할 때에는 스프링에서 자주 사용하는 '스프링 MVC' 프레임워크를 사용해서 스프링에 경험이 있으면 큰 무리 없이 이해할 수 있습니다.






       



      2.jpg


       


       


       



      2) 인프라 구성 '도커'



      서버 개발을 하면서 가장 먼저 하는 일은 '도커' 파일 만드는 일을 합니다.







      시스템을 개발할 때 모든 작업을 혼자서 다 할 수 없기 때문에 시스템 환경을 하나로 통일하면 편합니다.







      그때 주로 사용하는 게 바로 도커인데요. 도커를 활용해 환경 구축 절차를 코드화시켜서 합니다.







      이렇게 되면 다양한 곳에서 인프라를 상태로 만들 수 있어서 초기 세팅이 예전(엑셀, 문서에 정리..)보다 훨씬 수월해집니다.







      이 책에서는 도커 파일을 만드는 부분도 자세히 설명돼 있어서 초보자분들도 쉽게 따라 할 수 있습니다.







      1.jpg


       


       



      PS.



      개발자로 일을 하면서 2년마다 업무의 큰 변화를 느끼지만, 스프링 부트길에 정착하고 싶을 만큼 정교한 것 같습니다.


       



      서버개발을 처음 시작하거나 큰 틀에 관해서 관심 있는 분들에게는 이 책을 추천해드립니다.

    • 공공기관, 정부기관에서 주로 사용하는 "전자정부프레임워크"는


      Model-View-Controller(MVC) 구조의 "스프링프레임워크"를 기반으로 만들어졌습니다.


      저는 전자정부프레임워크 구조가 익숙하다보니 (개발을 해본 적은 없습니다)


      스프링프레임워크 자체는 익숙합니다 :-)


       


      그런데 "스프링 부트" 는 웹개발자들 사이에서 얘기가 나오긴 했지만,


      저는 아직 잘 몰라서 정말 생소했고, 어디에 쓰는건지 궁금했습니다.


       


      궁금하던 차에 "배워서 바로 쓰는 스프링 부트2" 책을 통해서 "스프링 부트"를 좀 이해할 수 있었습니다.


       


       


      책 앞면


      책 뒷면


       


       


      스프링 부트는 자바기반 스프링 프레임워크를 사용해 보다 쉽게 애플리케이션을 개발할 수 있다고 합니다.


      서드파티 라이브러리나 스프링 플랫폼 설정이 들어있어 최소한의 작업으로 개발을 시작할 수 있습니다.


      톰캣 등의 애플리케이션 서버도 내장되어 있다고 합니다.


       


      여러모로 자바 기반 스프링 프레임워크 개발이 가능한 환경으로 보시면 되겠습니다.


       


      책에서 소개하는 장점은 다음과 같습니다. 


       


       1. 스프링 애플리케이션을 단독으로 실행할 수 있습니다.


       2. 기본 설정이 되어 있는 스타터 컴포넌트를 제공합니다.


       3. 설정을 위해 일일이 XML 코드를 생성하거나 설정하는 번거로움이 없습니다.


       


      또한, 책에서 소개하는 스프링 부트의 특징은 다음과 같습니다.


       1. 스타터 : 의존관계를 간단하게 정의하는 모듈


       2. 빌드 도구 : 버전 해결 등 개발을 효율화하는 플러그인


       3. 구성 클래스 : XML이 아닌 에너테이션과 자바로 설정을 작성한다


       4. 자동 구성 : 디폴트 구성이 적용되며 필요한 부분만 설정하면 된다


       5. 메인 애플리케이션 클래스 : 자바 명령으로 내장된 톰캣을 실행한다


       6. 설정 파일 : 속성을 외부 파일에 정의할 수 있으며 동작 사양을 쉽게 변경할 수 있다


       


      기존에 번거롭게 XML로 설정을 일일이 해야하는 부분도 스프링 부트에서는 간단한 설정으로 개선이 되었습니다.


       



      목차 는 다음과 같습니다. (책은 크지 않지만, 다루는 스프링 부트 내용이 꽤 많습니다 :0)


      Chapter1. 스프링 부트의 구성


        1.1 스프링 부트의 기초


              1.1.1 스프링 부트란?


              1.1.2 스타터


              1.1.3 빌드 도구


              1.1.4 의존관계 관리


              1.1.5 구성 클래스


              1.1.6 자동 구성


              1.1.7 메인 애플리케이션 클래스


              1.1.8 설정 파일


              1.1.9 애플리케이션 실행하기


        1.2 웹 애플리케이션 개발


              1.2.1 개발자 도구


              1.2.2 재실행 vs 리로드


         1.3 예제 프로젝트의 구성


              1.3.1 멀티 프로젝트


              1.3.2 애플리케이션 아키텍처


              1.3.3 예제 프로젝트의 빌드 스크립트


              1.3.4 롬복 이용하기


       Chapter2. 웹 애플리케이션의 공통 처리


         2.1 유효성 검증


              2.1.1 메시지 설정


              2.1.2 유효성 검증 종류


              2.1.3 단일 항목 체크


              2.1.4 상호 관련 항목 체크


         2.2 객체 매핑


              2.2.1 재작성 비용 절약하기


         2.3 로그 출력


              2.3.1 추적을 위한 공통 처리


              2.3.2 로그 레벨


              2.3.3 로그 로테이션


         2.4 파일 다운로드


              2.4.1 PDF 파일 다운로드


              2.4.2 CSV 파일 다운로드


              2.4.3 엑셀 파일 다운로드


         2.5 파일 업로드


              2.5.1 파일의 크기 설정


              2.5.2 파일 처리


              2.5.3 데이터베이스 보관


         2.6 메일 송신


              2.6.1 템플릿 엔진 이용


      Chapter3. 데이터 액세스


         3.1 스타터


         3.2 도마 사용 방법


              3.2.1 엔티티


              3.2.2 Dao 인터페이스


              3.2.3 SQL 템플릿


         3.3 엔티티 공통 처리


              3.3.1 엔티티 기본 클스


              3.3.2 엔티티 리스너


         3.4 페이징 처리


              3.4.1 검색 옵션으로 페이징 처리하기


         3.5 배타 제어


              3.5.1 낙관적 배타 제어


              3.5.2 비관적 배타 제어


         3.6 논리 삭제


              3.6.1 갱신 기능으로 구현하기


              3.6.2 엔티티 리스너로 공통 처리하기


              3.6.3 논리 삭제 레코드 제외하기


      Chapter4. 보안


          4.1 스타터


          4.2 인증


              4.2.1 인증 설정


              4.2.2 인증 정보 취득


              4.2.3 로그인 기능


          4.3 RememberMe


              4.3.1 로그인 기록 영속화


          4.4 인가


              4.4.1 권한 관리에 필요한 테이블 작성하기


              4.4.2 권한 관리 데이터 로드하기


              4.4.3 권한과 메서드 관계 부여


              4.4.4 인가를 제어하는 인터셉터


          4.5 CSRF 대책


              4.5.1 CSRF 대책 확장


          4.6 이중 송신 방지


              4.6.1 토큰 관리


              4.6.2 RequestDataValueProcessor 변경하기


              4.6.3 이중 송신 방지 토큰의 생명 주기를 관리하는 인터셉터


              4.6.4 이중 송신 방지 토큰 체크


      Chapter5. 화면 개발


           5.1 타임리프


              5.1.1 스프링 부트에서 타임리프 이용하기


           5.2 폼 바인딩


              5.2.1 폼 바인딩 구현


           5.3 전처리


              5.3.1 전처리 구현


           5.4 템플릿 공유


              5.4.1 템플릿 부품화


              5.4.2 템플릿 공통화


           5.5 타임리프의 다른 기능


              5.5.1 이스케이프 처리되지 않은 텍스트


              5.5.2 날짜 조작 확장 라이브러리


           5.6 정적 콘텐츠 관리하기


              5.6.1 정적 콘텐츠의 배치 장소


              5.6.2 캐시 제어


              5.6.3 액세스 제어


              5.6.4 클라이언트 라이브러리의 구성 관리


      Chapter6. API 개발


           6.1 스프링 부트를 이용한 API 개발


              6.1.1 API 사양


              6.1.2 리소스 구현


              6.1.3 컨트롤러 구현


              6.1.4 오류 핸들링 구현


           6.2 스프링 부트를 이용한 API 연계


              6.2.1 RestTemplate


              6.2.2 사용자 목록 취득 API에 연계하기


              6.2.3 사용자 생성 API에 연계하기


           6.3 API 개발 효율 극대화


              6.3.1 스웨거


              6.3.2 스프링폭스


              6.3.3 스프링 REST Docs


      Chapter7. 팀 개발


           7.1 인프라 구성 관리


              7.1.1 도커


              7.1.2 메이븐/그레이들에서 이용하기


           7.2 데이터베이스 구성 관리


              7.2.1 플라이웨이 이용하기


           7.3 유지보수 가능한 테스트 코드


              7.3.1 스폭


           7.4 문서 생성 도구 활용


              7.4.1 스핑크스


           7.5 소스 생성기


              7.5.1 소스 생성기 플러그인 활용


      Chapter8. 운용


           8.1 환경별 설정 관리


              8.1.1 스프링 프로파일


              8.1.2 환경별 설정 관리


           8.2 애플리케이션 서버 설정


              8.2.1 실행 가능한 JAR


              8.2.2 애플리케이션 서버 설정 및 릴리스


           8.3 애플리케이션의 상태 확인


              8.3.1 스프링 부트 액추에이터


              8.3.2 주요 엔드포인트


              8.3.3 건강 체크 커스터마이즈


              8.3.4 커스텀 애플리케이션 정보 추가하기


              8.3.5 스프링 부트 액추에이터의 시큐리티 제어


           8.4 애플리케이션 모니터링


              8.4.1 프로메테우스


              8.4.2 프로메테우스 도입하기


              8.4.3 프로메테우스의 서비스 디스커버리


              8.4.4 스프링 애플리케이션과 연계하기


              8.4.5 메트릭 시각화


              8.4.6 경고 알림


          8.5 요청 추적


              8.5.1 엔진엑스 추적


              8.5.2 엔진엑스와 추적 ID 통합하기


          8.6 지연 시간 분석


              8.6.1 스프링 클라우드 슬루스


              8.6.2 요청 추적 데이터 시각화


          8.7 무정지 배포


              8.7.1 롤링 배포


              8.7.2 롤링 배포 순서


              8.7.3 롤링 배포 구현하기


              8.7.4 보충 설명 : 롤링 배포(URL 기반 건강 체크)


           8.8 컨테이너 오케스트레이션 배포


              8.8.1 컨테이너 이미지 작성


              8.8.2 쿠버네티스


      Chapter9. 시스템 아키텍처 구성


           9.1 시스템 아키텍처 고찰


              9.1.1 시스템 요구 사항


              9.1.2 시스템 요구 사항 검토


           9.2 시스템 아키텍처 구성안


              9.2.1 구성 요소 리스트


              9.2.2 가용성


              9.2.3 확장성


              9.2.4 비용


           9.3 구축 튜토리얼


              9.3.1 IaC


              9.3.2 테라폼


      Chapter10. 스프링 5와 스프링 부트 2의 신기능


           10.1 웹플럭스


              10.1.1 애너테이션을 사용한 개발


              10.1.2 함수형 프로그래밍 개발


              10.1.3 함수형을 사용한 프로그램


      Chapter11. 로컬 개발 환경 구축


            11.1 깃 설치


            11.2 예제 프로젝트 다운로드


               11.2.1 예제 프로젝트 브랜치 설정


            11.3 도커 설치


            11.4 JDK 설치


            11.5 IDE 설치


               11.5.1 인텔리제이 설정


               11.5.2 IDE에서 예제 프로젝트 열기


               11.5.3 애플리케이션 실행하기


      Chapter12. 예제 애플리케이션


            12.1 관리 애플리케이션의 기능


            12.2 관리 애플리케이션 이용 방법


               12.2.1 로그인


               12.2.2 시스템 담당자 패스워드 변경


              


      목차에서도 알 수 있듯이 책에서는


       * 프레임워크로 데이터베이스 액세스 최적화


       * 스프링 시큐리티를 이용해 고성능 보안환경 구축하기


       * 타임리프를 이용해 효율적으로 화면 개발하기


       * 도커를 활용해 팀 개발 협업 능력 높이기


       * 스프링 프로파일로 시스템 운용 최적화하기


       


      를 다양한 예시 코드들과 함께 상세하게 설명합니다.


       


      스프링 부트를 사용하여 웹 개발을 한다고 하면, 단순 이론부터 실제 적용하는 부분까지


      공통처리, 데이터베이스 액세스, 보안, 화면 개발, API 개발, 운용, 시스템 아키텍처 등


      실무에 적용할 부분들을 책에서 잘 다루기 때문에


      개발자 레퍼런스 책으로 참고해도 좋을 것 같습니다.


       


      제대로 스프링부트를 다뤄볼 시간이 안 되어 책을 읽어보기만 했는데


      시간을 내서 책에서 나온 스프링부트2 설정~구현부를 제대로 시도해볼까 합니다.

    • 안녕하세요, 괴짜 개발자 namedboy 입니다. 





      제가 오늘 리뷰할 책은 배워서 바로 쓰는 스프링 부트 2 입니다.


      책 초반에 스프링과 스프링 부트를 모르는 독자라면 내용의 수준이 높을 수 있다고 얘기하고 있습니다. 책을 읽으면서 난이도를 가늠해보면 확실히 초급자가 읽을만한 수준의 책은 아니라는 생각이 드네요.


      하지만 본인이 빠르게 배우고 싶고 당장에 실무에서 사용해야 하는 상황이라면 스프링이나 스프링 부트를 겉핥기식으로 배웠더라도 이 책을 보는 게 나쁜 선택은 아닐 것 같다는 생각입니다. 초급자를 대상으로 하는 책은 아니지만, 스프링이나 스프링 부트를 아주 잘 알지 못해도 내가 학습하는 속도가 느리지 않다고 한다면 이 책으로 빠르게 실무에서 쓸법한 내용을 학습한 이후에 다듬어 가는 것도 하나의 방법이라는 생각이 듭니다.


      초급자 대상이 아니기 때문에 예제 코드를 구현하기 위해 필요한 기능이나 구현법에 대해서는 충실히 다루고 있습니다.


      다만 이론서가 아닌 실무에서 쓸 수 있는 실용서이기 때문에 스프링의 장점이나 스프링부트의 설계 이점이나 그런 이점들을 어떻게 하면 활용할 수 있을지에 관한 내용은 조금 부족한 느낌이 있네요.


      그래도 좋았던 점은 이전에 발행된 책들에선 빌드 툴로는 Maven을 소개하고 데이터베이스 엑세스용으로는 hibernate 또는 mybatis를 소개했었는데 이 책은 Gradle과 doma라는 빌드툴과 O/R 매퍼를 소개한다는 것입니다.


      이전의 책들을 보면 항상 다른 대안이 없는 것처럼 나왔었는데 다른 방식에 대한 내용을 소개한다는 부분이 다양성 측면에서 선택지를 넓혀주는 느낌이라 좋았습니다. 해당 툴의 소개도 단순히 사용한다고 정하는 게 아니라 그 이유에 대해서도 밝히고 있기 때문에 공부하는 사람 입장에서는 좀 더 도움이 될 것 같네요.


      더불어 요즘 스프링에서 추천하고 있는 기술과 관련된 내용도 함께 다루고 있는 점도 좋았습니다. 새롭게 나오는 기술들에 대해 촉각을 곤두세워 항상 쫓아가야 하는데 이런 부분을 조금이나마 채워주고 있는 느낌도 좋습니다.


      무엇보다 테스트를 함께 다루고 있는 점을 높이 사고 싶네요. 테스트에 대한 철학이나 왜 테스트를 해야 하는지에 관한 내용은 없지만, 전체적인 내용에 테스트를 포함해 이것도 꼭 해야 하는 것처럼 느껴져 좋네요.


      특히 7번부터 나오는 팀 개발 부분과 운용, 시스템 아키텍처 구성은 개발 실무자가 아닌 관리의 역할을 가지고 있는 사람에게도 도움이 될 수 있을 만큼 구성이 되어 있습니다.


      물론 아주 여러 케이스를 다루지는 못했지만, 기본적으로 AWS를 쓴다면 해당 아키텍처를 어떤 방식으로 설계해야 하는지부터 배포방식까지 설명이 되어 있어 기본적인 시스템 구성은 아주 잘 알지 못한다고 하더라도 많은 도움을 받을 수 있게 구성되어 있습니다.


      마지막으로 저자의 의견까지 담겨 있어 인사이트를 얻을 수 있는 부분도 존재하니 ‘네가 뭘 좋아할지 몰라 다 준비했어’의 느낌입니다.


      배워서 바로 쓰는 스프링 부트 2책은 링크에서 확인하실 수 있습니다.


       

    • 얼마전 스프링 부트를 강의하는 교육센터에서 스프링 부트 강의용 교재를 추천해달라는 요청이 있었다. 이미 스프링 5책을 학생들에게 배부했지만, 학생들은 시대에 맞게 스프링 5 뿐만 아니라 스프링 부트도 배워야 하지 않겠냐는 요청에 따른 후속 작업이었다. 요청 당시 온라인 서점 사이트 이곳 저곳 손품도 팔아보고, 내가 갖고 있는 스프링 부트 책들도 뒤져보고, 그래서 특정 책을 교재로 선정하였다. 교재를 선정한 다음 교육센터 매니저에게 학생들이 공부할 책을 알려줬던 바로 그 다음날 이 책이 서점에 나왔다는 것을 알게 되었다. 학생들도 강의하는 나 역시 너무 아쉬웠던 기억이 있다.  


       


      내가 이 책에 대한 미련이 있었던 것은, 



      1. 그동안 일본인 저자의 책을 여러 권 읽어보았는데, 그 특유의 장인 정신을 엿볼 수 있었다.

      2. 스프링 부트에 대한 기본적인 문법 학습에서 떠나 이제는 개발자들에게 거의 필수가 되버린 배포까지 제대로 설명한 책이 필요했다.

      3. 물론 출판사가 한빛미디어라는 것도 고려되었다.


      이 책은 한 마디로 스프링 부트의 시작과 끝이다. 대상은 완전 초보자라기 보다는 일단 스프링 부트의 기본기를 마친 분이 이제 실용적으로 실제적으로 스프링 부트를 활용하기에 필요한 책이다. 웹 애플리케이션 프로젝트의 필수인 공통 처리, 보안, 화면처리, API 개발, 배포와 운영, 당연히 DB Access도...스프링 부트의 새 기능인 웹플럭스를 학습할 수 있는 보너스까지... 스프링 부트의 백화점을 방문한 것 같다.


       


      사실 개발자의 입장에서는 하루가 바쁘게 새로운 기능들, 새로운 요구사항들이 나타나고 사라지고 버전업되는 웹 개발세상에서, 프로젝트를 하면서 알게 되는 다양한 툴들, 그리고 그 툴들을 제대로 학습하여 프로젝트에 반영하고 각종 라이브러리까지 공부하면서 프로젝트를 진행하는 것이 절대적으로 쉽지 않다. 


       


      일선에서 학생들을 가르치는 강사의 입장에서는 과연 학생들이 무엇을 어떻게 제대로 배워서 사회로 진출할 것인가에 대한 끊임없는 고민과 손품이 필요하다. 강사 역시 새로운 트렌드에 발맞춰야 한다. 계속 배워야 한다. 그리고 선별해야 한다. 필드에서 많이 쓰이고, 그래서 학생들이 취업하기 전에 꼭 알아야 할 툴들과 라이브러리를 강사도 공부해야 한다.


      이 책은 배우고 강의하고를 반복하는 강사들에게, 하루하루 바쁘게 살아가는 개발자들에게 일목요연하게 정리된 가이드이다. 많은 손품을 팔지 않아도 뉴 트렌드의 뉴 피쳐, 뉴 라이브러리, 뉴 패쓰로 인도하는 가이드이다. 첫 장부터 꾸준히 저자의 인도에 맟춰 따라가라. 어느새 눈을 돌려 내가 걸어온 길을 보면 내가 얼만큼 업그레이드됐는지 보게 될 것이다.


    • 책표지.jpg


       



      ******  이 책의 특징



      이 책은 입문자용은 아니다. 스프링에 대한 기본 이해와 기본 지식 정도는 알고 있어야 한다.



       



      실제 프로젝트에 적용하기 어렵거나 더 나은 방법이 없는지 고민하며 실무 활용 방법을 찾는 사람을 위한 책이다.



       



      다소 내용의 수준이 높다고 할 수 있다.



       



      *******  이 책은 각 장과 각 절의 내용은 어느 정도 독립적이다.



       



      *******  이 책이 다루는 범위



       



      1장. 스프링/스프링 부트 프로젝트 구성을 설명한다.



       



      2장. 웹 애플리케이션을 구축할 때 기능 사양에 변경이 발생하지 않는



      공통 처리 부분을 설명한다.



       



      3장. 데이터베이스 액세스의 라이브러리 통합과 이용 방법을 설명한다.



       



      4장. 스프링 시큐리티의 사용법과 응용법을 설명한다.



       



      5장. 타임리프를 사용한 화면 개발 방법을 설명한다.



       



      6장. REST API 제작법과 호출 방법을 설명한다.



       



      7장. 스프링/스프링 부트의 팀 개발에 필요한 내용을 설명한다.



       



      8장. 운용시 문제가 생길 만한 부분을 설명한다.



       



      9장. 스프링 부트를 사용한 애플리케이션을 배치하기 위한 구성 방법을 설명한다. 



       



      10장. 스프링5와 스프링 부트 2에서 새롭게 적용된 부분을 설명한다.



       



      11장. 예제 프로젝트와 개발 환경 구축에 대하여 설명한다.



       



      12장. 예제 프로젝트의 이용 방법과 제공 기능을 간단하게 설명한다.



       



      ***** 개발 환경



       



      스프링 부트 2.X 기준이다.



       



      깃허브에 책에서 필요한 소스코드도 제공이 된다.



       



      ============================================================



      지금까지 배워서 바로 쓰는 스프링 부트2에 대해서 알아 보았습니다.







      실무에서 사용되고 바로 적용 가능한 내용들을 위주로 책이 쓰여져 있어



      서 초급자가 보기에는 난이도가 있다고 생각합니다.







      실습을 통하여 설명을 진행하기 때문에 난이도가 있기는 하지만 조금 고민하면서 이애해가며 배울수 있습니다.







      오랫만에 다시 스프링 책을 다시 보니 기억이 나는 부분도 많이 바뀐 부분도 있어서 따라 가기가 좀 어렵기도 하였지만 실무에서 사용될만 내용으로 꾸며져 있어서 아주 좋은 공부였습니다.







      책에 총평을 하자면 - 웹 개발이 처음인 사람보다는 중급 개발자로 넘어가는 그 이상인 개발자가 볼만하다고 생각됩니다. 이미 스프링 부트에 대해서 전반적으로 알고 계신다면 충분히 가치가 있는 책이라고 할 수 있습니다.


       


       


       




    • 스프링 부트2 에 대한 책들은 전에도 여러 권 읽어 본 적이 있었다. 그래서 책을 보기 전에는 구성상 많이 다르지는 않을 거라는 생각을 했다. 


      그런데 막상 읽어보니 색다른 부분들이 몇가지 있었다. 


       


      1. 프로젝트 분리.


      보통은 하나의 프로젝트로 구성을 해서 설명을 해주는 경우가 많다. 그런데 이 책의 경우는 공통모듈, 서비스 모듈을 분리해서 프로젝트를 구성을 했다. 그래서 공통적으로 처리해야하는 것들은 공통 프로젝트를 import 해서 할 수 있는 방법이 잘 설명이 되어있다. 


       


      2. 공통 - DB - 보안 - 화면 - API - 팀 - 운영


      개발을 하다 보면 하나하나의 기능을 개발하는 것도 중요하지만 다른 시스템과 어떻게 연계를 해야하는지, 보안은 어떻게 해야 하는지, API 스펙은 어떻게 정의를 해야 하는지 고민해야 할 때가 많다. 그리고 운영 상황에서는 어떤 부분들을 중요하게 봐야 하는지도 생각을 해야 한다. 중요한 부분이지만 개발만 생각을 하다 보면 이런 부분들을 소홀히 생각하게 될 수도 있다. 다행히 이 책에 폭넓게 설명이 되어 있다. 스프링 부트에 대한 기능 적인 내용들보다도 나에게는 이 부분들이 더 활용해 볼만한 내용이었다. 


      운영 하면서 모니터링을 하는 방법들, 팀과 소통을 하는 방법들이 정말 유용할 것 같다.


       


      3. 아쉬운점.


      소스가 길어서 페이지를 넘기는 부분들이 좀 많이 있다. 소스 중간중간이 생략되어 있음에도 앞 뒤로 구성이 되어있어서 내용을 파악할 때 약간 불편 했다. 


       


      개발에 관련된 한개의 프로젝트를 시작부터 운영까지 혼자서 한사이클을 돌려볼 수 있는 책이다. 그런 면에서는 초급은 아닌 것 같고 스프링 부트 개발 경험이 있는 개발자라면 여러가지 내용들을 참고해서 실제로 적용해 볼만 할것 같다.






      https://blusky10.tistory.com/455


    • 필자는 이전에는 게임 서버와 클라이언트를 업으로 삼아았었고석사 때는 하드웨어와 운영체제에 관해 전공을 하였었다그러다 어찌어찌 흘러 지금은 웹 서비스 회사에서 웹과 관련된 개발을 하고 있다웹 회사에서 와서 느낀 것이지만 서비스를 개발하는데에 무수히 다양한 플렛폼들이 사용되고 있으며그중 단연 가장 친숙하게 상요되는 프레임워크는 스프링 특히 그 중에서 스프링 부트라는 사실을 알게 되었다. (node.js, go, c++ 기반 서버 들도 물론 사용되나 스프링보다는 적은듯 하다.) 하여 작년 6월부터 스프링 프레임 워크에 대해 친숙해지기 위해서 나름의 노력과 공을 들였었고 특히나 프레임 워크의 기능들을 중심으로 이해하기 위해서 부단히 노력했던 것 같다.. 필자의 이야기는 이쯤에서 접어두고해당 책에 대해서 리뷰를 시작하도록 하겠다~!



      해당 책은 타임리프와 스프링 부트 , 그리고 필자도 생소한 도마(doma)?라는 O/R 매퍼를 사용한 서비스 개발 내용을 다루고 있었다데이터 프로세싱과 관련해서는 전통적인 JPA 스타일이나 아니면 myBatis를 사용하는게 일반적으로 느껴졌었는데새로운 내용을 접하니 물씬 설랜 기분이 들었었다.



       



      또한 해당 책은 배포에 관해서도 친절히 다루고 있다무중단 배포를 어떻게 구성해야하는지그리고 팀개발 하는 방법운영은 어떻게 해야되는지컨테이너 사용방법마지막으로는 요즘 각광받고 있는 flux 기능들에 관해서 말이다.



       



      【어떤 독자를 위한 책인가】



       '배워서 바로 쓰는 스프링 부트2'는 간단히 요약하자면 스프링 입문자가 읽기에 크게 어려움이 없는 책이다일단 예제 자체가 타임티프를 이용한 간단한 서비스 제작 + rest api를 개발하는 것이기에 스프링 프레임 워크의 핵심적인 내용들만을 잘 집어가며 다루고 있기 때문이다.



       



      또한 팀워크와 도커쿠버내티스 등의 컨테이너를 이용한 배포 및 서비스 관리 측면의 관점에 대해서 배울 수 있는 책이다더욱이 학교 공부를 막 끝마친 상태에서 취업을 하고자 하는 사람들이라면 이러한 관점과 방법론에 관해서 상당히 생소할 탠데이 책을 통해서 이 부분의 갈증을 어느정도 해소할 수 있을 것이라고 생각된다. (물론 어디까지나 초보자막 회사에 입사하는 신입들을 대상으로 쓰는 내용임을 기억하자.)



       



      마지막으로 스프링 부트라는 프레임워크의 전체적인 구조의 핵심만을 따라 쉽게 배울 수 있다다만 아쉬운 점이 있다면 전문적인 내용을 이 책에서 얻기에는 한계점이 있으므로 입문서로써 사용하되 전문적인 내용은 타서를 참고하거나 혹은 인터넷의 자료를 참고해가며 공부하면 좋을 것이란 생각이 들었다.



       



      【책의 구성】 '배워서 바로 쓰는 스프링 부트 2'책의 구성은 어떠한가.



       이 책은 서문에서 강조하듯이 각 쳅터를 독립적으로 나누기 위한 저자의 노력이 물쓴 느껴지는 책이다하지만 필자가 권하는 학습 방법은 (더욱이 막 시작한 입문자라면가장 앞장부터 시작하여 차근 차근히 진도를 빼가며 공부하라는 것이다물론 필요한 부분을 그때 그때 참고해서 공부하면 좋지만 스켈레톤 학습법이라고(필자가 고안해낸 스터디 방법론이다.) 기본 뼈대를 잡아두고 난 후에 각각의 필요한 부분에 살을 채워넣는것이 좋다그렇기에 책을 처음부터 끝까지 한번 완독을 한 후에본인이 부족하다고 생각되는 부분을 집중적으로 다시 공부하길 권한다.



       



      또한 이 책은 각 챕터별로 적절한 예시와 예제 코드를 들어가며 설명하고 있다컴퓨터 학문의 학습에 있어 백문이 불여 일타라는 말이 있다.(이것은 필자가 지어낸 말이 아니다진짜 있는 말이다.) 그만큼 눈으로만 책을 읽지말고 적어도 한번은 타이핑을 해보며 연습을 해보라는 것이다컴퓨터가 없다면 필자가 자주 사용하는 방법이긴 한데마치 내 눈앞에 컴퓨터가 있느냥 허공에 대고 타이핑을 하면 뇌에 똑같은 학습 효과가 있다고 하니 그런식으로라도 공부를 하길 독자분들에게 권한다.



       



      【배워서 바로 쓰는 스프링 부트 2를 읽으며…….】



       한때 스프링이라는 프레임 워크는 굉장히 복잡하고 기능이 너무나 방대하여 사람들이 조금다루기 꺼려하는 분위기가 있었다고 한다마치 백과사전을 그냥 떤져주고 알아서 사용해봐이런 느낌이였다면지금의 스프링 부트는 필수 모듈을 비롯한 바로 사용하는데에 필요한 모듈들과 기능들 그리고 설정들이 자동으로 잘 잡혀있는 프레임 워크이다그렇기에 요즘처럼 MSA가 강조되고 있는 시점에 다시금 주목 받고 있는 것 같다설정 하기 간편하고 쉽게 이용 가능하며 누구든 한번 학습하면 쉽게 자신만의 웹 서비스를 구현 할 수 있으니 말이다.



       



      예전에도 그렇지만 지금은 웹은 생활 속에 당연한 기술이 되었다필자가 10~10대 후반에는 막 인터넷이라는 기술이 보급되어 대중화 되던 시대였다그때는 지금처럼 새련된 프레임 워크도 새련된 개발론도 없었다또한 FE 개발자, BE 개발자 full stack 개발자 그런 분류 역시 존재하지 않았다그냥 웹은 단순하며 멍청한 노가다의 개발 산물에 지나지 않았다하지만 지금 시대는 완전히 달라졌다. FE, BE 개발 영역 모두 상당히 넓어졌으며 전문화 되었고 세분화 되어 전문적으로 공부하지 않으면 안되는 시대가 되었고 무엇보다 상당히 많은 수의 프래임워크가 등장하여 개발자의 취향과 서비스 성격에 따라 취사 선택할 수 있는 시대가 되었다따라서 필자가 독자들에게 당부하는 것은 이것 저것 넓게 아는 것도 좋지만 하나의 프래임워크를 선정하여 그것을 전문화하고 효율을 극대화 하길 추천한다그렇게 한 프래임워크의 기능을 학습하면 다른 프래임워크를 이해하는데에 큰 어려움이 없기 때문이다.



       



      그렇기에 필자는 독자들이 스프링 부트로 하여금 웹이라는 세상에 시작을 알렸으면 하는 바람이다.


    • KakaoTalk_Photo_2020-05-30-23-20-36.jpeg


       


       


      이 책은 말 그대로 스프링 부트 2의 기능을 하나 하나 설명하기 보다 스프링 부트 2를 이용해 웹 애플리케이션 개발 하면서 필요한 부분을 광범위 하게 다루고 있다. 


      공통 처리(유효성 검증, 객체 매핑, 로그 출력, 파일 다운로드/업로드, 메일 송신), 데이터 액세스, 보안, API 개발 등


      책은 얇은데 광범위한 내용을 다루다 보니 깊이가 없어 이 책만으로 실무에 적용하기에는 어려움이 있겠지만 많은 부분을 다루는 만큼 힌트를 얻을 수 있고 필요한 부분은 별도로 공부하며 실무에 적용하면 좋을 것 같다.


      나의 경우 스프링 부트를 사용해 개발을 하고 있고, 다른 사람들은 어떻게 공통 부분을 처리하고 운용, 아키텍처 구성은 어떻게 하는지 궁금했었는데 그런 부분에서 도움이 된것 같다. 


    • 배워서 바로쓰는 스프링부트2


       



      자바계열의 서버는 언제나 사랑을 받는 프레임워크입니다



      오늘날에도 여전히 스프링은 많은 사랑을 받고 있죠


       



      그래서 많은 사람들이 스프링으로 서버를 시작하려고



      도전하는데요



      저는 조금 더 편한 길을 선택하기로 했습니다



      스프링부트는 스프링에 비해



      훨씬 간편한 설정을 제공한다고 해서 선택해 보게 되었습니다


       


       




       



      시작부터 도커까지 모두 한권으로


       



      한빛미디어 출판사에서 출판중인 "배워서 바로 쓰는 스프링부트2" 이라는 책이다.



      서버개발을 하고자 하는 욕구가 있어서 구매하게 되었다


       



      제목에서부터 알 수 있듯 1이 이미 출간 되어있었던듯 하다.



      내가 책에서 얻고자 했던 것은 많지 않다



      간단한 API 구성 그리고 디비 커넥션 마지막으로 CI/CD 관련 부분이었다고 생각한다


       



      의외로 많은 도움을 받을 수 있었다



      기본적인 배포루틴을 짜는 것부터



      간단한 서버개발의 기초를 배울 수 있었다



      그리고 마지막 부근에는 도커라이즈 하는 방법까지 있어



      전반적인 구성은 알찼다고 생각된다


       



      의외로 많은 책에서 많은 이야기를 하지만



      뒤돌아보면 내가 읽은 것이 정확히 어떤 내용인지를 모르는 경우가 많은데



      이부분에 있어서는 충분히 훌륭한 책이다


       



      단점이라면, 아직도 자바라는 점인데



      현재의 대부분 큰 기업에서는 코틀린으로 넘어가는 과정에 있다는 점을 생각해보면



      아쉬운 부분이 아닐 수 없다


       



      자바로 서버개발을 제대로 시작해보고 싶다면



      이 책도 함께 읽어보는건 어떨까?


       




       



      책을 읽으면서 든 생각



      프론트 개발자가 프론트를 업으로 하는 것에는



      분명한 개인의 성향과 적성이 어느정도 있다는 것입니다



      첫 입문이라서 그럴 수 있지만



      서버라는 눈으로 확인되지 않는 것을 제대로 설계하고



      이해하는 것은 생각보다 어렵다는 것을 느끼게 되었습니다



      많은 서버개발자들에게 존경을 표하는 바입니다


       


       


       



    • 배워서 바로 쓰는 스프링부트2.jpeg


       

      스프링 부트 프로젝트를 진행하면서, 더 많은 기능들을 다뤄보고 싶었습니다. 

       



      적절한 참고서가 필요했는데 시중의 다른 스프링 부트 책들을 몇권 봤었습니다. 



      그렇게 만족스럽지는 못했습니다. 사실 배워서 바로 쓰는 스프링 부트2의 책도 크게 다르지 않겠지 라는 생각이 들었습니다. 막상 받아보니, (유용한 기능이지만)제가 모르는 기능들이 엄청 많았고 백엔드 영역뿐만 아니라 인프라나 유지보수성에도 신경쓴 내용이 눈에 띄었고, 그런 부분이 크게 와닿았습니다. 



      당장 스프링 부트를 써야하는 개발자들에게는 약간 과한 부분도 있다고 생각이 들지만, 필요한 부분 위주로 읽어나가면 충분히 활용도가 높은 책이라 생각이 듭니다. 



      지금까지 읽은 스프링 부트 책중에서 가장 마음에 들었습니다 : ) 




    •  


       



      1. 읽계된 계기

      - 현재 회사에서 수행하고 있는 업무들을 거의 대부분 스프링 부트2로 수행하고 있어 책 리뷰 기회를 얻어 책을 살펴볼 수 있었습니다.
      - 개인적으로 일본인 저자의 IT 서적들을 신뢰하는 편이라서 책을 꼭 한번 보고 싶었습니다.

      2. 읽으면서 느낀점

      - 기능 설명 위주의 책이 아니라 실무를 하면서 겪게 되는 여러 지점들을 예제와 함께 풀어가는 책입니다. 책 제목 그대로 배워서 바로 쓰는 스프링 부트 2이죠
      - 부트2 시작, 공통처리, 데이터 엑세스, 보안, 화면 개발, API 개발, 팀 개발, 운용, 아키텍쳐 구성의 챕터로 효율적인 개발을 위해 활용할 수 있는 기능, 라이브러리 등을 설명하고 있습니다.
      - 아쉬운 점으로는  데이터 엑세스 파트에서 도마라는 라이브러리를 사용하고 있는데요, 무척 생소한 라이브러리였습니다. 사실 현업에서는 JPA, Mybatis, Jooq 등을 주로 사용하고 있는데, 개인 프로젝트에서는 써볼 수 있어도, 회사에서 도입하기에는 좀 무리가 있겠다 싶은 파트였습니다. 
      - 그 이외에도 책에서 소개하는 방식들에서 권한 처리나 오류로그 처리 등을 Interceptor 단에서 처리하는 방식으로 설명이 되어 있는데 이 부분도 썩 마음에 들지 않는 부분이었습니다.
      - 좋았던 점은  팀개발 파트에서 소스생성기,  운용파트에서 모니터링과 배포, 지연시간 분석 등 부분에서 현업에서 일할때 도입해보면 좋을 것 같은 지점들을 찾을 수 있었습니다.


       


      3. 총평


      - 스프링 부트2를 현업에 도입하고자 책을 보시기 보다는 이미 스프링 부트를 알고 있는 분들이 접해보지 못했던 기법들을 찾고 아이디어를 얻을 때 읽기 좋은 책이라고 생각합니다.






    • 책소개





      웹 애플리케이션을 효과적으로 구현하는 실무 비법 대방출


       


      스프링 부트로 웹 개발을 할 때 마주치는 문제를 속 시원하게 해결하고 싶다면 이 책이 답이다. 스프링 부트에서 자주 발생하는 문제의 해결 방법부터 웹플럭스 사용법까지 실무에 꼭 필요한 내용만 담았다. 웹 개발 경력 10년 이상의 베테랑 저자들이 실전 경험에서 얻은 노하우를 친절한 예제를 통해 설명한다. 웹 애플리케이션 공통 처리, 데이터베이스 액세스, 보안, 화면 개발, API 개발, 운용, 시스템 아키텍처 등 실무에 필요한 모든 내용을 총망라하는 스프링 부트 완벽 활용서다. 문제 해결을 넘어 문제를 예방하는 실무 노하우를 확인하고 스프링 부트 마스터가 되어보자.


       


       



      이 책에서 다루는 내용


      • 프레임워크로 데이터베이스 액세스 최적화하기

      • 스프링 시큐리티를 이용해 고성능 보안 환경 구축하기

      • 타임리프를 이용해 효율적으로 화면 개발하기

      • 도커를 활용해 팀 개발 협업 능력 높이기

      • 스프링 프로파일로 시스템 운용 최적화하기







      자세한 내용 : https://www.hanbit.co.kr/store/books/look.php?p_code=B5218628357


       


       



       


      배워서 바로 쓰는 스프링 부트 2


      스프링 부트로 웹 개발을 할 때 마주치는 문제를 속 시원하게 해결하고 싶다면 이 책이 답이다. 스프링 부트에서 자주 발생하는 문제의 해결 방법부터 웹플럭스 사용법까지 실무에 꼭 필요한 내


      www.hanbit.co.kr








      목차






      CHAPTER 1 스프링 부트의 구성


      __1.1 스프링 부트의 기초


      __1.2 웹 애플리케이션 개발


      __1.3 예제 프로젝트의 구성







      CHAPTER 2 웹 애플리케이션의 공통 처리


      __2.1 유효성 검증


      __2.2 객체 매핑


      __2.3 로그 출력


      __2.4 파일 다운로드


      __2.5 파일 업로드


      __2.6 메일 송신







      CHAPTER 3 데이터 액세스


      __3.1 스타터


      __3.2 도마 사용 방법


      __3.3 엔티티 공통 처리


      __3.4 페이징 처리


      __3.5 배타 제어


      __3.6 논리 삭제







      CHAPTER 4 보안


      __4.1 스타터


      __4.2 인증


      __4.3 RememberMe


      __4.4 인가


      __4.5 CSRF 대책


      __4.6 이중 송신 방지







      CHAPTER 5 화면 개발


      __5.1 타임리프


      __5.2 폼 바인딩


      __5.3 전처리


      __5.4 템플릿 공유


      __5.5 타임리프의 다른 기능


      __5.6 정적 콘텐츠 관리하기







      CHAPTER 6 API 개발


      __6.1 스프링 부트를 이용한 API 개발


      __6.2 스프링 부트를 이용한 API 연계


      __6.3 API 개발 효율 극대화







      CHAPTER 7 팀 개발


      __7.1 인프라 구성 관리


      __7.2 데이터베이스 구성 관리


      __7.3 유지보수 가능한 테스트 코드


      __7.4 문서 생성 도구 활용


      __7.5 소스 생성기







      CHAPTER 8 운용


      __8.1 환경별 설정 관리


      __8.2 애플리케이션 서버 설정


      __8.3 애플리케이션의 상태 확인


      __8.4 애플리케이션 모니터링


      __8.5 요청 추적


      __8.6 지연 시간 분석


      __8.7 무정지 배포


      __8.8 컨테이너 오케스트레이션 배포







      CHAPTER 9 시스템 아키텍처 구성


      __9.1 시스템 아키텍처 고찰


      __9.2 시스템 아키텍처 구성안


      __9.3 구축 튜토리얼







      CHAPTER 10 스프링 5와 스프링 부트 2의 신기능


      __10.1 웹플럭스







      CHAPTER 11 로컬 개발 환경 구축


      __11.1 깃 설치


      __11.2 예제 프로젝트 다운로드


      __11.3 도커 설치


      __11.4 JDK 설치


      __11.5 IDE 설치







      CHAPTER 12 예제 애플리케이션


      __12.1 관리 애플리케이션의 기능


      __12.2 관리 애플리케이션 이용 방법







      책을 읽으며






       


      이번에 리뷰하게 된 책은 '배워서 바로 쓰는 스프링 부트2' 입니다. 


      최신 버전의 Spring Boot는 2.3.0 버전입니다. 2.x 의 다루는 책들이 많이 나오고 있기 때문에 그 중 한권을 책이라고 생각됩니다. 어떤 내용을 담고 있는지 알아보겠습니다.








       


      책을 읽으면서 살짝 눈이 아팠던 부분은 작은 글씨로 소스코드 전체를 책 내용에 삽입하면서 책의 두께를 두껍게 하는 단점까지 더 해져 있다는 점입니다. 소스코드의 경우 전체를 설명할 필요없이 별도의 파일로 제공하면서 중요한 부분만 설명하면 어땠을까 하는 생각이 듭니다. 소스코드 뿐 아니라 Gradle 내용 전체를 적어야 했는지 의문입니다.








       


      책 내용 중에는 오류 핸들링에 대한 내용도 나옵니다. 개발에 있어서 오류를 어떻게 처리 해야할까는 항상 고민해야하는 문제인데 그런 부분들까지 다루어주고 있어서 좋았습니다.








      실제로 책에서는 RestTemplate을 다루는 내용도 나오는데요. 스프링 부트 2.x 버전에서는 RestTemplate 보다는 WebFlux를 리액티브 통신을 권장하고 있습니다. RestTemplate의 내용도 다루지만 Chapter10에서는 신기능인 WebFlux에 대해서도 다루고 있습니다.










      스프링 부트를 입문하고자 하는 독자보다는 스프링과 스프링에 대해서 어느정도 알고 있는 독자가 읽기 쉬운 책이었습니다. 입문자 분들은 더 쉽게 설명되어 있는 책을 찾아보시는게 좋을 것 같습니다.









    • 이번년도부터 Spring Boot 프레임워크를 꾸준히 사용하고 있다


      많은 백엔드 직군에서 요구하고 있는 기술이기도 하고 Java 개발에 대한 갈증이 있어 익히는 중이다.


       



      이번 5월 한빛미디어의 리뷰활동 리스트에 <배워서 바로 쓰는 스프링 부트2> 서적이 있었고 운이 좋게도 이 책으로 리뷰할 수 있게 되었다.




      이 책은 스프링부트 프레임워크를 사용해보고 여러가지 도구들을 함께 곁들이며 운용을 해보고 싶으나 로드맵, 좋은 정보를 주변에서 찾기에 쉽진 않은 사람들(예를 들면 대학생, 독학하는 분이 있겠다) 에게 강력하게 추천하고 싶다.



      스프링 부트를 처음 배우는 사람들에게는 추천하지 않는다! 이런 분들은 <처음 배우는 스프링 부트2> 이 책을 권한다


       


      그동안 여러가지 개발 프레임워크 책을 읽으면서 그저 공식문서의 한글판 대체재가 아닌가를 종종 느껴왔지만


      이 책만큼은 '스프링 부트' 라는 주제의 정리가 잘 된 기술 포스트들을 인쇄물로 보는 것 같았다. 


       



      내가 느낀 이 책의 가장 큰 장점은 Spring 공식문서 스프링 부트 튜토리얼 을 따라하고 나서, 배우기 좋은(어쩌면 Spring Boot만 휙 배우고 지나칠 수도 있는) 다음 과정들을 잘 수록했다는 것이다.


      템플릿부터 API까지, 그리고 스프링 부트와 함께 사용하기 좋은 모니터링 도구와, Swagger, Nginx, Docker 등을 함께 다룬다.


       


      아직 책의 모든 내용을 읽진 못했지만, 내가 관심있는 파트이기도 한 무중단 배포와 오케스트레이션 배포를 가장 재밌고 유익하게 읽었다.


       


      이 책을 통해 개발과 서비스 운영에 있어서 좋은 지식을 얻어 갈 수 있었다. 






    • 20200529_131115.jpg


       


      스프링 부트는 복잡한 과정 없이 스프링 어플리케이션을 구동할 수 있어 많은 프로젝트에서 사용되고 있습니다.


      스프링 프레임워크를 이용해 빠르게 원하는 어플리케이션을 만들어 볼 수 있다는 점은 매우 큰 장점입니다.


      하지만 스프링 부트를 사용해 보지 않았다면, 바로 어플리케이션 개발을 시작하기에는 어려움이 있을 수 있습니다.


      그럴 때 이 책을 참고하여 스프링 부트를 시작한다면 큰 도움이 될 수 있을거라 생각합니다.


      주제/기능 단위로 각 장을 구성해서 필요할 때마다 찾아 볼 수 있게 구성이 잘 되어 있습니다.


      운영 및 배포에 관련된 내용들도 담고 있어 전반적인 어플리케이션 개발 과정을 경험해 볼 수 있습니다.


       


      빠르게 스프링 부트 어플리케이션을 만들어 보고 싶은 분들에게 추천합니다.

    •  



      KakaoTalk_20200526_074838534.jpg


       



      장점



      1. 얇고(376p), 작다



      2. 프로젝트에 대한 일반적인 흐름을 파악할 수 있다.


       



      단점



      1. 얇은거에 비해 가격이 좀 나간다



      2. 실무 위주이기 때문에 기본기를 알아야 함

    • 서문에도 저자가 얘기 했지만, 이책은 스프링 입무자를 위한 책이 아니다.

       


      스프링 개발자들이 스프링을 사용하면서 알아야 할 배포/운영에 대한 부분을 알기 쉽게 설명해준 책이다.


       


      이론을 원하는 사람들에게는 실망할 수 있지만..


       


      스프링 개발자가 실무 배포/운영을 계획 진행할 떄 참고할 수 있는 좋은 서적이라 생각된다.


    • 한빛미디어를 통해 발간된 번역서 "배워서 바로 쓰는 스프링 부트2" 책을 리뷰 이벤트를 통해 받아보게 되었다. 재미있는 배경이 있는데 본인이 최근에 맡은 신규 프로젝트가 스프링으로 구성되었고, 덕분에 스프링을 처음 접하게 되었다. 그 후로 스프링 개발을 5개월 정도 하고 다른 업무(PM)를 진행하게 되어 스프링에 대한 감을 잃어가고 있었다. 원래 빠르게 익힌 것은 빠르게 잊게 된다는 말처럼 실무에서 실력자들(십수 년 자바&스프링으로 개발을 해오신 고수들)에게 어깨 넘어 배웠던 내용들이 머릿속에 오래 남아있지 않았던 것 같다. 아무튼, 다시 스프링을 통해 업무를 처리하고 감을 되찾아야겠다고 생각하는 찰나에 이 책을 만나게 되었다.


       


      정말 바로 쓸 수 있을까?


       


       


      이 책을 처음 본건 페이스북 광고를 통해서인데, 댓글에 작성되어 있던 비판적인 내용이 눈에 들어왔다. 대충 내용은 "대체 도커는 왜 다룬 것이냐" 뉘앙스였는데 사실 잘 기억은 안 난다. 겉핥기 느낌이라 오히려 책을 어렵게 만들었다는 내용이었던 것 같다. 정말 이 책은 아래 보이는 대로 다양한 내용을 다루고 있다. 하나씩 순서대로 보면 프로덕션을 위해 없어서는 안 되는 단계들이다. 개발한 스프링 웹 애플리케이션을 데이터베이스 최적화하고, 보안 환경을 구축하고, 화면 개발까지 한다. 그리고 도커를 통해 동일한 환경에서의 실행을 보장하며 시스템 운용까지 다룬다. 사실 뒤쪽에서는 쿠버네티스나 프로메테우스, 클라우드(AWS), 테라폼처럼 예전 백엔드 개발자에게는 지루하기 짝이 없는 내용을 다룬다. 하지만 요즘은 시대가 변했다. 백엔드 개발자도 클라우드 환경을 이해하고 있어야 하고 신기술에 대한 얕은 지식 정도는 충분히 숙지하고 있어야 한다. 프런트 개발자가 쏟아져 나오는 웹 표준을 다루는 것과 크게 다르지 않다.


       


      이걸 다 다룬다. 물론 심도 있지는 않다


       


       


      이 책은 그리 두꺼운 책이 아니다. 두께만으로 판단하기에는 무리가 있지만 결국 스프링 부트2의 바이블이 될만한 책은 아니라는 이야기다. 하지만 이미 실무에서 스프링 부트2를 다뤄본 개발자라면 이 책을 통해 개념을 잡는 정리 혹은 다시 감을 찾을 수 있을 것이다. 인텔리제이 설정부터 시작해서 웹 애플리케이션의 구조, 그리고 애너테이션에 대한 예제까지 두루 잘 다루고 있기 때문이다. 하지만 실무에 거리가 멀거나 스프링을 입문하려는 사람에게 이 책은 권하지 않는다. 설명하지 않고 넘어가는 다양한 전문용어 때문에 혼란을 겪게 될 수 있다. 

    • 입문자에게는 책 내용이 다소 어려울 수 있겠지만 실무자가 이 책을 참고하면 도움이 될만한 내용이 담겨져 있는거 같고


      github로 예제 프로젝트 소스로 제공하고있어서 편한것 같습니다.




    • java 개발자로서 spring을 많이 쓰고, 또한 spring boot도 프로젝트에서 사용하고 있다.


      주로 프로젝트를 하면서 이런기능 저런 기능이 있었으면 좋겠다는 생각을 많이 하고 있다.


      프로젝트에서 만든 공통기능들을 정리하려고 생각은 하고 있지만, 이 책을 보니 많은 공통기능을 먼저 정리해서 실전에도 써 볼 수 있을 듯 하다.


      또한, 오픈소스를 활용해서 좀 더 다양한 설정을 할 수 있는 예제를 제공한다. 절반 정도는 알고 있던 것들이었고, 절반은 새로운 것들이 나와서 흥미롭게 책을 볼 수 있었다.


      전반에는 spring boot에 관련된 내용이 나오고, 후반에는 아키텍처, 환경설정이 나온다.


      다만 이 책은 spring boot, docker, kubenetes에 대해서 익숙하거나 사용해 본 사람들이 보면 더욱더 좋을 뜻 하다.



      입문서로는 어려울 있을 하다.


    • [한줄평]



      실무에서 바로 스프링 부트를 써먹을수 있다.







      [목차구성]



      CHAPTER 1 스프링 부트의 구성



      CHAPTER 2 웹 애플리케이션의 공통 처리



      CHAPTER 3 데이터 액세스



      CHAPTER 4 보안



      CHAPTER 5 화면 개발



      CHAPTER 6 API 개발



      CHAPTER 7 팀 개발



      CHAPTER 8 운용



      CHAPTER 9 시스템 아키텍처 구성



      CHAPTER 10 스프링 5와 스프링 부트 2의 신기능



      CHAPTER 11 로컬 개발 환경 구축



      CHAPTER 12 예제 애플리케이션







      [이 책의 특징]




      • 각 장과 각 절의 내용이 어느정도 독립적이라서 처음부터 볼 필요 없이 원하는 부분만 읽을수 있다.





      • 스프링 개발중 문제가 생긴다면 해당 목차를 보고 해결할수 있다.









      [이 책의 대상 독자]




      • 3년차 이상 스프링 개발자





      • 프로젝트 적용하기 어렵거나 더나은 방법이 없는지 고민하며 실무 활용 방법을 찾는 개발자





      • 스프링과 스프링 부트를 모르는 개발자는 이해하기 어려울수도 있음









      [서평]



       한국에서 자바 기반 엔터프라이즈 프레임워크는 스프링 프레임워크를 대부분 사용하고 있다. 특히 웹 개발에서 관공서 및 기업에서 전자정부 프레임워크(스프링기반)를 사용을 권장하고 있어 그 의존도가 매우 높습니다. 그래서 SI 개발업체에서 채용시 스프링 기술 체크는 필수라고 볼수 있습니다. 그러나 스프링 프레임워크로 프로젝트를 하다보면 우스게 소리로 세팅만 하면 반은 했다고 합니다. 그만큼 설정이 복잡하고 세세한 것들이 많습니다. 그래서 그런 부분을 간소화 하기 위해 나온 기술이 스프링부트입니다. 이책에서 다루는 스프링 부트는 개발 현장에서 매우 많이 쓰고 있습니다. 크게 장점으로는 



      1.스프링 애플리케이션을 단독으로도 실행 할수 있습니다. 기존 스프링 프레임워크는 WAS를 따로 설치 해서 구동 하는 방식 이었으나 스프링부트에서는 임베디드 방식으로 바로 jar으로 웹 화면을 띄울수 있습니다. 



      2.기본 설정이 되어 있는 스타터 컴포넌트를 제공합니다. 기존에서는 스프링 관련 XML 혹은 자바 클래스 파일에 각각의 설정을 해줘야 했습니다.



      3.설정을 위해 일일이 XML 코드를 생성하거나 설정해야 하는 번거로움이 없다.



      이렇게 기존의 스프링 프레임워크의 단점을 보완해서 보다 쉽게 애플리케이션을 개발할수 있습니다. 그렇기에 스프링을 사용하는 자바 개발자라면 반드시 알아둬야 할 기술입니다. 이책에서는 저자들의 실전 경험을 통해 얻은 지식과 노하우를 바탕으로 스프링 부트를 어떻게 활용하는지 예제를 통해 구체적으로 배울수 있습니다. 







      이 책의 구성



      1장. 이 책에서 다루는 스프링/스프링 부트 프로젝트 구성을 설명한다. 특히 웹 애플리케이션의 디렉터리 구조를 설명한다.



      2장. 웹 애플리케이션을 구축할 때 기능 사양에 의해 변경이 발생하지 않는 공통 처리 부분을 설명한다.



      3장. 데이터베이스 액세스의 라이브러리 통합과 이용 방법을 설명한다. 저자들의 경험상 스프링 데이터 JPA로는 ‘프로그램에서 실행되는 SQL을 떠올리기 어렵다’는 문제가 있었기에 이 책에서는 도마(Doma) 2라는 O/R 매퍼를 사용한다.



      4장. 스프링 시큐리티의 사용법과 응용법을 설명한다. 스프링 시큐리티는 입문서나 가이드라인이 있지만, 실제로 이를 응용하려고 하면 난관에 봉착한다. 저자들이 프로젝트를 진행하며 각자 고민한 내용을 설명한다.



      5장. 타임리프를 사용한 화면 개발 방법을 설명한다. 다국어 대응 등 실제로 문제가 되었던 내용을 설명한다.



      6장. REST API 제작법과 호출 방법을 설명한다.



      7장. 스프링/스프링 부트의 내용을 넘어서 팀 개발에 필요한 환경, 데이터베이스의 구성 관리, 단위 테스트 실시 방법을 설명한다.



      8장. 운용 시 문제가 생길 만한 부분을 방지하고 해결하는 방법을 설명한다.



      9장. 스프링 부트를 사용한 애플리케이션을 적절히 배치하기 위한 시스템 구성 방법을 설명한다. 최근 컨테이너 기술이나 클라우드 기술은 개발 환경에서 충분히 사용할 만하다. 스프링 부트의 애플리케이션을 클라우드의 컨테이너에 탑재하는 방법을 설명한다.



      10장. 스프링 5와 스프링 부트 2에서 새롭게 적용된 웹플럭스에 대해 간단히 설명한다.



      11장. 예제 프로젝트를 이용한 개발 환경 구축 방법을 소개한다.



      12장. 예제 프로젝트의 이용 방법과 제공 기능을 간단히 소개한다.







      이책의 구성은 중에서 가장 마음에 들었던 부분은 3장, 4장, 8장, 10장이 도움이 되었다. 스프링 프레임워크 입문서를 보고 스프링 부트 실전 감각을 익히기에 좋은 책이라 생각합니다.


       


       


    • 배워서 바로 쓰는 스프링 부트 2


       


      스프링 부트를 처음 접했던 것은


      대략 2013년 쯤???? 이었던거 같다.


      '쉽게 접근 할 수 있는 스프링' 이라는 것에 끌려 무작정 이 녀석에게 달려들었던거 같다.


      하지만 아쉽게도 당시엔 번역서 하나 없는 시기였고,


      발빠른 고수님들의 포스팅과 되지도 않는 영어 실력으로 외국 포스팅을 보면서 이것저것을 시도해 보았었다.


      그래서 그런지... 당시에는 그냥 스프링 보다도 더 어렵게 느껴졌었다.


      간단한 웹 페이지 하나 띄워보고 접었던 것으로 기억한다.


      당시 나에겐 상당히 어려웠다.


       


      시간이 많이 지났다.


      이제 스프링부트의 버전은 2.x 이다.


      스프링부트도 많은 책이 나왔고, 많은 포스팅도 생겼다.


      '사이드 프로젝트에 스프링부트를 적용해 보자!' 라고 많은 기대를 하며 책을 받았다. 


       


      하지만....


      이 책은 쉽지 않다.


      아쉽게도 이 책은 입문서가 아니다.


      일정 수준 스프링을 개발해 본 경험과 어느정도 스프링부트를 경험해본 사람들


      독자층으로 하고 있다.


       


      그래서 인지 책의 목차도 조금 독특하다 생각했다.


      입문서는 보통 책의 앞부분에 개발환경에 대해 다루지만 


      이 책은 책의 거의 마지막 부분에 개발환경에 대해 잠시 다룬다.


      어느 정도 경험을 해보지 않고서는 책을 처음 읽어 보면서 예제를 따라 하는 것이 쉽지는 않다는 말이다.


       


      또한 이 책에서는 다른 여러가지 프레임 워크를 함께 다룬다.


      개발환경 관리를 위해 도커 


      데이터 액세스를 위해 도마


      API 개발을 위해 스웨거


      운영을 위해 프로메테우스


      등등....


       


      이런 프레임워크들을 함께 다루지만 책의 분량이 많지 않다.


      정말 필요한 정보만을 뽑아서 구성했기에, 처음 접해본 독자라면 많이 혼란스러울 수 있을거 같다.


      (아직 나도 도커 이외에는 접해본 적이 없다...)


       


      개발 도구는 인텔리제이(Intellij IDEA)를 사용한다.


       


      스프링부트에 대해 어느 정도 기본을 갖추고 있다면


      이 책을 보면서 기본 개발환경부터 서비스 운영에 대한 전반적인 기초를 다듬어 보는 것은 어떨까 한다.

  • 내용이 없습니다.
닫기

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