배워서 바로 쓰는 스프링 프레임워크
연구이야기/도서이야기☆

배워서 바로 쓰는 스프링 프레임워크

2020년 5월에 출간된 <배워서 바로 쓰는 스프링 프레임워크>에 대해 살펴보겠습니다. 얼마 전 한빛미디어에서 출간한 따끈따끈한 책입니다.

이 책은 애시시 사린(Ashish Sarain), 제이 샤르마(J Sharma) 두 분이 작성했으며, 번역은 오현석 님께서 맡아주셨습니다.  역자가 오현석 님이므로 믿고 보셔도 됩니다. 

<배워서 바로 쓰는 스프링 프레임워크>는 약 900페이지로 구성된 책이므로 휴대하며 읽기는 다소 어렵습니다. 스프링 프레임워크를 전반적으로 다루는 책이므로 분철하는 것은 효율적이지 않을 것으로 판단되지만, 책의 두께 때문에 종이가 얇아 뒷장이 비치는 부분은 아쉽습니다. 글을 읽을 때 뒷장의 글씨가 겹쳐 보여 가독성이 좋지 않습니다.  

한빛미디어에서 기획하고 추진하는 한빛리더스 프로그램에 참여하며 작성한 글입니다. 

이 책에서 다루는 내용은?

<배워서 바로 쓰는 스프링 프레임워크>의 1장은 스프링 프레임워크를 소개합니다. 스프링의 주요 모듈과 IoC 컨테이너를 소개한 후, 스프링의 장점에 관해 설명합니다. 그리고 스프링 DI를 사용하는 간단한 예제로 이해를 돕습니다. 마지막으로 스프링 5에서 도입한 새로운 기능과 스프링을 기반으로 만들어진 프레임워크를 소개하는 것으로 이 장을 마칩니다.

2장부터 7장까지는 스프링 프레임워크를 사용할 때 반드시 알고 있어야 할 주요 내용을 소개합니다. 스프링 프레임워크의 특성과 빈 설정 방법, 의존 관계 주입, 빈, 애너테이션을 활용한 개발 방법과 자바 기반의 컨테이너 설정법을 다룹니다. 2장에서 7장까지의 내용을 정확하게 습득하는 것이 중요합니다. 개인적으로 이 책의 구성과 예제는 만족스럽습니다. 저자가 이 책을 쓰며 꽤(?) 고민했을 것 같은 생각이 듭니다.

8장과 9장은 데이터베이스와 연동하는 방법을 보여줍니다. 예제 데이터베이스는 MySQL을 사용하며, JdbcTemplate으로 설명하는 부분이 인상적이었습니다. 이후에 스프링 데이터 JPA를 도입하는 방법과 Querydsl을 도입하여 질의를 생성하여 활용하는 방법도 안내합니다. 마지막으로 MongoDB를 활용하는 방법을 소개하는 것으로 이 장을 마칩니다. 개인적으로 데이터 핸들링에 관심이 많기 때문에 구성은 나쁘지 않지만 처음 활용하는 독자에게는 다소 어려울 수 있겠다는 생각이 들었습니다.  

12장~15장에서는 스프링으로 웹 MVC 프로젝트를 제작하는 방법을 안내합니다. 스프링을 활용하여 웹 프로젝트를 만드는 분이라면 도움을 받을 수 있을 것으로 생각합니다. 그리고 16장에서는 스프링 시큐리티를 적용하는 방법을 안내합니다. 앞에서 만든 프로젝트에 보안을 적용하는 방법을 소개합니다. 

스프링은 매우 방대한 프레임워크입니다. 한 권의 책으로 모든 내용을 다룰 수는 없습니다. 다만 기본적으로 이해하고 활용하는 방법을 학습하고 싶다면 이 책에서 많은 도움을 받을 수 있을 것으로 생각합니다. 안타까운 점은 이 책의 원서가 출간된 지 약 2년 정도 지난 것으로 알고 있습니다. 그래서 최근에 변경된 부분이 반영되지 않은 부분이 있고, 필자가 관심 있던 스프링 배치에 대한 소개가 누락된 점이 아쉽습니다. 

마치면서

<배워서 바로 쓰는 스프링 프레임워크>는 19개의 챕터와 3개의 부록으로 구성되어 있습니다. 최근 스프링 프레임워크 생태계의 중심은 스프링 부트입니다. 스프링 부트를 활용하면 설정을 최소화하면서도 원하는 기능을 빠르게 개발할 수 있습니다. 하지만 스프링 프레임워크의 내부 구조를 제대로 이해하지 못한다면, 바로 어려움에 직면할 것입니다.

이 책은 스프링 프레임워크의 동작과 구조를 이해할 수 있습니다. 다양한 스프링 프레임워크의 설정 방법(XML, 애너테이션, 자바)을 학습할 수 있으며, 스프링 프레임워크의 토대가 되는 기반 기술과 웹 서비스, 보안, 리액티브 프로그래밍에 대해 학습할 수 있습니다.

마지막으로 자바 함수형 프로그래밍, RxJava2를 사용한 반응형 프로그래밍, 19챕터 스프링 웹 플럭스를 사용해 반응형 RESTful 웹 서비스 개발하기로 이어지는 구성은 만족스러웠습니다. 아무런 준비 없이 스프링 웹 플럭스를 소개했다면 독자가 당황스러움을 느낄 수도 있었을 텐데, 이런 구성을 통해 해당 부분을 매끄럽게 진행할 수 있었던 것 같습니다. 아쉬운 점은 최근 스프링 개발자 커뮤니티에서 코틀린(Kotlin)을 스프링 프레임워크에 도입하는 방법들을 소개하고 있는데, 이 책에서 코틀린을 활용하는 방법을 부록을 통해 안내했었으면 좋았을 것 같습니다.