한빛출판네트워크

IT/모바일

실전 스프링 부트 워크북

마이크로서비스 빌드, 메시지와 DB 핸들링, 테스트, 플러그인까지

한빛미디어

번역서

절판

실전 스프링 부트 워크북
좋아요: 23
  • 저자 : 펠리페 구티에레스
  • 역자 : 이일웅
  • 출간일 : 2017-06-01
  • 페이지 : 464쪽
  • ISBN : 9788968487590
  • 물류코드 :2759

합계 : 25,200

  • 생산성 향상을 꿈꾸는 현업 개발자를 위한 스프링 부트 실무 가이드!

     

    스프링 부트는 ‘최소한의 노력으로 스프링 기반 프로젝트를 시작할 수 있는’ 기술입니다. 강력한 스프링 기능을 바탕으로 많은 코드 작성 없이도 바로 출시가 가능한 수준의 앱을 간편하게 만들 수 있습니다.

    이 책은 스프링 부트 초보자가 궁금할 만한 요소(환경 구축, 설정, 앱 개발, 테스트, 배포 등)를 단계별 구성으로 적절히 배치해 접근성을 높인 실무 대비용 입문서입니다. 예제 코드에 많은 지면을 할애했고 중요한 부분은 구체적 설명을 함께 제공하여 독자의 이해를 도왔습니다. 스프링 부트를 시작하려는 사람, 특히 생산성은 높이면서 개발 시간은 단축하고 싶은 모든 자바 개발자에게 유용한 책입니다.

     

    (상세) 실전 스프링 부트 워크북(733px).jpg

     

  • [저자] 펠리페 구티에레스

    솔루션 소프트웨어 아키텍트. 멕시코 몬테레이 캠퍼스 고등 기술 연구원에서 컴퓨터 과학 학사/석사 학위를 받았습니다. 공공, 유통, 의료, 교육, 금융 등 다양한 분야에서 20여 년 동안 IT 경력을 쌓았습니다. 지금은 피보탈 사에서 클라우드 파운드리, 스프링 프레임워크, 스프링 클라우드 네이티브 애플리케이션, 그루비, 래빗MQ 등 전문 분야의 수석 기술 강사로 활동합니다. 노키아, 애플, 레드박스, 퀄컴 등 굴지의 대기업에서 솔루션 아키텍트로 근무한 경험이 있습니다. 본서 외 저서로 『Introducing Spring Framework』(Apress, 2014)가 있습니다.

    [역자] 이일웅

    20년 가까이 국내외 엔터프라이즈 현장에서 자바 전문 풀스택 개발자, 소프트웨어/애플리케이션 아키텍트로 프로젝트를 수행했다. 어느덧 50대를 바라보는 중년 아재가 됐지만 아직도 궁금한 기술이 많은 엔지니어이고, 20여 권의 IT 전문서를 번역하며 동료, 후배 개발자들과 지식과 경험을 나누는 일에도 힘쓰고 있다.
     
  • Chapter 1 스프링 부트 들어가기

    1.1 스프링 부트 

    1.2 정리하기 

     

    Chapter 2 스프링 부트 앱 처녀 개발

    2.1 스프링 부트 CLI 설치 

    2.2 메이븐과 그레이들로 빌드하기 

    2.3 외부 도구 사용하기 

    2.4 처음 만드는 스프링 부트 앱 

    2.5 정리하기 

     

    Chapter 3 스프링 부트 자동 구성과 주요 기능

    3.1 자동 구성 

    3.2 @EnableAutoConfiguration과 @Enable<기술명> 

    3.3 스프링 부트 주요 기능 

    3.4 애플리케이션 구성 

    3.5 정리하기 

     

    Chapter 4 스프링 부트 CLI

    4.1 스프링 부트 CLI 

    4.2 정리하기 

     

    Chapter 5 스프링과 스프링 부트

    5.1 스프링 웹 애플리케이션 

    5.2 스프링 부트에서 스프링을! 

    5.3 스프링 부트에서 스프링 기술 활용 

    5.4 정리하기 

     

    Chapter 6 스프링 부트 테스트

    6.1 스프링 부트 테스트 

    6.2 웹 테스트 

    6.3 정리하기 

     

    Chapter 7 스프링 부트 데이터 액세스

    7.1 SQL 데이터베이스 

    7.2 NoSQL 데이터베이스 

    7.3 정리하기 

     

    Chapter 8 스프링 부트 웹 개발

    8.1 스프링 MVC 

    8.2 스프링 부트 웹 애플리케이션 

    8.3 HAL 브라우저 갖고 놀기 

    8.4 정리하기 

     

    Chapter 9 스프링 부트 보안

    9.1 스프링 부트에 간단한 보안 적용 

    9.2 스프링 부트 OAuth2 

    9.3 정리하기 

     

    Chapter 10 스프링 부트 메시징

    10.1 메시징이란? 

    10.2 스프링 부트와 JMS 

    10.3 스프링 부트와 래빗MQ 

    10.4 스프링 부트와 레디스 

    10.5 스프링 부트와 웹소켓 

    10.6 정리하기 

     

    Chapter 11 스프링 부트 액추에이터

    11.1 스프링 부트 액추에이터 모듈 

    11.2 민감한 끝점 

    11.3 끝점 이름 바꾸기 

    11.4 CORS 지원 

    11.5 관리 끝점 경로 바꾸기 

    11.6 비웹 애플리케이션에서 스프링 부트 액추에이터 사용하기 

    11.7 정리하기 

     

    Chapter 12 스프링 부트 배포

    12.1 스프링 부트 일기 앱 구성 

    12.2 SSL 테스트 

    12.3 실행 가능한 JAR 만들기 

    12.4 실행과 배포 가능한 WAR 만들기 

    12.5 스프링 부트 앱을 서비스로 만들기 

    12.6 스프링 부트와 도커 

    12.7 정리하기 

     

    Chapter 13 스프링 부트 클라우드

    13.1 클라우드와 클라우드-네이티브 아키텍처 

    13.2 12-팩터 앱 가이드 

    13.3 마이크로서비스 

    13.4 클라우드 파운드리 

    13.5 피보탈 클라우드 파운드리 

    13.6 정리하기 

     

    Chapter 14 스프링 부트 앱 확장

    14.1 커스텀 스프링 부트 모듈 

    14.2 커스텀 상태 모니터 

    14.3 정리하기 

     

    Appendix A 스프링 부트 1.4.x 릴리스 노트

    A.1 스프링 부트 1.3에서 업그레이드 

    A.2 다른 업데이트

  • 스프링 부트 설치부터 앱 개발, 테스트, 배포까지!

    생산성 높은 앱 개발을 위한 실무 대비용 입문서!

     

    스프링 부트는 3년 전 처음 등장한 이래 꾸준한 발전을 거듭하고 있다. 국내 시장 규모는 아직 크다고 할 수 없으나 기술 자체에 대한 자바 개발자들의 관심은 차츰 높아지는 추세다. 국내 전자정부 표준이기도 한 스프링 프레임워크가 대부분의 자바 프로젝트가 채택하는 명실상부한 1위 프레임워크임을 감안하면, 스프링 부트에 대한 니즈 역시 더욱 커질 전망이다.

     

    이 책은 스프링 부트에 입문하려는 현업 개발자에게 필요한 거의 모든 것을 담고 있다. 설치부터 테스트, 배포까지 생산성 높은 앱 개발을 위한 본격 활용서로, 생산성 향상과 시간 절약을 고민하는 모든 개발자를 위한 책이다. 도서의 상당 부분을 잘 동작하는 샘플 코드로 채웠으며, 중요한 부분에 대한 구체적 설명도 함께 제공해 입문자도 이해하기 쉽다. 

     

    원서 자체의 평도 좋지만, 특히 적재적소에 빈틈 없이 배치한 이일웅 역자의 추가 팁도 빛을 발한다. 필요한 부분마다 <역자 노트>를 통해 부족한 내용을 꼼꼼하게 보완했다. 역자가 서문에서 밝혔듯이, 그야말로 스프링 개발자들을 위한 최고의 종합 선물 세트라 할 수 있다.

     

    주요 내용

    • 스프링 부트 입문
    • 자동 구성과 주요 기능
    • 액추에이터 사용과 웹 개발
    • 마이크로서비스 구축
    • 데이터 액세스와 메시징 처리
    • 테스트 및 배포, 보안

     

     

    대상 독자

    • 생산성은 높이고 개발 시간은 단축하려는 모든 자바 개발자
    • 스프링 부트를 시작하려는 모든 개발자/ 학생

     


    • 스프링을 기본 원리를 알고 있고, 쉽고 빠른 개발을 위해 스프링 부트를 개발하고자 하는 개발자가 먼저 읽어야할 도서.








      스프링 부트는 다음과 같은 용도로 쓰기에 알맞은 기능을 가지고 있습니다.







      * 12 팩터앱 (12 Factor App) 가이드를 준수한 클라우드 네이티브 어플리케이션(http://12factor.net/)



      * 개발과 배포 시간을 줄여 생산성을 높임



      * 바로 제품 출시가 가능한 엔터프라이즈 스프링 앱 개발



      * 스프링 부트 액추에이어(상태체크 등 관리를 도와주는 모듈) 및 웹 어플리케이션을 실행할 냉장 컨테이너(톰켓,언더토우,제티등) 같은 비기능적 요건 충족







      - 실전 스프링 부트 워크북 p24








      몇년 전만해도 스프링으로 개발을 시작할때 챙겨야할 것들이 너무나 많아,스프링의 경험이 적은 개발자가 스프링 기반으로 간단하게 데이터베이스가 연동되는 REST Application을 개발하기가 쉽지 않았다. 반면 ROR(Ruby On Rails)나 Django, Grails 와 같은 프레임워크를 보면 간단한 명령으로 원하는 프로젝트의 구조가 만들어져 개발자는 개발에만 집중하면 되게 되었다.







      스프링 부트는 이러한 귀찮고 스프링 설정 경험자만의 산물인 복잡한 설정을 자동설정이라는 기능으로 원하는 바를 자동으로 파악해서 그 기능을 쉽게 사용할수 있게 해주며,(Chapter 3.스프링 부트 자동 구성과 주요 기능 참고), 톰캣 웹서버가 내장되어 굳이 tomcat까지 설치하는 수고까지 덜어주었다.







      한마디로 스프링부트는 개발자가 비지니스 로직에만 집중할수 있게 해주는 "스프링 지원 도구" 이다.







      이 책은 이러한 스프링부트의 원리를 단계적으로 이해하면서 이용할 능력을 키워준다.







      개인적으로 국내에 번역되어 나온 스프링부트 책 3권과 해외 서적 2권정도 읽었지만, 이 책이 그나마 스프링부트의 전반적인 설명을 제일 잘 하고 있다. 스프링 부트가 자동 설정을 어떻게 하고 있으며, 설정 관리를 어떻게 하고 있는지와 같은 설명들이 잘 되어있다. 하지만 스프링 부트를 완벽하게 이해하기 위해서는 Spring boot Reference Guide(https://docs.spring.io/spring-boot/docs/current/reference/html/index.html)를 탐독해야만 한다. 



      빠른 시간에 스프링 부트에 대한 동작원리도 이해하며, 활용할수 있는 내용을 훑고 싶다면, 이 책을 권하고 싶다.


       



      단점으로는 스프링을 모르는 개발자가 보기에는 어렵고 상세하게 설명되지 않는 부분이 많아 어려울수 있다. 그리고 데이터 베이스 연동이나, 메시징 연동과 같은 부분에서는 간략한 기능만 설명하고 있어. 샘플 타이핑 후 동작 체크정도 밖에 안될것 같다. 상세한 활용을 위해서는 spring의 메뉴얼을 참고해야만 한다.


       

    • 그 동안 스프링에 관련된 책을 많이 읽어본 것 같습니다. 물로 읽다가 실패한 책들도 존재합니다. 다른 분들께서 바이블 처럼 여기는 그책. ㅋㅋㅋ 물론 그 책은 매우 좋은 책이라고 생각이 됩니다. 단지 저의 능력이 그 책을 읽을 만큼이 아니었을 뿐..


      사람들이 스프링 부트는 쓰는 목적이 어떨까? 저에게 적용해서 생각해 보면 스프링 부트는 쓰는 목적은 ROR / Django 처럼 COC에 기반한 간단하 어플리케이션을 기대하고 해당 프레임워크를 사용할 것 같습니다. 그전의 스프링도 J2EE를 쓰는 사람들에게는 충격적인 프레임워크 였지만 위의 경량 프레임워크를 접하신 분들에게는 아마도 어려운 점이 많이 있었을 것입니다.


      하지만 이 책에서는 정말 스프링 부트를 다른 경량 프레임워크를 쓰는 수준만큼 정말 간단하게 사용할 수 있도록 잘 가이드를 해주는 것 같습니다. 아마도 저자는 학자나 이론가가 아니라 지금도 맥시코 어딘가에서는 프로그램을 작성하고 있는 중이 아닐까 생각이들 정도로 정말 현업에 종사하는 사람들이 빠르게 스프링 프레임워크를 사용할 수 있도록 정말 좋은 구성으로 되어 있는 책인 것 같습니다.


      이 책이 제가 읽어본 다른 책들에 비해 많이 좋았던 점은...



      1. 적절한 난이도(입문자에게) 너무 어렵지도 너무 쉽지도 않은.


      2. 적절한 커버리지 : 개발 환경 구성 ~ 배포까지 실제 운영환경에서도 사용할 수 있을 정도로 꼭 필요한 내용을 포함.

        • 배포 / 액츄에이터 / CLI / 클라우드를 이런 정도까지 다 다룬 책들은 별로...



      3. 클라우드 PAAS에 대한 소개 : CF / 피보탈 등에 대한 예제 수록 아주 디테일 하지는 않아도 예제 수준으로 따라 해볼 만큼 충분히..

      4. 새로운 기술(?) : 스프링에서 CLI / 프로퍼티 등에서는 많이 이야기 하고 있으나 실제로 이렇게 실전적으로 설명한 책들은 별로...

      5. 실제 어플리케이션을 작성하는 예제를 충분히 보여줌으로서 상용프로그램을 어느 정도 수준으로 작성해야 하는지에 대한 충분한 설명


      추후 기대하는 점은 실전 적용서로는 매우 좋음 별 다섯개 / 하지만 고급 활용자들 복잡한 구성/설정으로 쓰는 사람들에게 도움이 될 수 있도록 고급설정 에 대한 책들도 후속으로 나오면 매우 좋을 것 같습니다.


      그리고 마지막으로 P301에


      @Autowired Producer producer

      이 빠진 것 같습니다.


      좋은 책에 감사합니다.


    • Pro Spring Boot, 이랬던 책의 표지가 실전 스프링 부트 워크북, 이렇게 바뀌었다.


      ‘워크북(workbook)’ 이라는 단어의 뜻을 찾아보면 ‘작업자의 매뉴얼’, ‘연습 문제를 모아놓은 책’ 등이 있다. 내가 이 책의 제목을 봤을 땐 쿡북느낌의 필요할 때마다 레시피를 찾아 바로 적용하는 느낌의 책을 연상하게 되었다. 이전에 ‘스프링부트 공작소’라는 책을 봤는데 그러한 것이어서 이 책도 그러려니 했다. 하지만 책을 표지로만 판단하지 말라는 명언대로, 책을 계속 읽어보니 워크북과는 거리가 멀다는 느낌이 들었다.
      원서의 이름을 찾아보니 Pro Spring Boot였다. 아~ 역시. 책의 대상 독자는 어떨까?



      Who This Book Is For


      Experienced Spring and Java developers seeking increased productivity gains and decreased complexity and development time in their applications and software services.



      ‘향상된 생산성, 그리고 복잡도와 개발시간의 절감을 원하는 숙련된 스프링 및 자바 개발자’가 독자이다. 그런데 번역서의 난이도는 초중급이라고 되어있다. 여하간 스프링부트가 코드를 하나도 생성해내지 않고 내부적으로 어떻게 작동하는지, 어떤 옵션을 지원하는지 세세하게 설명하는 동시에, 스프링에 대해서도 복습하는 형식으로 설명을 추가적으로 해주고 있다. 이런 점에서 초보가 봐도 무방한 책이라고 생각했던 것 같다.



      책에서 아쉬운 점은 Maven을 의존성 관리툴로 설명하고 있는 점이다. 소스코드를 보면 Maven, Gradle 둘 다 사용할 수 있지만 커맨드를 실행할 때는 Maven위주로 설명하고 있다. p85에서 파라미터를 추가하는 테스트가 있는데, 동일한 작동을 시험해보기 위해 gradle 명령어를 찾아보고, 추가적으로 Task를 정의해줘야 했었다. Stackoverflow 참조


      책에 대해 좀 투덜거리긴 했지만 책의 내용은 전혀 흠잡을 곳이 없다. 스프링 자동구성, 스프링 부트 테스트, 데이터 액세스, 보안, 메시징, 액추에이터, 배포, 클라우드까지 주요한 내용들을 모두 담고있다. 생산성 향상을 위해 스프링부트를 현장에 투입하려는 사람들이 많아진 시점에 잘 나온 책인 것 같다. 추가적으로 사람들이 생산성을 위해 자바가 아니라 코틀린을 베이스로 개발하는 것도 고려하고 있는데, 코틀린 + 스프링부트 보일러 플레이트를 만드는 작업을 해보면 재밌을 것 같다.


      덧. 책이 만약 Gradle을 중심으로 설명했다면 아마 책이 더 얇아졌을것 같다 :)


    •   "실전 스프링 부트 워크북"은 Apress에서 출간한 "Felipe Gutierrez"가 저술한 "Pro Spring Boot"의 번역서다.






       



        먼저 스프링 부트에 대해 간략히 살펴보면, 스프링 부트는 Ruby on Rails(RoR)의 영향을 받아 시작된 프로젝트로 스프링 애플리케이션을 편리하게 개발하는 새로운 방법이다. 



        기존 스프링 프레임워크는 프로젝트 환경 설정을 하는데 많은 노력을 기울여야 하지만, 스프링 부트를 사용하게 되면 "구성보다는 관례"에 따라 환경을 자동으로 구성하고, 개발자는 실제 비즈니스 로직에만 집중할 수 있도록 도와준다는 이점이 있다.



       



        "실전 스프링 부트 워크북"은 스프링 부트의 태생부터, 스프링 부트의 특징과 Command Line Interface(CLI)를 이용하여 프로젝트를 구성하는 방법 등을 소개하는 것으로 시작한다. 



       



        그런 다음 "Journal"이라는 토이 프로젝트를 진행하며, 애플리케이션을 제작할 때 필요한 주요 기술(테스트, 데이터 액세스, WEB & Model-View-Controller(MVC), Security, Message(JMS)) 등을 토이 프로젝트에 적용하며 소개하고 있다. 







        책의 분량이 많지 않아 설명하는데 제약은 있을 수 있으나 각 기술의 소개와 간단한 활용법을 토이 프로젝트에 적용해가며 자연스럽게 스프링 부트의 활용법을 제시하고 있다. 







        간단한 예로 스프링 부트에 적용할 수 있는 주요 기술을 소개한다는 점에서 구성 능력에 높은 점수를 주고 싶다. (단, 최근 스프링 부트의 버전과 이 책의 예제에서 활용하는 스프링 부트의 버전이 차이로 인해 발생하는 오류는 다소 있을 수 있다. 이 부분만 주의해서 예제를 따라간다면 괜찮은 듯 하다.)



       



        그리고 스프링 부트에서 제공하는 관리 기능인 "Spring Boot Actuator"를 소개하고 있다. "Actuator"는 실제 애플리케이션의 상태를 확인할 수 있고, 특정 부분의 제어까지 할 수 있는 매력적인 도구로 실제 운영 환경에 사용해도 큰 문제가 없을 정도로 완성도가 높다.



       



        끝으로 제작한 프로젝트를 배포하는 방법과 다른 스프링 부트 앱과의 연동하는 방법을 소개하고 있다. 스프링 부트 앱을 배포하는 다양한 방법을 소개하고, 다른 스프링 부트 앱과의 연동하는 부분도 있으니 관심있는 사람은 꼭 한 번 읽어보시길 추천한다.



       



        "실전 스프링 부트 워크북"은 500페이지가 안되는 분량에 많은 기술을 소개하다보니 부족한 부분도 없지 않지만, 자바와 스프링 프레임워크를 경험해 봤던 개발자가 처음 스프링 부트를 만날 때 두려움을 없애기에는 매우 좋은 책이란 생각입니다.







        스프링 프레임워크를 전혀 다뤄보지 않은 개발자에겐 이해하기 힘들 수 있어 추천할 수 없지만 경험해본 개발자라면 읽기 수월한 좋은책으로 추천~!!!!




    •  


      책 이름에 "실전"이라는 이름이 붙어 있을 정도로 이 책에는 수많은 실전 예제들이 빼곡하게 채워져 있다.


       


      자바 프레임워크 스프링부트가 처음 나왔을 때만 해도 나는 무거운 스프링을 조금 가볍게 만든 경량화 프레임워크라고만 생각했었다.


      이런 단편적인 생각으로 책에 접근했었는데 이 책은 어느 순간 책을 읽고 있는 내가 어서 빨리 스프링부트를 사용해보고 싶다는 생각에 사로잡힐 정도로 자세하고 이해하기 쉽도록 설명이 되어 있다.


       


      스프링부트가 만들어지게 된 이유부터 시작해서 스프링부트가 왜 좋은지, 궁극적으로 스프링부트를 사용해서 어떤 것을 할 수 있는지, 현재 자바 기반으로 구성된 많은 시스템에서 사용하고 있는 기술들을 스프링부트에 적용하기 위해서는 어떤 것을 하면 되는지, 사람으로 말하자면 발끝부터 머리끝까지 모든 부분을 설명해주고 있다.


       


      물론, 책 한 권에 스프링부트의 모든 내용을 담기는 부족해서 기술적으로 아주 깊은 단계까지 설명하지는 않지만, 이전의 많은 서적이 저지른 잘못인 수박 겉핥기식의 접근이 아니라 적절한 깊이를 가지며 친절하게 설명한 부분에 대해서는 정말 찬사 받을 만하다고 생각한다. 


       


      이 책은 저자의 깊은 고민에서 나온 결과물이라고 생각하며, 스프링부트에 대해 이렇게 쉽게 접근할 수 있도록 책을 만들어준 저자와 역자에게 감사하다.


      특히 코드 내에 변경점에 대해 진하게 처리한 부분은 정말 책을 보는 내내 "고구마를 3개쯤 먹은 후에 먹는 사이다"같은 느낌을 선사해 주었다.


       


      스프링부트를 스프링에 빗대어 한 줄로 설명해보면 이렇다.


      "스프링이라는 자바 프레임워크는 강력하다, 스프링부트는 그 강력함에 편리함을 더해 개발자가 코딩할 일이 없을 정도다."


       


      스프링은 분명히 강력한 프레임워크이며 대형 규모의 스케일까지 커버 할 수 있을 정도로 강력하다.


      그리고 자바의 새로운 기술 스택에 맞게 계속해서 기능이 추가되고 있다.


       


      스프링부트는 거기에 더해 코드 10줄 + XML 설정을 추가해야 하는 부분을 설정에 필요한 XML 내용은 전부 자동으로 처리하며, 실제로는 코드 2~3줄 정도로 스프링의 모든 기능을 완벽히 수행할 수 있다는 것이 정말 놀라웠다.


       


      책을 보면 마치 예전의 밥 아저씨처럼 "참 쉽죠"라며 얘기하는 느낌이다.


      하지만 밥 아저씨와 다른 점은, 정말 실제로도 쉽다는 것이다.


       


      스프링부트를 설명하는 쉬운 책을 꼽으라면 단연 이 책을 권하고 싶다.


      앞에서도 언급 했듯이 책을 보는 동안 내 머릿속을 채운 것은 "빨리 스프링부트를 사용해보고 싶다." 뿐이었다.


      이제 책을 다 읽었으니 서비스에 적용해 보는 일만 남은 것 같다.


       


      보기 드물게 정말 좋은 책이라 생각하지만, 단점이라면 단점은 스프링을 모르는 사람이 스프링부트를 배우기에는 조금 부족하다는 생각이다.


      본디 스프링부트라는 프레임워크가 스프링의 기능을 편히 수행하기 위해 만들어졌다 보니 이러한 부분에 대해서는 배려가 조금 부족하지 않았나 생각해본다.


       


      프로그래밍 전공 서적 중 오랜만에 맘에 드는 책을 만나 기쁘게 공부 할 수 있었다.


       



      [실전 스프링 부트 워크북] 책의 자세한 내용은 [링크]에서 확인할 수 있다.


       

    • (본 포스트는 한빛 미디어에서 도서를 제공받아 작성하였음을 미리 알려드립니다.)






      안녕하세요.


      오늘도 한빛미디어에서 좋은 책을 제공해 주셔서 이렇게 리뷰를 할 수 있게 되어 매우 기쁩니다. (다음에도 또 이런 기회가 왔으면 참 좋겠습니다..ㅎㅎㅎㅎㅎ)







      오늘 리뷰해 드릴 도서는 많은 개발자들에게 애증(?)과 같은 스프링 프레임워크를 다루고 있는 도서입니다. 물론 스프링 프레임워크에서는 바이블과 같은 토비의 스프링이라는 서적이 있지만 현재의 지원 수준은 스프링 3.1에서 멈추고 있고, 최근 나프다 팟캐스트에서 출연하셔서 스프링 도서 연재에 대하여 부정적인..ㅠㅠ 말씀을 들었습니다.






      뭔가 많은 사람들이 쓰지만, 딱히 알맞은 책은 없는 와중에 한빛 미디어에서 좋은 도서가 나왔습니다 :)













      개인적으로 스프링은 작년에 구직을 준비할 때 짬짬이 보았었지만, 이번 기회에 조금더 자세히 살펴보고 또한 책 제목이 "실전 스프링 부트 워크북"이 아니겠습니까, 실무에서는 어떻게 사용하는지 무언가 Intuition을 얻을 수 있을 것이라 생각했습니다.






      먼저, 스프링 부트를 잠시 소개해 드리자면, 스프링 부트는 스프링 프레임워크가 점점 발전하면서, 이 프레임워크를 사용하여 애플리케이션을 만들기 위해서 또 다른 많은 배움의 load가 증가함에 따라서 등장한 스프링의 프레임워크 입니다. 다시 정리해보자면, 스프링 애플리케이션을 더 쉽게 작성하기 위해 귀찮은 설정 작업의 대부분을 스프링 부트가 해준다는 뜻입니다. 이렇게 함으로써 웹 앱 개발자는 스프링의 세세한 설정에 시간을 할애하기 보다 앱의 비지니스 로직에 더 집중할 수 있게 됩니다.






      메이븐이나 그래들과 같이 자바 빌드 툴을 기본으로 필요로 하기 때문에 추가 의존성 패키지 (dependency)를 단지 설정 파일에 어느것이 필요하다고 적어주기만 하면 나머지 스프링에 필요한 adapter등은 모두 스프링 부트가 해결해 주는 편리함이 스프링 부트를 사용하는 가장 강력함이라고 정리할 수 있습니다.













       


      책이 번역서임에도 번역이 깔끔하게 잘 되었기 때문에 한국 저자가 작성한것 같은 느낌을 받을 수 있습니다. 그만큼 설명이 매우 친절하고 이해하기 쉽게 작성이 되어 있는 것을 장점으로 꼽을 수 있습니다. 또한 책의 서술 방식이 하나의 프로젝트를 점진적으로 발전, 수정하는 구조이기 때문에 스프링 부트의 기능 하나하나를 예제 코드를 중심으로 살펴볼 수 있습니다. 하나의 예제 코드에서 필요한 애노테이션, 클래스 기능등을 코드 바깥의 주석으로 상세히 기재함으로써 코드와 설명에 각각 집중할 수 있다는 점이 제게는 매우 이해하기 쉽게 다가왔습니다.






      각 챕터의 분량도 적당하여 하루에 한 챕터씩 (또는 두 챕터씩) 코딩을 따라해가며 익히기 매우 좋았습니다. 기본적으로 코딩은 "백문이 불여일타" 이기 때문에 스프링과 같은 웹 앱의 코드 한줄한줄을 따라 치기에는 매우 힘들지만, 스프링 부트와 같이 기본 보일러플레이트 코드를 작성해주는 프레임워크의 경우에는 이러한 방식으로 매우 효과적으로 스프링 부트를 배울 수 있었습니다.










      (책을 따라하면서 만든 스프링 부트 앱, 원래 이것보다 더 많지만..)







      하지만 그에 반해 책의 단점도 뚜렷합니다. 우선, 예제에 미처 역자분께서 챙기지 못한 오타와 내용상 오류가 상당량 존재합니다.. 어쨋든 독자는 스프링 부트를 많이 알지 못하고, 이 책을 통해서 스프링 부트를 익혀야 하는 상황에 놓여 있습니다. 그런 상황속에서 책의 오타가 있다면, 어쨋거나 저쨋거나 컴파일은 되는데 기능이 잘 동작하지 않는 상황이 발생하게 됩니다. 심지어, 책에서 말하는 의존성 패키지를 동일하게 추가했거나 명령어를 수행했을 때 아예 메이븐이나 그래들이 찾지 못하는 경우도.. 있습니다. 또한 어느 명령어를 실행 했을 때 버전의 차이로 의존성 패키지가 추가되지 않는 경우도 있죠. 아마 책이 발간되면서 스프링 부트의 버전업이 이루어지면서 이러한 일이 발생했다고 생각합니다만, 제가 초판 1쇄인뎅.. 다음 쇄에서는 교정이 되길 바라는 아쉬움이 남습니다.










      (여러분이 지긋지긋하게 볼 화면.. 하지만 이 CSS 정보와 js 파일을 제가 따로 열심히 구해야 한다는.. 예제 코드에 대하여 책에서 언급만 해줬어도 ㅠㅠ)






      또한 무엇보다 책 이름이 '실전 스프링 부트 워크북' 입니다. 뭔가 실무에서 어떻게 스프링 부트를 사용하는지를 말해줄 것 같은 책 네이밍이죠. 하지만 책의 내용 수준은 여전히 인트로 수준에 머무른다는 것이 아쉽습니다. 아마 이러한 책의 근본적 한계가 아닌가 싶습니다만.. 여전히 아쉬움으로 남습니다.






      하지만 이와 같은 단점을 차치하더라도, 일단 스프링 부트를 처음 접하거나 각각의 기능에 대하여 예제를 기반으로 성실하게 설명하기 때문에 기본적인 스프링 붙의 내용을 알고 싶은 분이나, 기존의 스프링에서 스프링 부트로 또 앱을 마이그레이션 하기 전에 간단하게 기능을 파악하고 싶은 분에게는 적극 추천하고 싶은 책입니다 :)






      그럼 오늘 포스팅은 여기서 마치겠습니다 :) 모두 안녕안녕~


       

    • 실전 스프링 부트 워크북

       


      요즘은 Application을 개발하는 데도 많은 기술이 필요하다. JAVA로 개발할 때에는 국내에서는 스프링 프레임워크를 많이 사용할 것이다.


      스프링을 사용하기 위해서는 기본적인 많은 설정들을 필요하게 된다.


      스프링을 많이 사용해보거나 아키텍트의 역할을 담당하게 되면 관련 설정들을 어렵지 않게 사용할 수 있을 것이다. 하지만 프로젝트를 하게 되다 보면 그런 경우는 많이 않을 것이다. 누군가가 미리 다 설정해 놓은 경우도 대부분이다.
      이 책을 보면 별다른 설정없이도 스프링을 활용해서 Application을 개발할 수 있다.
      또한 요즘 MSA등 Cloud 기술을 활용하기 위해서는 많이 사용되는 기술이 스프링 부트가 되겠다.
      책에서는 스프링 부트를 활용해서 간단하게 사용할 수 있는 예제를 시작해서 좀 더 많은 복잡하고, 상세한 부분에 대한 설정들을 다룰 수 있도록 알차게 구성되어 있다.
      다만 이 책을 잘 보기위해서는 스프링에 대한 기본적인 구성을 알고 있어야 하며, Maven, Gradle에 대해서 알고 있다면 어렵지 않게 이해할 수 있을 것이다.
      특히 스프링에 대해서 사용해 본적이 있고, 기본적인 설정들을 활용해 본적이 있다면 어렵지 않게 스프링 부트로 옮겨갈 수 있는 좋은 지침서가 될 것이다.


    • IMG_7318.JPG



       



       



      비도오고 축축 처지는 날



       



      신선처럼 에어컨 틀고 돗자리에 앉아



      스프링 부트를 시작해보았다.



       



      기존 스프링 프레임워크는 웹개발에 많은 플랫폼을 갖추지만 무겁고 설정하는 단계가 많다.



      하지만 스프링 부트는 스프링 애플리케이션을 쉽게 개발할 수 있도록 나온 방법이다.



      스프링 프레임워크를 대체하는 기술이 아니니 헷갈리지 말자.


       


       



       



      IMG_7320.JPG



       


       



      물론, 나 역시 같은거 아닐까?



      스프링 부트가 Quick하게 어플리케이션을 만들 수 있다면



      그걸로 대체하면 되지 않을까? 하고 생각했다.



       



      이런 나에게 실전 스프링부트 워크북은 좋은 길잡이가 될 수 있게



      초기 설정부터 기능, CLI, 테스트, JPA, 보안, 클라우드, MQ 등 웹개발 전반에 걸친 내용으로 구성을 갖추고 있다.



      이 가벼운 책 하나면



      파편화된 정보가 홍수를 이루를 인터넷에서 헤매이지 않아도 될 듯하다.



      말 그대로 그때 그때 요점을 찾아 볼 수 있는 워크북!


       



       



      IMG_7322.JPG



       



       



      스프링 부트에 익숙치 않은이들에게 친절하게 적절한 이미지와 함께 소개하고 있어



      지루하지 않고, 선생님과 함께 공부하는 느낌이 들었다.



       



       



      FullSizeRender.jpg



       


       



      현재 회사에선 JPA를 사용하고 있는데



      이 책에서도 스프링부트 JPA를 가이드해주고 있어서



      정말 내 입맛에 쏙 맞았다.


       



       



      FullSizeRender 5.jpg



       


       



      보통 IDE로 개발을 하다보면 터미널 명령에 익숙치 않은데



      이렇게 명령어와 프로세를 함께 제공하니



      진짜 나에겐 스프링 부트 바이블이 될 듯 하다.


       



       



      FullSizeRender 4.jpg



      FullSizeRender 2.jpg



       



       



      내가 이 책을 읽으면서 느낀 점은



      웹 개발의 주요 요소를 친절하게 상세하게 설명한다는 점이다.


       



      우리가 애플리케이션 개발을 함에 있어 적어도 한 두번은 거론 되었을 법한 스택을 갖추고 있어



      이 책은 스프링을 쓰는 프로젝트 환경이라면 책상에 갖추고 있어야할 도서라고 말하고 싶다.



       



       

    • 이 책을 보고 천천히 따라가다보면 개발을 쉽게하고자 하는 이들의 노력을 볼 수 있습니다.


      실무에서도 이 책은 굉장히 유용할 것이라 말해주고 싶습니다. 처음 구성부터 배포까지,


       그리고 모듈 확장까지 많은 부분을 다루고 있으니 마음먹고 꾸준히 이 책과 친해지면


       실무에 있어 큰 도움이 될 것이라 확신합니다.


       



      https://mechanickim.github.io/book/2017/07/15/book-18-review.html


    • 실전 스프링부트 워크북.jpg


       


       


      언어를 배우든, 플랫폼을 배우든, 프레임워크를 배우든 우리는 항상 이런 질문을 합니다.


       


      "이걸로 뭘 할 수 있죠?"
      "뭔가를 만들어 보고 싶은데 뭘 만들어봐야 좋을지 알려주세요"

       


      <실전 스프링부트 워크북>에서는 일기앱이라는 예제를 제시하고 있고, 예제를 차근차근 따라 만들며 스프링부트를 익힐 수 있도록 안내하고 있습니다.



      그리고 IDE 설치부터 환경설정, 프로젝트 생성에서 프로젝트의 완성까지 자세히 알려주고 있습니다.

       

      아직 스프링을 접해보지 않았더라도 스프링의 구조에 대해 설명하고 있고,

       

      스프링부트는 스프링에서 어떻게 변화하였는지도 설명하고 있습니다.

       




      물론 <실전 스프링부트 워크북> 안에서 스프링부트의 모든 것을 다 설명하지는 못했을 것입니다.

       


       

      1부터 100까지는 아니더라도 A to Z(정도면 26가지는 될테니, 그래도 처음부터 끝까지) 정도는 설명을 하고 있습니다.

       

      설치와 프로젝트 생성, 빌드와 테스트, 배포는 어떻게 하는지에 대해 모두 설명하고 있습니다.



      스프링부트는 JVM 이 설치되는 어떠한 OS 에서라도 실행이 가능한 만큼 이 다양한 플랫폼에서의 빌드와 실행방법에 대해 모두 설명하고 있습니다.

       

      지금 내 환경에 맞는 부분만 골라 읽어보았다가, 나중에 다른 환경을 접했을 때 다른 책을 찾는 것이 아니라 한번 보았던 책을 그대로 다시 펼칠 수 있다는 것 또한 장점이라 생각됩니다.



      굳이 단점을 찾자면 독자의 대상을 명확히 했으면 하는 것입니다.

       

      저는 스프링부트를 처음 접해보는 입장이라 입문자의 시각에 좀 더 중점을 두었습니다.

       

      이런류의 책들은 독자 수준이 어느 정도 일 것이다라고 그 기준점을 정하는 것이 대부분입니다.

       

      그런 의미에서 스프링을 알고 있어야 하는지, 자바도 처음 해보는 아주 입문자라도 괜찮은지에 대한 것이 있다면 좀 더 좋았을 것입니다.

       

      물론 저자가 이 책에 등장하는 기본적인 용어까지도 가급적 설명을 하고 있다는 것에 책을 읽는 내내 느꼈습니다.

       

      하지만 책을 보는 내내 이정도는 스프링은 알고 봐야겠지? 자바를 모르는 사람이 이 책을 펼쳐 봤다면? 이라는 의문을 계속 가지면서 책을 넘겼습니다.

       

      그냥 당연히 자바는 알고 있을 것이고, 당연히 스프링도 어느 정도 경험 했을거라는 가정이 깔려 있다는 느낌이 강했습니다.

       

      그렇다면 지면 한 두페이지 정도를 할애하여 독자의 레벨, 선행학습 내용, 찾아보면 좋을만한 레페런스 등을 소개 해주었으면 하는 아쉬움이 있습니다.

       

       



      <실전 스프링부트 워크북> 은 지금 당장 스프링부트를 시작해 보고 싶은 사람이라면 추천해 드립니다.

       


       

      어렵고 복잡한 환경설정은 스프링부트가 알아서 해결해줍니다.

      우리는 그저 <실전 스프링부트 워크북> 을 펼치고 스프링부트를 맛보면 됩니다.

       




    •  


       


      책을 펼치며


      평소에 스프링에 대한 관심은 가지고 있었지만 사내에서는 서블릿 기반의 웹 서버를 사용하기 때문에 업무에서 사용할 기회가 없어서 깊이 있게 공부하지는 못하고 있었습니다. 또한 스프링을 장애 없이 현업에서 사용하기 위해서는 깊은 이해가 필요한데 팀원 모두가 공부하고 테스트해보고 적용하기까지는 많은 시간을 필요로 했습니다. 이러한 진입장벽 때문에 스프링은 거의 배제한 채로 비교적 Old한 방식의 서블릿 기반 웹서버를 계속해서 사용해오고 있었습니다.


       


      그러던 중 커뮤니티에서 스프링 부트에 대한 세미나를 듣게 되었고, 급 관심이 생기게 되었습니다. 가장 매력적이었던 부분은 스프링에서 복잡했던 xml 파일 작성부분이 스프링 부트에서는 필요가 없다는 것이었습니다. 스프링 부트 웹 페이지에서 원하는 설정들을 체크박스 형태로 선택한 후에 Generate를 수행하면 기본 프로젝트 구성을 알아서 다 해줍니다. 그러므로 설정은 최소화하고 개발자는 개발에만 신경쓸 수 있게끔 해주고 있기 때문에 이 정도면 팀원들을 설득하고 짧은시간 내에 활용할 수 있을 것 같다는 생각이 들었습니다.


       





       


      이러한 생각을 가지고 설레는 마음으로 실전 스프링 부트 워크북이라는 책을 읽어보게 되었는데, 표지만 봐도 공부를 하고 싶어지는 욕구가 생겼습니다. 그만큼 최근에 나오는 개발 서적들의 표지나 내용물이 점점 더 깔끔하고 눈에 잘 들어오게 변화하고 있는 것 같습니다.


       





       


      책의 구성


      대부분의 기술 서적들과 같이 시작은 스프링 부트가 무엇인지, 그리고 왜 스프링 부트를 사용해야 하는지에 대해 설명을 해주고 있습니다. 스프링과 스프링 부트의 차이가 무엇인지, 그리고 스프링 부트를 사용하면 무엇이 좋은지에 대해 궁금하신 독자들은 이부분에서 궁금증을 해소하실 수 있을 것입니다.


       





       


      책의 구성은 기본적으로 이론을 설명해주고, 이론을 활용한 코드를 생략 없이 모두 수록하고 있습니다. 그리고 이 코드에 대한 설명을 뒤에 덧붙이면서 독자의 이해를 도와줍니다. 실행에 필요한 전체 코드를 수록하고 있기 때문에 하나씩 따라 쳐 보면서 직접 어플리케이션을 구현해볼 수 있다는 것이 이 책의 장점이라고 생각합니다.


       


      아쉬웠던 점은 책의 대부분이 텍스트로만 이루어져 있었기 때문에 각 애너테이션 간의 관계나 클래스들 간의 관계 등 이론적인 설명들이 머릿속에 잘 그려지지 않았습니다. 그래서 같은 내용을 여러번 반복해서 읽고, 연습장에 클래스 다이어그램이나 그림을 그려가면서 읽어야 했습니다. 또한, 예제에서 사용되는 css와 js 파일이 이 예제의 프로젝트가 아닌 외부의 프로젝트에서 가져온 것이므로 해당 파일들을 직접 다운받아서 프로젝트에 첨부를 시켜주어야 하기 때문에 초반에 정상적으로 서버를 구동하는데 어려움을 겪었었습니다.(스프링 부트를 처음 사용해봐서 어떤 위치에 css와 js파일들을 위치시켜야 하는지 몰라서)


       


      마치며


      책에서 스프링 부트에 대한 깊은 내용은 다루고 있지 않지만 예제를 따라해보며 스프링 부트가 이런 것이다라는 것은 분명하게 느낄 수 있게 해준 책이었습니다. 데이터베이스를 사용하는 부분에 있어서도 현재 DBCP를 사용하는 것에 비해 굉장히 편리했고 매력적이었습니다. 데이터베이스나 네트워크, 보안 관련된 모듈들을 각각 신경써야 했던 기존과는 다르게 스프링 부트를 사용하면 일관된 방식으로 사용할 수 있다는 것 또한 큰 장점이라고 생각합니다. 다음 프로젝트에서는 스프링 부트를 사용하여 개발하는 것을 목표로 더 깊이 있게 살펴봐야겠습니다.


    • 이 책을 다 보고나서 이 책의 특징을 몇가지 정리해 보았다.


       



      예제가 자세하고, 예제에 대한 설명이 충실하다.



      책을 보면서 가장 좋았던 것이 바로 이 점이다. 



      예제 소스가 자세히 나와 있다는 것, 그리고 예제 소스에 대한 설명이 충실하다는 것.



      초보자에게 제일 중요한 것은 뭐니뭐니해도 예제이다.



      그리고, 예제 제시보다 중요한 것은 그에 대한 설명!



      예제에 대한 자세한 설명이 내용을 이해하고, 실제 적용하는데 많은 도움이 되었다.


       



      옮긴이 주가 있어서 도움이 되었다.



      이 책은 번역서인데, 원서에 있는 내용을 역자가 번역하면서



      추가로 설명이 필요한 부분에는 추가로 설명을 더했는데,



      이런 부분들이 나같은 초보자에게는 많은 도움이 되었다.


       



      한글과 영문이 병기되어 있어 좋았다.



      사실 나는 어떤 기술에 대해 초보자일 때는 번역서를 별로 선호하지 않는 편이다.



      아무래도, 원래 영어로 된 용어들을 번역하는 과정에서 



      그 용어가 한글로 번역될때 어려운 단어로 번역이 된다거나 



      영문을 그냥 한글로 소리나는 대로 쓰는 경우 무슨 말인지 잘 모르겠다거나 하는 경우가 많이 생겨서



      혼란스러울 때가 많기 때문이다.



      그러나 이 책은 혼란이 예상되는 경우에는 한글 옆에 영문을 동시에 표기하여 혼란을 줄여주었다.



      그래서 초보자인 내가 보기에도 편안하게 읽을 수 있었다.


       



      하나의 프로젝트를 완성시켜 나가는 형태이다.



      이 책은 각 챕터별로 각각의 예제가 아닌



      '스프링 부트 일기(spring boot journal)'라는 



      하나의 프로젝트를 점점 발전시켜 나가는 형태여서



      처음부터 끝까지 책을 보고 따라하며 프로젝트를 완성시켜 나가는 재미가 있어서



      끝까지 몰입해서 공부하는데 도움이 되었고,



      다른 프로젝트를 만드는데도 쉽게 응용할 수 있을 것 같다는 생각이 들었다.


       

       



      전체적으로,



      구체적인 예제와 그에 대한 설명이 충실해서



      기본을 잡는데도 좋고, 



      나중에도 종종 필요한 부분을 참조하여 개발에 반영 할 수 있을 것 같다.



      또한, 번역서를 그대로 번역만 한 것이 아니라,



      번역서의 장점을 취하고 한계를 극복하기 위한 노력들이 많이 나타나 있는 것 같아 좋았다.






    • Spring Boot 특징



      제가 가장 마음에 들었던 부분은 책 표지가 이쁘장하게 꾸며져 있어 좋았습니다. 개인적으로 부트의 녹색을 좋아해서;;ㅎㅎ
      일단 구성은 대부분의 스프링 부트 책과 비슷하게 스프링 부트의 주요 특징과 기능에 대해 초반 정리가 들어갑니다. 스프링 부트가 왜 필요한지 어떠한 점이 좋아서 써야하는지 등을 잘 정리해 놓았습니다.


      Spring Boot CLI


      중반에는 스프링 부트의 CLI 위주로 설명이 되어 있습니다. 대체적으로 실제 스프링 부트 개발시 IDE로 개발하기에 CLI를 써본적이 한번도 없었습니다. 왠만하면 클릭 몇번으로 원하는 의존성을 가져올 수 있고 실행도 간편하기에 따로 사용해 보진 않았지만 이런게 있다는 것을 알게되는 계기(?)였습니다.


      Spring Boot 프로젝트



      이 책의 또 하나의 주요한 포인트는 그루비 언어로 쓰여진 코드가 많다는 점입니다. 덕분에 그루비가 자바와 정말 비슷하다는 점을 알게 되었지만 스칼라가 대세가 되어 그루비 개발자도 그루비를 안쓰는 세상에 굳이 번역 그대로 그루비를 넣어야 했나 하는 아쉬움이 있습니다.
      다른 스프링 부트책과는 다른 특징으로 다양한 프로젝트들을 담고 있습니다. spring-bootspring-boot-dataspring-boot-data-restspring-boot-securityspring-boot-oauth2spring-boot-JMSspring-cloud 기타 등 다양한 프로젝트 기본 예제 코드를 제공해 주고 있어 참고하기 좋았습니다. 하지만, 실제 프로젝트에 대한 설명이 이 프로젝트가 어떠한 프로젝트인지 기본적으로 알고있다는 전제하에 들어가는게 초심자에게는 쉽게 다가가지 못할 요소로 남아있습니다.


      프로젝트별 상세설명



      가장 마음에 들었던 점은 프로젝트별 어노테이션 및 코드에 대한 설명을 구어체로 잘 표현해 주었습니다. 덕분에 무엇인지 궁금했던 부분을 빠르게 캐치할 수 있었습니다. 외국문서를 번역한 거라 매끄럽지 않은 부분이 있을거라 생각했지만 구어체나 어려운 부분들을 이해하기 쉽게 번역해 주셨습니다. 현재로서는 다양한 스프링 부트의 프로젝트를 이만큼 한번에 볼 수 있는 책은 실전 스프링 부트 워크북뿐이라고 생각합니다.
      여러 스프링 부트의 프로젝트들을 간편한 예제로 만나고 싶은 분들에게 강추합니다!



    • 서론


      현재 스프링 부트로 서비스를 개발하고 있다. 그래서 한빛 리더스 마지막 미션 책으로 이 책을 만나게 되어서 너무 반가웠다. 워크북이기 때문에 실용적인 팁들을 주고 있는 책이다. 스프링웹 개발에 대한 경험이 있으신 분이 스프링 부트로 입문하려고 할 때 굉장히 유용한 책이 될 것 같다.



      스프링을 자체를 모르신다면 최범균님의 스프링4 프로그래밍 입문이라는 책을 추천한다. 두껍고 부담스러운 여타 스프링 책들 보다 훨씬 쉽게 입문할 수 있게 도움을 줄 것이다.



      책 간단한 소개


      책은 워크북 답게 스프링 부트와 관련 기술들에 대해서 실용적인 방법을 알려준다. 우선은 한번 죽 읽어보는 것을 추천하고 나중에 써먹어야 할 때가 떠오르면 한번 찾아서 자세히 보면 좋을 것 같다.


      그리고 스프링 부트의 주 개념인 자동 구성 (Auto configuration)에 대해서도 다룬다. 나중에 앱을 커스터마이즈 할때 도움이 많이 될 것 같다.



      인상깊었던 점



      1. 커스텀 배너


      스프링 부트가 시작될 때 보이는 배너를 바꾸는 기능이다. 굉장히 간단하지만 재미있었다. 


       



      2. 그루비를 이용해서 앱 만들기


      그루비와 스프링 부트를 결합하니 엄청 간단하게 서버 앱을 만들 수 있었다. 그루비의 AST(Abstract Syntax Tree)라는 기능을 이용한다는데 마치 예전에 nodejs 서버 앱을 보았을 때 처럼 신선한 충격을 받았다. 앞으로 간단하게 스프링 부트 앱을 만들때 자주 써먹을 것 같다.




      @RestControllerclass WebApp {@RequestMapping("/")String greetings() {"Hello World"}}



      3. SPRING_APPLICATION_JSON 환경변수



      우선 프로퍼티 설정의 순서에 대해서 안것도 신기했지만 SPRING_APPLICATION_JSON 환경변수를 알게 된것도 참 좋았다. 배포환경에서 적용하면 참 좋을 것 같았다.



      4. Spring boot Actuator


      액츄에이터는 참 유용한 도구이다. 사내에서 동료를 통해 처음 알게 되었지만 이 책을 통해서 좀 더 자세히 알게 되었다. 이 책에 설명처럼 앱의 로그를 보거나 상태를 확인하는 류의 일들을 서드파티 솔루션에 의지하려는 경향이 있는데 액츄에이터는 앱 자체에 내장 되어 큰 도움이 된다.


      스프링 부트 앱의 여러가지 상태와 로그 심지어는 어떤 (서버를 종료하는 등의) 액션을 REST API로 제공하기 때문에 활용도가 매우 높다. 운영 환경에서 잘 이용하면 좋을 것 같다.



      5. 도커 배포


      Dockerfile에 코드 몇줄이면 도커에 앱을 배포할 수 있다. 너무 편하다. 꼭 검색해서 한번 알아보시기를.



      간단한 4L 회고


      Liked : 워크북으로서 스프링 부트 관련 기술을 쉽게 전달해준다. 내일이라도 실무에 적용해 볼 수 있다.Learned : 스프링 부트의 근간인 auto config와 관련 기술을 체험해보았다.Lacked : 개인적으로 목적에 충실하고 가성비가 적당한 책이기 때문에 단점은 잘 모르겠다.Longed for : 곧 스프링 부트 2.0이 나올 텐데, 다음 개정판에는 관련 내용도 좀 담아주시길.


       



      본 포스팅은 한빛리더스 14기로서 해당 책을 제공받아 작성한 솔직한 후기입니다.



       

    • [한빛] 실전 스프링 부트 워크북


      이 글을 쓰고 있는 지금, 세계 및 한국에서 가장 많이 쓰고 있는 프로그래밍 언어는 JAVA이다. 많은 사람들이 JAVA 언어의 한계에 대해서 이야기하고 있으며 앞으로 에 JAVA에 대해서 걱정하고는 있지만 JAVA8에서 보여준 JAVA의 혁신적인 변신은 아직 JAVA가 살아 있음을 보여주기 충분했다. 


      이러한 흐름을 바탕으로 조심스레 예상해 본다면 JAVA라는 언어는 향후 몇 년간 1위 자리를 지킬 것이라 예상하며 특히 국내에서는 더욱 긴 생명력을 가질 것이라 생각한다.


      이와 같은 생각을 바탕으로 저자는 JAVA라는 언어에 시간을 투자하여 학습하는 것은 충분한 가치가 있다고 생각하며 불행히도 저자의 예상과 다르게 JAVA라는 언어를 사용하는 빈도가 급속도로 줄어든다고 하여도 현재 새로 태어나고 조명받는 언어들을 학습하는 데 있어 필요한 개념이나 지식들이 JAVA 언어를 기반으로 쌓아둔 지식들과 거의 흡사 하기에 시간 낭비에 대한 것은 고려하지 않아도 된다고 이야기하고 싶다. 


      [스프링 부트란 무엇인가?]


      서두가 길었지만 JAVA 프로그램 개발자라고 한다면 빠지지 않고 따라오는 것이 바로 Spring Framework이다.


      Spring Framework는 개발자가 비즈니스 로직에만 집중할 수 있도록 많은 서비스들을 지원해 줌으로써 개발자들의 부담은 줄여주고 생산성은 올려주는 역할을 하였다.


      이렇게 고마운 Spring Framework에 만족하지 못하고 더욱더 친절하게 개발자의 수고를 덜어주고자 나온 것이 Spring Boot이다. 


      스프링 부트는 스프링 애플리케이션을 쉽게 개발하는 새로운 방법인 것이다. 


      이 책에서는 스프링 부트가 왜 스프링 애플리케이션을 쉽게 개발하는 새로운 방법인지에 대해서 설명하고 스프링 부트의 설치, 설정에서부터 시작하여 한 단계 한 단계 친절하게 설명하고 있다. 


      [책의 구성! 무엇을 담고 있나?]


      하나의 프로젝트를 개발하는 데 있어 필수적으로 들어가는 것들이 있다. 


      간략하게 떠올려 보자면 데이터 액세스, 테스트, 보안, 배포 등이 있을 것이다.  이러한 요소는 하나의 프로젝트를 개발한다면 대부분 들어가는 요소들이다. 


      이러한 내용을 이 책은 모두 담고 있다. 개발자가 궁금해할 것을 미리 알고 간략하게 소개하며 스프링 부트를 통해 어떻게 구현하면 되는지 친절하게 설명하고 있다. 


      더 나아가 우리가 대부분 스프링을 활용하는 부분이 웹서버를 개발하거나 이러한 웹서버를 클라우드에 올리기에 이러한 부분까지 다뤄주고 있다. 


      각각의 예제가 잘되어 있기 때문에 예제만 잘 살펴본다면 자신이 개발하는 프로젝트에 응용하기에는 큰 어려움이 없을 것으로 판단된다. 


      [책을 덮으며!]


      이 책을 덮으며 들었던 느낌은 좋은 멘토와 좋은 스터디를 한 것 같은 기분이었다. 마치 내가 알고 싶었던 것을 친절히 그리고 세세하게 알려준 기분이었다. 


      스프링을 모르는 상태에서 이 책을 펼쳐도 큰 문제는 되지 않을 것 같다. 다만 스프링에서 다루는 개념들로 설명하는 부분이 있기에 자주 멈춰 서서 추가적으로 학습해야 하는 부분이 빈번히 생길 수 있다. 


      자주 멈춰 서는 것을 별로 좋아하지 않는 사람들이라면 미리 스프링에 대해서 학습하고 스프링 부트에 대해서 배우는 것을 추천하고 싶다. 


      이 책을 저에게 선물해준 한빛 미디어 리더스에서 감사하다는 인사를 남기고 싶다.  


    • 키워드: 스프링 부트, 워크북, Spring Boot, 마이크로서비스, 실전, 한빛미디어, Apress


       



      수년 간 들어왔던 스프링(Spring)에 대해 어느 정도 감이라도 잡아야겠다는 생각에 <스프링 부트 실전 워크북>을 읽게 되었다.


      책의 주제가 스프링(Spring)이 아니라 스프링 부트(Spring Boot)였지만 그래도 새로 도입되는 솔루션의 코드를 파악하는 데 필요한 기초지식을 쌓을 수 있었다.


      1. 주제



      이 책은 높은 생산성을 제공하는 스프링 부트(Spring Boot)를 처음 접하는 독자를 대상으로 스프링 부트의 기초부터 활용까지 빠르게 소개한다.


       



      책의 부제가 마이크로서비스 빌드, 메시지와 DB 핸들링, 테스트, 플러그인까지인데, 문자 그대로 스프링 부트의 다양한 기술을 다룬다.


      2. 구성


      이 책은 총 14장과 부록 1개로 구성된다.


       



      1장 ~ 4장은 스프링 부트의 기초에 대해서 다룬다. 5장에서는 스프링과 스프링 부트를 비교한다. 이 장을 보면 스프링 부트(Spring Boot)과 왜 생산성이 높다고 하는지 알 수 있다. 그리고 6장 ~ 11장은 테스트, 데이터 엑세스, 웹, 보안, 메시지 서비스, 모니터링을 위한 액추에이터 모듈을 다룬다. 12장 ~ 13장은 스프링 부트 배포 방법과 클라우드에서 운영하는 방법을 알아본다. 그리고 14장은 스프링 부트 앱을 마이크로서비스로 개발하는 방법을 소개한다. 끝으로 부록은 스프링 부트 1.4.x 릴리스 노트를 소개한다.


      3. 아쉬운 점



      책을 읽으면서 아쉬웠던 점을 먼저 소개하겠다. 책을 읽다보니 처음 접하는 용어들이 종종 나왔는데 이에 대해 역자의 주석이 없는 경우가 더 많았다. 예를 들어 '구성보다 관례' 패턴에 대한 소개가 나왔는데 이 용어에 대해 간단히라도 소개하면 더 좋았을 것 같다. 또한, 173쪽에 보면 H2 웹 콘솔에 대해 설명하면서 "왜 그런지는 필자도 잘 모르겠지만..." 이라는 내용이 나오는데 이에 대해서 (찾을 수 있었다면) 역자가 설명을 적었으면 하는 아쉬움이 있었다. 번역서는 단순히 외국도서를 한국어로 번역한 것이 아니라 각종 용어에 대해 역자의 주석을 추가하여 독자들의 이해력을 돕고, 출시되는 시점에 맞추어 소스 코드가 정상적으로 실행되는지 검증하는 역할도 해야한다고 생각하기 때문이다. 가장 아쉬웠던 점은 실행되지 않는 예제가 있었다는 것이다.


       


      예를 들어, 10장에서 소개한 HornetQ는 Deprecated 되어 실습 때 사용한 Spring CLI v.1.5.4 RELEASE에서는 해당 패키지를 설치할 수 없었다.



      HornetQ 안녕


      그리고 OAuth2 실습 때도 책에서는 spring -init 으로 프로젝트를 생성하면 pom.xml 에 spring-security-oauth2 가 추가될 거라고 설명이 되어있지만 실습해보면 코드에 추가 되지 않아서 혼란스러웠다. (258쪽 ~ 260쪽)



      스프링 부트 실전 워크북 예제 오류


       


      스프링과 스프링 부트를 어느정도 아는 사람이 실습을 했다면 분명히 스스로 해결이 가능했을 것이다. 다만, 책에 나온 실습을 따라했을 때 제대로 되지 않으면 독자는 기분이 상쾌하지 않은 게 사실이다.


      4. 좋았던 점



      책을 읽으면서 좋았던 점이 많았던 것도 사실이다. 앞에서 역자의 설명이 더 있었으면 좋겠다는 내용을 적었는데 실제로 책을 읽다보면 역자가 추가로 설명한 내용들이 많이 있어서 책을 읽는 데 큰 도움이 되었다. 그리고 5장은 스프링(Spring)과 스프링 부트(Spring Boot)를 비교하여 왜 스프링 부트가 생산성이 높은지 보여주는데 코드의 간결함, 특히 Groovy 코드의 깔끔함이 매우 인상깊었다. 그리고 하나의 책에 여러 내용을 담다보니 깊이 있는 내용까지 들어갈 수는 없었지만, 다양한 내용을 빠르게 훑을 수 있어서 앞으로의 학습 방향 설정에 도움이 되었다.


       



      스프링 부트 일기장 앱



      STS



      스프링 부트 실전 워크북 H2


      5. 총평


      한 술에 배부를 수는 없는 것 같다. 아쉬웠던 점도 있었지만 그래도 스프링 부트(Spring Boot)를 빠르게 훑을 수 있었다는 점에서 전반적으로 만족한다. 무엇보다 스프링 부트는 웹 서버를 내장하고 있어서 예제 실행 시 번거로운 환경설정이 필요 없다는 점과 애플리케이션 배포 또한 ./mvnw package 명령어로 한 번에 된다는 점이 매우 인상적이었다.


       


      스프링 부트(Spring Boot)를 빠르게 알고 싶은 사람이라면 이 책을 읽고 분명히 무언가 얻어갈 수 있는 것이 있을 것이다.


       



      도서에 대한 추가 정보는 한빛미디어 공식 사이트를 참고하세요.




    •  


      회사에서 Spring boot를 사용하기 시작한지는 한 1~2년 정도 된것 같다. 쓴다기 보다는 Spring 사이트에 있는 소스들을 가져다 붙이는 수준이었다. 체계적으로 공부해본적은 없고 눈앞에 닥치면 찾아서 하다보니 부족한 점이 많이 느껴졌다. 이번에 받은 이 "실전 스프링 부트 워크북"은 그런 부족한 점을 채워줄수 있는 좋은 가이드가 되었다. 


       


      Chapter 1에서 부터 4까지는 Spring Boot를 실습하기 위한 준비 단계정도로 볼수 있다. 기본적인 이론과 설명들, 프로젝트 구성에 대해서 소개를 해주고 있다. 그리고 Chapter 5부터 본격적으로 Spring Boot를 가지고 Web 어플리케이션을 만들기 시작한다. 


       





       


      특히 Chapter 6 을 보면 Spring Boot Test 에 대해서 설명을 하고 있는데 책을 읽을 당시 회사에서 Spring Boot Test에 대한 내용을 한참 구글링 하던 시기였다. 내가 개발중인 코드에 대한 Controller Test case를 어떻게 작성을 해야 하나 고민을 하던 중이었는데 책의 내용들이 내게 많은 도움이 되었다. 아마도 이 책이 없었으면 코드가 뭐가 뭔지도 모를 코드들을 가져다가 썼을것이다. 


       


       


       





       


      그리고 이 책의 좋은 점이 실제 작성된 코드에 대해서 중요한 부분에 대한 설명들이 많이 있다는 점이다. 다른 Spring 관련 책들도 소스 코드에 대한 설명들이 있기는 하지만 너무 추상적이거나 어렵게 설명한 책들이 많다. 하지만 이책에서는 적어도 내 기준에는 각각의 소스 코드에 대한 설명들이 이해하기가 쉬웠다. 그리고 개발관련 서적의 딱딱함이 덜 하다는 느낌이 들었다. 


       


      기본적인 Spring Boot 에 대한 설명부터 시작해서 security, 메세징등 기본적으로 알아야 할 기능들은 잘 설명해 놓은 책이다. 물론 이거 한권으로 Spring Boot에 대한 모든 기능을 마스터 할수는 없지만 기본기를 다지기에는 아주 좋은 책이라고 생각이 든다. 단지 아쉬운 점은 이 책에도 중간중간 언급이 되어있지만 지금 사용하고 있는 Spring Boot 최신 버전과는 약간 차이가 있을 수 있다는 점이다. 책에서는 1.3.3 Release 버전을 사용하고 있는데 현재 Spring Boot 최신 버전을 1.4를 넘어 1.5, 2.0을 바라보고 있다. 이부분에 대한 것만 제외 한다면 Spring Boot에 관심 있는 분들에게 한번쯤 읽어보라고 추천해주고 싶다. 


       

    • 자바 8 인 액션 : 람다, 스트림, 함수형 프로그래밍으로 새로워진 자바 마스터하기

      라울-게이브리얼 우르마 , 마리오 푸스코 , 앨런 마이크로프트

    • 마이크로서비스 아키텍처 구축

      샘 뉴먼

닫기

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