한빛출판네트워크

IT/모바일

스프링4 입문

웹 애플리케이션의 기초부터 클라우드 네이티브 입문까지』(Hibernate, JPA, MyBatis 연계)

한빛미디어

번역서

판매중

스프링4 입문
좋아요: 44
  • 저자 : 하세가와 유이치 , 오오노 와타루 , 토키 코헤이
  • 역자 : 권은철 , 전민수
  • 출간일 : 2017-11-01
  • 페이지 : 520쪽
  • ISBN : 9791162240212
  • 물류코드 :10021

합계 : 27,000

  • 그림과 표로 쉽게 배우는 스프링 4 입문서! 

     

    스프링은 단순히 사용 방법만 익히는 것보다 아키텍처를 어떻게 이해하고 설계하는지가 더 중요합니다. 예제를 복사해 붙여넣는 식으로는 실제 개발에서 스프링을 제대로 활용할 수 없습니다. 이 책에서는 웹 애플리케이션의 기초를 다지고 스프링 코어를 살펴보며 클라우드 네이티브 입문까지 다룹니다. 이제 막 실무에 뛰어든 웹 애플리케이션 초급자나 개발 경험은 있지만 스프링은 사용해본 적 없는 분을 대상으로 가능한 한 쉽게 설명합니다. 

     

     

    대상 독자

    • 이제 막 실무에 뛰어든 웹 애플리케이션 초급자
    • 다른 프레임워크 개발 경험은 있지만 스프링은 사용해본 적 없는 분
    • 개발에 스프링을 사용한 적은 있지만 스프링이 무엇인지 잘 모르겠다는 분
  • [저자] 하세가와 유이치

    1964년 도쿄 출신. ‘우리다운 일을 해 보자’라는 목표로 2007년 10월에 독립하여 Starlight & Storm LLC를 설립했습니다. 세상에는 불합리한 것도 많지만, 엔지니어의 신념에 따라 불합리한 일은 거부하고 있으며, 앞으로도 신념을 지켜나갈 생각입니다. 그런데 업무도 물론 중요하지만 이제부터는 아내 님을 잘 모셔서 언제까지나 행복하게 살고 싶습니다.

     

    [저자] 오오노 와타루

    1976년 도야마현 다카오카시 출신. Starlight & Storm의 멤버로서 주로 기업 연수 및 기술 지원을 담당합니다. 객체 지향 설계 및 자바 오픈소스 프레임워크를 기본으로 한 애플리케이션 아키텍처 구축에 강점이 있습니다. 2008년에 결혼해 올해 드디어 염원하던 ‘우리집’을 손에 넣었습니다. 요즘은 미래에 대해 이것저것 생각하고는 합니다.

     

    [저자] 토키 코헤이

    대학에서 정보 공학을 전공했지만 졸업 후에는 캐주얼 숍에서 판매원으로 일하다가 IT 업계에 합류했다. 2002년에 스프링의 창시자인 로드 존슨(Rod Johnson)의 책 『J2EE Design and Development』을 접하고 스프링의 팬이 되었다. 다양한 개발 프로젝트에 참여하며 비효율적인 개발 환경을 겪고 교육의 중요성을 통감했다. 이러한 이유로 2008년부터는 교육 분야에서 활동을 시작했다. 2012년에는 주식회사 현장지향(https://www.genba-oriented.com)을 설립해 스프링을 중심으로 한 교육 프로그램 강사로 활동 중이다. 저서로는 『OpenID Connect入門(OpenID Connect 입문)』(Kindle Direct Publishing, 2021), 『[改訂新版] Spring入門(스프링 입문 개정판)』(기술평론사, 2016), 『間違いだらけのソフトウェア・アーキテクチャ(오류 투성이 소프트웨어 아키텍처)』(기술평론사, 2010) 등이 있다.

     

    [역자] 권은철

    2002년 일본으로 건너가 개발자를 거쳐 아키텍트로 활동했고, 2007년 라쿠텐에 입사하여 현재까지 근무하고 있습니다. 초창기에는 서비스를 담당하며 WebLogic과 Coherence를 전문으로 하는 미들웨어 엔지니어이자 아키텍트로 활동했습니다. 이때 쌓은 시스템 경험을 바탕으로 사내 클라우드 플랫폼 및 무정지 오퍼레이션을 설계했습니다. 이 시스템은 Mastering DevOps with Oracle에 Best Practice로 소개돼 있으며, 오라클 이노베이션 어워드를 2회 수상했습니다. 현재는 엔지니어이자 E-Commerce 코어 플랫폼 그룹의 매니저로, 여러 개발 프로젝트를 리드하면서 외부 발표도 하는 등 매우 바쁜 나날을 보내고 있습니다.

    [역자] 전민수

    2006년에 일본 라쿠텐에 입사해서 현재 수석 아키텍트로 근무하고 있습니다. 라쿠텐 그룹의 자바 교육 커리큘럼 작성과 새로운 시스템의 검증과 튜닝을 주 업무로 하며, 웹 검색 전문 그룹의 매니저도 맡고 있습니다. ‘RT:FM, 나는프로그래머다 콘퍼런스 2016’과 ‘테크 플래닛 2016’에서 프로세스와 검색 시스템을 주제로 발표했습니다. 이 책의 한국어판 7장 ‘깃/깃허브 입문과 활용하기’와 8장 ‘젠킨스 입문과 활용하기’를 집필했습니다.

  •  CHAPTER 01 스프링과 웹 애플리케이션

    1.1 스프링의 최신 정보

    1.2 스프링과 웹 애플리케이션

    1.3 애플리케이션 아키텍처

    1.4 프레젠테이션 층의 역할

    1.5 비즈니스 로직 층의 역할

    1.6 데이터 액세스 층의 역할

    1.7 웹 애플리케이션이 안고 있는 문제

    1.8 스프링 개요

     

    CHAPTER 02 스프링 DI

    2.1 DI란?

    2.2 DI를 사용할 곳

    2.3 어노테이션을 이용한 DI

    2.4 Bean 정의 파일을 이용한 DI

    2.5 JavaConfig를 이용한 DI

    2.6 ApplicationContext

    2.7 스프링 로깅

    2.8 스프링의 유닛 테스트

    2.9 Bean 정의 파일의 프로파일 기능

    2.10 생명 주기

     

    CHAPTER 03 스프링 AOP

    3.1 AOP란?

    3.2 어노테이션을 이용한 AOP

    3.3 JavaConfig를 이용한 AOP

    3.4 Bean 정의 파일을 이용한 AOP

     

    CHAPTER 04 데이터 액세스 층의 설계와 구현

    4.1 데이터 액세스 층과 스프링

    4.2 스프링 JDBC

    4.3 Spring Data JPA

    4.4 정리

     

    CHAPTER 05 비즈니스 로직 층의 설계와 구현

    5.1 트랜잭션이란?

    5.2 트랜잭션 매니저

    5.3 트랜잭션 기능의 사용법

    5.4 정리

     

    CHAPTER 06 프레젠테이션 층의 설계와 구현

    6.1 스프링 MVC의 개요

    6.2 환경 만들기와 동작 확인

    6.3 예제 애플리케이션 개요

    6.4 화면을 표시하는 컨트롤러

    6.5 입력값을 받는 컨트롤러

    6.6 그 밖의 기능

    6.7 정리

     

    CHAPTER 07 인증·인가

    7.1 인증·인가와 프레임워크

    7.2 인증·인가의 기본

    7.3 스프링 시큐리티

    7.4 스프링 시큐리티의 기본 구조

    7.5 웹 애플리케이션과 인증

    7.6 웹 애플리케이션과 인가(액세스 제어)

    7.7 스프링 시큐리티의 연계 기능

    7.8 시큐리티 공격 대책

    7.9 정리

     

    CHAPTER 08 ORM 연계 - 하이버네이트, JPA, MyBatis

    8.1 하이버네이트와의 연계

    8.2 JPA와의 연계

    8.3 MyBatis와의 연계

    8.4 정리

     

    CHAPTER 09 캐시 추상 기능 - Spring Cache

    9.1 ProductDaoImpl과 ProductServiceImpl, ProductSampleRun의 수정과 동작 확인

    9.2 응용 편

     

    CHAPTER 10 배치의 설계와 구현

    10.1 배치

    10.2 스프링 배치

    10.3 예제로 알아보기

     

    CHAPTER 11 클라우드 네이티브 입문

    11.1 스프링 부트

    11.2 PWS를 이용한 "Hello World!"

    11.3 PWS에 로그인하기

    11.4 PWS에 디플로이하고 실행해보기

    11.5 정리

     

    책을 마치며

  • 개발자 선배가 후배에게 전하는 스프링 꿀팁! 

    <스프링3 입문>이 스프링4 버전으로 돌아왔습니다. <스프링3 입문>의 친절한 설명을 그대로 따르되 스프링4에 맞춰 내용을 더하고 다듬었습니다. 각 장의 주요 내용을 살펴보면 다음과 같습니다. 

     

    1장. 기초 지식 쌓기 

    스프링과 웹 애플리케이션에 대한 기초 지식을 알아봅니다. 스프링에 대한 자세한 설명보다는 스프링 및 웹 애플리케이션 개발에 중요한 애플리케이션 아키텍처를 살펴봅니다. 초심자에게는 필수입니다.

     

    2~3장. 스프링 코어 살펴보기 

    2장에서는 스프링 코어의 하나인 DI를 살펴봅니다. DI의 개요를 설명하고 스프링에서 DI를 어떻게 이용하는지, 그 특징과 사용법을 이해할 수 있습니다. 3장에서는 스프링 코어의 또 다른 부분인 AOP를 알아봅니다. 2장과 3장을 끝까지 읽으면 DI와 AOP를 사용해서 어떻게 웹 애플리케이션을 만들어가는지 그 골격을 이해할 수 있습니다.

     

    4~6장. 데이터 액세스 층, 비즈니스 로직 층, 프레젠테이션 층 이해하기 

    4~6장에 걸쳐 데이터 액세스 층, 비즈니스 로직 층, 프레젠테이션 층을 살펴봅니다.

    먼저 4장에서 데이터 액세스 층의 설계상 문제점과 해결책을 알아본 다음, 스프링 JDBC와 스프링 Data JPA를 살펴봅니다. 스프링 JDBC와 스프링 Data JPA의 이점 및 사용법을 이해할 수 있을 것입니다.

    5장에서는 트랜잭션이란 무엇인지를 살펴본 다음, 스프링의 트랜잭션 기능을 알아봅니다. 선언적 트랜잭션과 명시적 트랜잭션을 이해하는 것이 목표입니다.

    6장에서는 스프링의 MVC 프레임워크를 샘플 애플리케이션을 통해 설명합니다. 주류로 자리매김한 REST 통신 등도 해보면서 MVC 프레임워크를 구성하는 기본적인 클래스의 이용 방법을 알아봅니다. 어떤 의미에서는 웹 애플리케이션의 핵심이라고 말할 수도 있는 프레젠테이션 층의 기술을 충분히 이해할 수 있을 것입니다.

     

    7장. 스프링 시큐리티를 사용해 인증·인가 기능 구현하기 

    웹 애플리케이션에는 반드시 필요한 동시에, 그 중요성에 비해서는 이해하고 있는 사람이 적다고 생각되는 인증·인가 기능을 설명합니다. 기본적인 개념부터 시작해서 웹 애플리케이션에 스프링 시큐리티를 도입해서 인증·인가 기능을 구현하는 방법까지 알아봅니다.

     

    8장. 하이버네이트, JPA, MyBatis와 연계하는 방법 알아보기 

    대표적인 ORM 데이터 액세스 기술인 하이버네이트, JPA, MyBatis와 연계하는 방법을 알아봅니다. 이 장을 마치면 ORM 단독으로 사용하는 것보다는 스프링과 연계하는 편이 좋다는 점을 알수 있으며, 각각의 ORM에 대한 특징을 이해해서 실제 현장에서 무엇이 최적인가를 판단할 수 있을 것입니다.

     

    9~10장. 스프링 캐시와 스프링 배치 알아보기 

    캐시는 웹 애플리케이션을 만들 때에 의외로 많이 사용되는 기술입니다. 9장에서는 스프링 캐시를 이해하기 위해 샘플을 준비해서 간략하게 설명합니다. 웹 애플리케이션에서 캐시를 어떻게 사용하면 좋은지 이해할 수 있습니다.

    배치를 사용하지 않는 프로젝트는 없을 것입니다. 10장에서는 배치 처리의 기초를 설명하고, 스프링 배치에 대해 간단한 예부터 난이도가 높은 샘플까지 순서대로 알아봅니다. 배치는 무엇인지, 배치는 어떻게 만들어야 하는지를 알 수 있습니다.

     

    11장. 스프링 부트로 클라우드 네이티브 맛보기 

    이 장의 내용을 이해한다면 최신 경향의 개발을 경험해봤다고 할 수 있습니다. 이 장에서는 클라우드 네이티브 입문으로서 스프링 부트에 대해 설명합니다. 최근 각광받는 마이크로서비스와 클라우드 네이티브란 어떤 것인지 체험할 수 있습니다.

    • 스프링 프레임워크의 역사와 전반적인 내용에 대해서 다룬 이론서 입니다.

      스프링의 각 개념에 대해 설명하며, 왜? 에 초점을 맞춰 


      - 우리가 무엇을 공부하고 있는지, 


      - 왜 이 개념을 익혀야 하는지를 명확하게 짚고 있기 때문에


      머리속에 정리하기 좋은 책입니다. 


      도식화도 잘되어 있어 개념 잡기에 좋습니다.


       

    • "SPRING = TOBY"


      라고 할 정도로 스프링책은 많은 사람들이 토비책을 추천합니다.


      자세한 설명 그에 따른 방대한 양으로 사서 다 읽어 본 사람이 많이 없죠 ㅎㅎ ( 물론 저도 .... ㅎㅎ )


       


      이 책은 스프링에 대한 설명을 토비만큼 상세히 담고 있지 않아 입문자에게는


      낯선 스프링 용어들이 친숙히 받아드리진 못합니다.


      해서 JAVA 도 모르는 JAVA 는 알아도 SPRING 입문자가 읽기에는 조금 어려울 수 있습니다.


       


      혼자 공부하면서 각 줄마다 주석이 있을 경우 해당 라인이 무슨 역할을 하는지 바로 알 수는 있지만, 혼자 해당 기능에 대해 생각해볼 시간을 갖을 수 없어 불편한 점이 있었지만 이 책은 예문이 각 줄마다 주석으로 설명되어 있지 않고 숫자만 표시해 두고


      각 코드 맨 위나 아래에 따로 설명되어 있는 점이 참 좋았습니다.


       


      각 장의 맨 마지막에 "정리" 라는 부분에서 이 장을 배우면서 더 알았으면 하는 점 이 장에 대한 간단한 설명등을 적어둔 점이 참신했습니다.


       


       


    • 스프링4를 읽기전에 토비의 스프링으로 공부한 적이 있다. 스프링은 단순히 코드를 짜고, 기능을 구현하는 도구가 아니라 사용되는 아키텍처를 이해하고, 설계하는지가 중요하다고 느꼈다. 마찬가지고 스프링4도 그에 중점을 맞추어 만들어진 것 같다. 스프링4에서 추가되는 개념이 아닌 통합적으로 스프링에서 사용되는 DI, AOP등의 개념을 설명해주면서 이전 스프링을 사용하지 않은 사람에게도 좋은 책인 것 같다.


       



      스프링4의 가장 좋았던 점은 바로 그림으로 개념을 설명해주는 부분이었다. 객체지향적 아키텍처는 정말 머릿속에서 상상해서 이해하기 힘들다. 실제로 존재하는 부분도 하니고, 그림으로 이해를 해야한다. 그 부분은 스프링4는 잘 충족시켜주었다. 거의 대부분의 패턴과 사용되는 기술에 그림으로 표현되어 있다. 


       



      두 번째로 좋았던 점은 바로 분량이다. 스프링관련 서적을 보면 분량이 방대하여 막상 공부하기가 엄두가 나지 않는다. 그 만큼 분량이 많다는 이야기인데 위의 책은 잘 조절하여 분량을 잘 압축하였다. 그래서 스프링4는 공부하기에 분량이 적지도, 많지도 않은 딱 가운데 정도의 분량이라 마음만 먹는다면 충분히 정독이 가능하다.


       



      대한민국은 스프링의 나라라고 할 정도로 대부분의 기업에서 스프링을 사용하고 있다. 책을 읽은 독자들도 부디 기술을 잘 습득하여 자신가 원하는 바를 꼭 이루길 바란다.


       


       


    • "웹 애플리케이션" 은 우리가 오래 전부터 사용해 왔습니다.



      최근에는 다양한 형태와 방식으로 서비스되고 있으며, 없어서는 안 될 서비스 중 하나로 자리잡았지요.



      웹 애플리케이션의 활용 범위와 컨텐츠가 확장됨에 따라 웹 개발에 관심을 갖는 개발자도 증가하고 있는 추세입니다. 웹 개발에 사용되는 언어와 프레임워크는 다양하지만, 그 중 최근 스프링 프레임워크가 굉장히 많은 곳에서 사용되고 있죠. 대표적인 예로 국내에서는 전자 정부 표준 프레임워크의 기반 기술로 활용되고 있습니다. 이렇게 스프링에 관심이 모이고, 그 쓰임이 꾸준히 증가하는 상황에서 스프링 초급자 / 웹 애플리케이션 개발자들을 위해 한빛미디어에서 서적을 발행했는데요, 



      바로 한빛아카데미의 <스프링 4 입문 : 웹 애플리케이션의 기초부터 클라우드 네이티브 입문까지> 입니다.










       


       


       



      [스프링 4 입문 : 웹 애플리케이션의 기초부터 클라우드 네이티브 입문까지]



      http://www.hanbit.co.kr/store/books/look.php?p_code=B9146679987








       


       




      [ 목 차 ]



       


       CHAPTER 01 스프링과 웹 애플리케이션


      1.1 스프링의 최신 정보


      1.2 스프링과 웹 애플리케이션


      1.3 애플리케이션 아키텍처


      1.4 프레젠테이션 층의 역할


      1.5 비즈니스 로직 층의 역할


      1.6 데이터 액세스 층의 역할


      1.7 웹 애플리케이션이 안고 있는 문제


      1.8 스프링 개요


       


      CHAPTER 02 스프링 DI


      2.1 DI란?


      2.2 DI를 사용할 곳


      2.3 어노테이션을 이용한 DI


      2.4 Bean 정의 파일을 이용한 DI


      2.5 JavaConfig를 이용한 DI


      2.6 ApplicationContext


      2.7 스프링 로깅


      2.8 스프링의 유닛 테스트


      2.9 Bean 정의 파일의 프로파일 기능


      2.10 생명 주기


       


      CHAPTER 03 스프링 AOP


      3.1 AOP란?


      3.2 어노테이션을 이용한 AOP


      3.3 JavaConfig를 이용한 AOP


      3.4 Bean 정의 파일을 이용한 AOP


       


      CHAPTER 04 데이터 액세스 층의 설계와 구현


      4.1 데이터 액세스 층과 스프링


      4.2 스프링 JDBC


      4.3 Spring Data JPA


      4.4 정리


       


      CHAPTER 05 비즈니스 로직 층의 설계와 구현


      5.1 트랜잭션이란?


      5.2 트랜잭션 매니저


      5.3 트랜잭션 기능의 사용법


      5.4 정리


       


      CHAPTER 06 프레젠테이션 층의 설계와 구현


      6.1 스프링 MVC의 개요


      6.2 환경 만들기와 동작 확인


      6.3 예제 애플리케이션 개요


      6.4 화면을 표시하는 컨트롤러


      6.5 입력값을 받는 컨트롤러


      6.6 그 밖의 기능


      6.7 정리


       


      CHAPTER 07 인증·인가


      7.1 인증·인가와 프레임워크


      7.2 인증·인가의 기본


      7.3 스프링 시큐리티


      7.4 스프링 시큐리티의 기본 구조


      7.5 웹 애플리케이션과 인증


      7.6 웹 애플리케이션과 인가(액세스 제어)


      7.7 스프링 시큐리티의 연계 기능


      7.8 시큐리티 공격 대책


      7.9 정리


       


      CHAPTER 08 ORM 연계 - 하이버네이트, JPA, MyBatis


      8.1 하이버네이트와의 연계


      8.2 JPA와의 연계


      8.3 MyBatis와의 연계


      8.4 정리


       


      CHAPTER 09 캐시 추상 기능 - Spring Cache


      9.1 ProductDaoImpl과 ProductServiceImpl, ProductSampleRun의 수정과 동작 확인


      9.2 응용 편


       


      CHAPTER 10 배치의 설계와 구현


      10.1 배치


      10.2 스프링 배치


      10.3 예제로 알아보기


       


      CHAPTER 11 클라우드 네이티브 입문


      11.1 스프링 부트


      11.2 PWS를 이용한 "Hello World!"


      11.3 PWS에 로그인하기


      11.4 PWS에 디플로이하고 실행해보기


      11.5 정리


       


      책을 마치며







      펼친 부분 접기 







       








      [이 책은]


       


       





       


       



      교재에서 제공하고 있는 수많은 다이어그램 중 하나입니다.



      글로 개념을 상세히 설명해 주고, 다이어그램으로 내용을 시각화해주어



      핵심 내용을 조직적으로 이해하며 학습할 수 있습니다.



      위 사진은 '부품화' 라는 개념의 이해를 돕기 위해 그려진 다이어그램인데, 덕분에 헷갈리지 않고 내용을 정확히 이해할 수 있었습니다.  










       





       



      파일 내용(소스코드)과 함께 그 내용에 대한 상세 설명을 제공하고 있습니다. 



      설명 하단에 주석과 같은 형태로 따라붙는 부가 설명이 매우 유용합니다.



      내용에 대한 추가 설명(특정 코드에 대한 이력, 여러 가지 상황 설명 등)을 제공해 주어 좀 더 심도있고 재미있게 학습할 수 있습니다. 


       



          


       










       



      이전 사진에서 언급했던 주석 형태의 부가 설명과 유사한 섹션입니다. 



      업로드한 사진은 본문에서 주로 다루고 있는 기술적인 내용이 아닌



       저자의 조언이 담긴 부분입니다.  "Coffee Break" 섹션과 더불어 열심히 공부하다 잠시 쉬어갈 수 있는 부분이네요^^



      추가로 책 곳곳에 "NOTE" 섹션과 "Coffee Break" 섹션도 있어 심화학습을 할 수도 있습니다.


       


       


       








      [책을 덮으며]


       



      스프링 프레임워크에 대한 가벼운 지식으로 시작했지만, 이 책을 읽으며 개념을 잡고 수록되어 있는 실습 과정을 따라가다 보니 책을 펴기 전보다 스프링에 대한 이해가 깊어진 것을 실감할 수 있었습니다. 책 사이사이에 수록되어 있는 부가 설명과 기술적 내용 외의 간단한 글 덕에 너무 딱딱하지도 않게 대학 선배와 함께 스터디하는 느낌을 받을 수 있는 책이었어요. 



      다만 웹 개발에 관련된 지식이 전무한 분에게는 조금 따라오기 어려울 수도 있으니, 이전에 개발이나 학습 경험이 있던 분들이 보면 훨씬 더 좋을 것 같습니다^^.



      스프링 4 입문과 함께 이론적 지식을 쌓고 웹 개발에 적용할 수 있는 기반을 다졌으니, 얼른 실무에 활용하러 가볼까요~


























       


       


       





    • 중간중간엔 아키텍쳐그림과, 예제가 많이 제공된다.
      글보다 그림으로 확인 하는 것은
      이해에 더 도움이된다.

      개발 초보자가
      스프링의 원리와 특성에 대해 무리없이 이해해기 좋은 책인듯 싶다.

      스프링을 사용한다면,
      이 책을 읽어보기를 추천드린다.

       

    • 이번에 읽어본 한빛미디어에서 출간한 스프링4 입문편의 느낌은 깔끔하고 저자가 일본인이라 그런지 그림과 표를 많이 이용해서 쉽게 설명해 준다. 코드도 간결하게 작성하여 이해하는데 도움이 되었다.


      다만 아쉬운 점은 일반 실용서의 경우 스스로 따라하면서 결과를 확인할 수 있도록 코드 중심으로 기술되어 있는데 이 책은 스프링 프레임워크의 특징과 개발방식을 설명하고 예시로 필요한 소스코드만 제공한다. 그래서 책에서 제시하는 소스코드만을 가지고 프로그램을 만들어 실행 결과를 확인하기에는 한계가 있었다.


       


      스프링4 입문을 계속 읽어보면서  느낀것은 이책은 다른 개발 서적과 달리 실습서라기 보다는 이론서로 보는게 맞다.  그렇다고 다른 이론서처럼 해당 언어나 프로그램에 대해 전체를 세분하여 기술하기 보다는 실무에서 필요한 개념과 방식을 제시하고 이를 설명하기위해 그림과 표를 활영해서 이해하는데 유익하다. 그래서 스프링4 입문은 처음 스프링을 접한 입문자보다는 스프링 프로젝트를 해본 초보자들에게 유익할 것으로 보인다. 


       


      이 책은 앞으로 스프링 개발을 하면서 옆에 두고 막히는 부분이 있을 때 혹은 개발방식이 이해가 되지 않을 때마다 펼쳐보고 이해하고 따라하는데 큰 도움이 될 것라 생각한다.


      마무리 하면 한빛미디어서 발간한 스프링4입문은 스프링 프레임워크 개발에 처음 발을 들여놓은 입문자보다는 이미 스프링을 가지고 개발을 해본 경험이 있는 개발자에게 많은 도움이 되는 책이다. 특히 스프링 프레임워크를 가지고 개발하면서 개념을 명확하게 이해가 안되었던 개발자들에게 이 책을 권하고 싶다. 이 책은 스프링의 개념부터 개발방식까지 이해하고 익힐 수 있는 꽤 괜찮은 책임에 틀림이 없다.




    •  



      책을 읽게 된 계기


      진행 중이던 프로젝트가 하나 끝나고, 다음 프로젝트를 준비하면서 스프링에 대해 공부를 하게 되었다. 모바일 게임의 웹 서버 프로젝트이다 보니 스프링 프레임워크까지 쓰는 것에 대해 대부분 반감을 가지고 있어서 이전에는 서블릿 기반으로 간단하게 구현을 해서 사용을 했었다. 나 또한 스프링 프레임워크를 도입 해야만 하는 이유가 딱히 없었기 때문에 서블릿을 사용하며 필요한 부분만 구현하는 식으로 프로젝트를 진행했었기 때문에 따로 공부할 것이 많지 않아서 편한 부분은 있었다. 하지만 자바 웹 서버 개발을 하는 사람들이 하나같이 스프링을 극찬하며 많이 사용하는 이유가 있을거라는 생각에 스프링 공부를 한번 해보기로 마음 먹었다. 공부를 해나가면서도 스프링이 좋은 건 알겠는데 굳이 우리 프로젝트에서 사용해야할 이유가 떠오르지 않았고 팀원들을 설득시킬 만큼의 이점이 없어 보였다.





       


      책을 읽으며 느낀점


      그러던 중 스프링4 입문 책을 읽으며 1장에서 이러한 의문들을 해소할 수가 있었다. 1장의 내용은 스프링이 나온 배경과 어떻게 발전해왔는지에서부터 스프링을 사용했을 때의 이점과 스프링이 추구하는 것이 무엇인지를 알게되니 그동안 고민하고 의문이 들었던 부분들이 하나씩 해소가 되는 것을 느꼈다. 곧바로 스프링에 대한 학습을 시작하지 않고, 독자들에게 스프링을 왜 사용해야 하는지에 대한 이유를 먼저 알려주니 얼른 다음 장이 읽고 싶어졌다.





       


      스프링에 대한 모든 내용을 담기에는 너무 방대하기 때문에 이 책에서는 웹 서버 개발을 위한 스프링 MVC에 초점이 맞춰져 있었다. 하지만 스프링의 핵심 개념인 DI와 AOP에 대해 자세히 설명하고 기반 지식들을 알기 쉽게 설명하고 있기 때문에 이 책을 온전히 이해하고 난 뒤라면 스프링의 다른 부분들도 쉽게 이해할 수 있을 것이라는 생각이 들었다. 개인적인 생각이지만 일본인 저자의 책들은 문장의 흐름이 자연스럽고, 문단 구성도 잘 되어 있어서 내용을 이해하는데 큰 도움이 되는 것 같다. 그림은 많지는 않지만 읽기 쉽기 때문에 재미있게 책을 읽어나갈 수 있었다.





       


      역시나 가장 큰 장애물은 스프링을 사용하기 위한 환경 설정이었다. 예제를 따라하기 위해 STS를 설치하고 개발 환경을 구성하는데 시간이 많이 소요되었었고, 어노테이션을 많이 사용하기 때문에 중간에 하나씩 빼먹는 것에서 오류가 나고, 이러한 오류는 또 찾기도 힘들었었다. 스프링 부트를 사용하면 이러한 설정에 대한 어려움을 덜어낼 수 있지만 책의 후반부에 스프링 부트가 등장하기 때문에 환경 설정은 피할 수 없다. 하지만 개인적으로는 너무 편한 것을 먼저 사용하는 것보다는 정석대로 하나씩 설정을 배워가며 돌아가는 원리를 파악한 후에 이러한 것들을 자동으로 해주는 편리한 프레임워크를 사용하는 것이 더 좋다고 생각한다. 저자도 그러한 이유 때문에 스프링 부트를 후반부에 넣지 않았을까


       


      마치며


      스프링에 대한 기반 지식을 탄탄이 하는데는 강력 추천 할만한 책이지만 스프링 5가 릴리즈 된 상황에서 스프링 4 책이 출판된 것이 조금 아쉬웠다. 그래도 버전에 상관 없이 기반을 다질 수 있는 책이기 때문에 큰 도움을 주는 책이다. 다음 프로젝트에서 스프링을 사용할지는 아직 모르지만 스프링을 공부하다보면 프로그래밍에 대한 실력도 향상되는 느낌이 들었다. 주어진 틀 안에서만 코딩하는 개발자가 아닌 원리를 파악하고, 제대로 코딩하고 싶은 개발자들에게 추천!


       





    • 스프링은 현재 5가 공식적으로는 최종 버전이다. 이 책은 스프링4를 다루고 있어 사실은 한발 늦었다고 생각하고 있지만, 스프링의 많은 기반이 되는 것이 현재까지는 3.2나 4에 맞춰져 있는 상황이어서 사실 지금부터 스프링을 공부하는 사람에겐 많은 변화를 가져온 5부터 공부하는 것보다는 스프링4를 먼저 공부하는 것이 좀 더 쉽게 공부하는 방법이 아닐까 생각한다.


      그런 관점에서 보면 이 책은 실 업무에서 스프링을 다루는데 필요한 거의 모든 부분을 다루고 있다고 생각이 든다.



       



      스프링 하면 보통 다들 생각하는 책은 Toby Lee 님의 스프링 책일 것이다.
      하지만 그 책은 스프링의 모든 것을 다루다 보니 정말 어마어마할 정도로 양이 많다.
      그 책은 공부하기 위해서 보다는 작업을 하다 reference를 찾는 용도로 사용하는 것이 더 적합하다는 생각이 들 정도로 자세하고, 스프링에 대해 자세히 다루고 있다.



      스프링을 실 업무에서 사용하고 있으나, 2% 부족함을 느끼는 개발자라면 적극적으로 이 책을 추천한다.
      이 책은 Toby 님의 스프링 책만큼 많은 내용을 다루지는 못하고 있지만, 업무를 하면서 필요로 하는 기본적인 내용은 빠지지 않고 담아 두었다고 생각된다.


      스프링에서 가장 중요한 DI(Dependency Injection)와 AOP(Aspect oriented programming)에 대해서는 이해하기 어렵지 않도록 친절한 설명과 함께 적절한 예제로 기술되어 있어 확실하게 개념을 잡고 넘어가기에 좋다.



      이번 “스프링4 입문” 책을 보면서 한빛 미디어의 개발 서적이 점점 좋아지고 있다고 느끼게 된 점이 하나 있는데, 코드의 설명에 대한 부분이다.
      물론 이 부분은 지극히 개인적인 관점이라 다른 독자들은 어떻게 생각할지 모르겠다.
      이전의 한빛 책들을 보면 “코드에서 몇번째 줄” 이라고 기술되어 있는 경우가 많았다. 하지만 이번 책에서는 친절하게 코드별로 설명하고 있는 부분에 대해 따로 표시를 해주는 친절함을 발견할 수 있었다.


      코드가 들어간 개발 서적을 보면서 항상 불편하다고 생각했던 부분인데 적극적으로 개선해주는 모습을 보여주는 한빛 미디어의 서적을 보니 문득 편집자분의 노고가 느껴졌다.



      스프링의 전체적인 부분을 입문자의 입장에서 빠짐없이 설명하고 있다는 장점 외에도, 책을 쓰신 분의 Know-How 나 아키텍터 관점에서 프로그램을 볼 때 어떤 부분을 봐야 하는지
      어떤 부분을 신경 써야 하는지도 기술되어 있어 커리어의 목표를 아키텍터로 잡고 있는 분들에게도 많은 도움이 될 거로 생각한다.



      한 가지 아쉬운 점이라면 번역서다 보니 2017년 11월이 초판이지만 실제 책이 쓰였던 시기는 2015년도라는 점이다.
      물론 스프링 자체가 5.0으로 넘어가기 전까지는 많은 변화가 있는 프레임워크가 아니고 현재까지도 스프링 4가 주력으로 사용되고 있기 때문에 당장 스프링 5를 공부하려는 사람이 아닌 이상 스프링이 가지는 코어 시스템의 개념을 익히고 스프링이란 프레임워크를 알아가기 위해서는 더할 나위 없는 책이라 생각된다.



      이 책 “IT 트렌드 스페셜 리포트” 는 [링크] 에서 확인할 수 있다.

    • 이 책은 실습보다는 이론 위주로 서술되어 있는 책입니다. (물론 중간에 설명들을 뒷받침해주는 예제 코드들이 실려 있기는 합니다.) 2010년대 초부터 스프링 책들이 굉장히 많이 출간되고 있는 것 같은데, 대부분의 책들이 이론보다는 실습 위주로 되어 있습니다. 


       


      사실 저는 책에 나온 내용을 차근차근 따라 쳐 가면서 배우는 스타일이라서 실습 위주로 된 책을 선호합니다. 하지만 개발을 하다 보면 이론이 부족하다는 생각이 들 때가 많이 있습니다. 이럴 때 이론서를 찾아보게 되는데, 보통 스프링 이론서로는 이일민 님의 <토비의 스프링>을 보게 됩니다. <토비의 스프링>은 3.1 기준으로 되어 있습니다. 스프링은 벌써 4가 나온지 옛날이고, <토비의 스프링>은 너무 내용이 방대하게 구성되어 있어서 읽다가 포기하게 되는 면이 있습니다. 이런 점에서 한빛미디어의 <스프링4 입문>은 스프링으로 웹 개발자 입장에서 꼭 필요한 내용만 잘 넣은 이론서라는 생각이 듭니다.


       


      난이도 면에서 보자면, 이 책 제목에 '입문'이라는 단어가 들어가 있긴 하지만, 왕초보 입문자들이 이 책을 곧바로 이해하는 것은 무리가 있습니다. 토비의 스프링 같은 이론서와 실습 위주로 구성된 튜토리얼 책의 중간에 위치해 있다고 보면 됩니다. 이 책은 완전 초보자보다는 튜토리얼 책을 한 번씩이라도 따라해 보았거나 스프링으로 어떻게든 개발을 하고 있지만 이론적인 내용이 부족할 때 정독하면 좋을 것 같습니다.


       


      이 책의 1장에서는 왜 스프링 프레임워크가 오늘날 주류가 되었는지 잘 설명해 놓았습니다. 과거에 써 왔던 웹 기술에 어떤 문제가 있었는지, 스프링이 그런 문제들을 어떻게 해결했는지, 스프링이 탄생한 배경과 개요가 잘 설명되어 있습니다. 


       


      2장과 3장에는 DI와 AOP의 기본 개념과 스프링에서 DI와 AOP를 어떤 식으로 지원하는지 설명되어 있습니다. 이 책에는 DI와 AOP가 무엇인지 구구절절 설명은 나오지 않기 때문에 미리 개념을 어느 정도 파악하고 있어야 합니다.


       


      4, 5, 6장은 스프링 웹 개발에서는 빠질 수 없는 MVC에 해당하는 내용입니다. 8장은 Hibernate, JPA, MyBatis 등 다양한 ORM들을 스프링에서 어떻게 쓰는지 설명이 잘 되어 있습니다. 최소한의 내용만 읽으려면 1장부터 6장까지, 그리고 8장을 읽으면 될 것 같습니다.


       


      이 책의 장점 중 하나는 스프링에서 사용할 수 있는 다양한 개발 방법을 소개해 놓은 것입니다. 개발 중에 무언가 인터넷에 검색해보면 활용할 수 있는 방법이 너무나 많아서, 어떤 방법이 좋은 것인지 알 수가 없습니다. 개발을 하면서도 이렇게 하는 것이 맞는 것인지 의문이 들 때가 있고 그럴 때마다 스트레스를 받게 됩니다. 단편적인 예로 Bean 정의 파일을 이용할 것인가, 애노테이션을 이용할 것인가, 아니면 JavaConfig를 이용할 것인가 고민하는 것부터가 그렇습니다. 여태까지 써 왔던 방법들 중에서 이 책을 보고 비로소 이해하게 된 것들도 많이 있습니다.


       


      7장 스프링 시큐리티, 9장 스프링 캐시, 10장 스프링 배치는 한 번도 자세히 공부해 본 적이 없었던 부분입니다. 이 책에 설명이 잘 되어 있어서 나중에 스프링을 쓰게 된다면 유용하게 써먹을 수 있을 것 같습니다. 


       


      아쉬운 부분은 이 책의 마지막 장인 11장 클라우드 네이티브 입문 부분입니다. 이 장은 너무나도 간략하게 스프링 부트를 소개하는데 그쳐서 아쉬웠고, 뒷부분에 소개되어 있는 PWS 클라우드 이용 방법이 2015년 말부터 설명대로 되지 않는다는 주석이 달려 있는 점도 아쉬웠습니다. 책 부제에도 나오는 만큼 조금 더 내용을 보강해야 하지 않을까 싶습니다.


       


      앞에서도 적었지만, 이 책은 스프링 튜토리얼을 끝내고 조금 더 이론적인 접근을 원하는 웹 개발자에게 추천드립니다.


       

    • 스프링에 관심 있으신 분들은 어렵지 않게 입문할 수 있어서 좋을거 같아요!

    • 스프링4 입문 도서 :: 웹 애플리케이션의 기초부터 클라우드 네이티브 입문까지


       



      undefined


       














      스프링4 입문


      저자 하세가와 유이치, 오오노 와타루, 토키 코헤이



      출판 한빛미디어



      발매 2017.11.01.





















      스프링4 입문 도서 소스 코드 (깃허브) : https://github.com/minsoojun/spring4




















       







       


       



      2.jpg


       


       


       

  • 내용이 없습니다.
    • 마이크로서비스 아키텍처 구축

      샘 뉴먼

    • 실전 스프링 부트 워크북

      펠리페 구티에레스

닫기

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