|
Java와 Web개발을 중심으로 공부를 해왔는데 Spring Framework에 대해서는 아직 기초 정도만 배워서 더 공부하려고 관련된 책을 찾아봤다. 많은 책들 중에 이 책이 Spring의 기본 개념부터 다양한 기능의 하위 Framework들을 사용하는 방법까지 다루고 있어서 Spring을 공부하기에 괜찮아보였고 출판 시점인 2019년 기준으로 Spring의 최신 버전인 Spring 5를 반영해 집필했기 때문에 최신 Spring을 공부하기에도 좋아보였다. 책의 분량은 부록을 포함해 전체 1200페이지에 1권으로 되어있어서 많이 두껍고 구성은 전체 18장으로 되어 있다.
먼저 1장은 Spring 소개로 Spring Framework에 대해서 간략하게 소개한다. 2장은 Spring 시작하기로 Spring으로 개발하기 위한 환경을 구축하는 것을 소개한다. 3장은 Spring IoC와DI 소개로 IoC(Inversion of Control, 제어의 역전)와 DI(Dependency Injection, 의존성 주입)의 개념이 Spring에 어떻게 적용되었는지 알아본다. 4장은 Spring 구성 상세와 Spring Boot로 Spring의 서비스 요소들을 알아보고 기존의 Spring Legacy에 비해 간단한 설정작업으로 개발을 빠르게 시작할 수 있게 하는 Spring Boot에 대해 소개한다. 5장은 Spring AOP 소개인데 AOP(Aspect Oriented Programming, 관점지향 프로그래밍)의 개념이 Spring에서 어떻게 구현되었고 활용하는지 알아본다.
다음으로 6장은 Spring JDBC로 Spring으로 DB를 연동하여 자료를 저장하고 조회, 수정, 삭제하는 방법을 다룬다. 7장은 Spring에서 Hibernate 사용하기로 Hibernate는 DB의 자료를 다루는 코드를 효율적으로 작성할 수 있게 도와주는 ORM(Object Relational Mapping)의 한 종류로 Hibernate의 소개와 설정하는 방법, 사용법까지 알아본다. 8장은 Spring에서 JPA2로 데이터 액세스하기로 앞서 배운 Hibernate를 이용해 JPA(Java Persistence API)를 활용하고 DB와 연동하는 것을 다루는데 JPA의 주요 개념부터 JPA로 데이터 조작, 고급 Query 조작, Spring에서 JPA 활용하는 법을 살펴본다. 9장은 Transaction 관리인데 Transaction 처리에 대한 구현을 Spring을 이용해 단순화하는 방법을 알아본다. 10장은 타입 변환과 Formatting을 사용해 유효성 검증하기로 Spring의 여러 기능들을 이용해 객체나 자료의 유효성을 검증하는 방법을 살펴본다.
다음으로 11장은 Task Scheduling으로 특정 시간이나 정기적으로 실행해야 하는 기능인 Task를 Spring에서 사용하는 방법을 살펴본다. 12장은 Spring Remoting 사용하기로 다른 Application과 연동할 때 사용하는 기술을 Spring으로 개발할 때 적용하는 법을 다룬다. 13장은 Spring Test로 개발하면서 Test 작업을 쉽게 구현할 수 있게 도와주는 Test 관련 Framework들을 소개하고 JUnit의 사용법을 설명한다. 14장은 Spring에서 Script 언어 사용하기로 Script 언어의 한 종류인 Groovy를 소개하고 Spring 안에서 Groovy의 주요 기능들을 활용하는 법을 살펴본다. 15장은 Application Monitoring으로 Application이 실행되는 동안에 문제점이 있는지 감시하는 도구인 JMX(Java Management Extensions)를 Spring에서 사용하는 법을 살펴본다.
다음으로 16장은 Spring Web Application으로 Spring MVC를 기초로 국제화(다국어 지원), File Upload, 보안, 다양한 View 기술 등 여러 Framework 및 Library들을 추가해 Web Application을 개발하는 방법을 설명한다. 17장은 Web Socket으로 Web Socket에 대한 간단한 소개와 Spring에서 Web Socket을 사용하는 법을 다룬다. 18장은 Spring 프로젝트 : Batch, Integration, XD, 그리고 기타인데 Spring Batch는 일괄 처리 Framework로 Batch의 핵심개념과 사용법을 간단하게 살펴본다. Spring Integration은 Application에서 통합 패턴을 구현할 때 사용하는 Framework로 Spring에서 어떻게 사용하는지 알아본다. Spring XD는 데이터 수집, 실시간 분석, 일괄 처리, 데이터 내보내기에 중점을 둔 분산시스템으로 예제를 통해 사용법을 살펴본다. 이 외에 기타로 함수형 Web Framework(WebFlux), JUnit 5 그리고 Java 9의 호환 등 Spring 5의 주요 기능들에 대해 살펴본다. 마지막에 부록으로 개발 환경 구성하기가 있는데 책의 예제 프로젝트를 Gradle로 구성하는 것을 다룬다.
약간 아쉬운 점은 Spring의 기초부터 다양한 하위 Framework들까지 많은 내용을 1권에 다 담다 보니 책이 두꺼워져서 무겁고 보기 불편한 것 같다. 2권 정도로 분철하면 보기 편하지 않았을까 싶다. 이 부분을 제외하고 나머지 부분들은 괜찮았다. 다만 책 제목을 봐도 알겠지만 실무에서 사용하는 기술들이라 난이도가 높고 이해하기 어려워서 처음 배우는 입문자용으로는 어려울 수 있다. 대신에 Spring 개발자들이 공동 집필한 책이라 Spring 관련 실무에 필요한 것들을 자세히 다루고 예제 소스 코드를 제공해서 실무를 공부하기에는 좋다. 원서는 IntelliJ 기반으로 개발환경을 구축하고 집필했는데 한국어로 번역하면서 번역자분들이 Ecilpse 개발환경으로 수정해서 익숙하고 편했다. 그리고 다양한 기능들을 다루다보니 처음 배우는 내용들도 많았는데 ORM에서 전에는 Mybatis로만 배우고 사용했는데 Hibernate와 JPA도 많이 사용하는 걸 처음 알았다. 그리고 Web Socket과 Task Scheduling, JUnit도 처음 알았는데 유용한 기능들이라 많이 사용할 것 같다. 최근 Spring 개발의 추세가 Spring Boot로 넘어가고 있어서 거의 각 장마다 Spring Boot를 이용한 설정과 사용하는 방법을 같이 소개하고 있다. 그래서 이 책으로 기존의 Legacy와 최신의 Boot 둘 다 공부하기에 좋다. |
|
우선 이 책은 스프링의 전반적인 내용을 담고 있는 바이블 책입니다. 자바 9년차 개발자로서 토비의 스프링 이외에는 제대로 된 바이블 책을 보지 못했는데, 이 책은 스프링의 관련된 책중 가장 바이블 이라 불릴만한 책입니다. 특히 스프링 배치 관련해서 태스크 스케줄링은 보통 스프링 부트에서 다루지 않는 주제라서 특히 좋습니다. 그리고 요새 가장 핫한 타임리프에 관련 한 내용은 상세하게 기술되어 있어서 , 가장 좋앗습니다. |