본문 바로가기

book

그림으로 배우는 스프링 6 입문

스프링6기반의 새로운 책이 출간되었습니다.

참고로 책의 내용안에는 10장. 스프링부트로 생산성 향상하기 부분이 있지만 대부분 스프링에 대해서 세부적으로 설명되어 집니다.

책의 제목이 입문이라고 적혀있지만, 초급자분들도 대상이시지만 스프링을 조금 더 이론적으로 이해해고 싶으신 분들도 

많은 도움이 되는 내용으로 구성되었습니다.

 

 

책의 저자분은 일본저자 분이시고, 기존에도 다양한 스프링 버전의 책을 출간하시면서,

책의 표지도 비슷한 녹색 계열입니다. 꾸준히 스프링에 대해서 출간 및 번역이 이루어지는 것을 살펴볼수 있습니다.

 

이번에는 그림이 많이 들어가서 제목이 조금 변경된 것 같습니다.

책은 p.570 으로 두께가 적당히 있습니다.

 

 

 

책의 큰 구분은 기본편, 실무편으로 구성되어 있습니다.

목차를 살펴보시면, 현재 스프링에 대해서 살펴봐야 하는 깊이 있는 개념들이 잘 구성되어 있고

RESTful, 트랜잭션, Thymeleaf, 시큐리티 등등 필수적인 요소들이 잘 구성되어 있습니다.

 

 

 

 

■ 기본 개념 살펴보기

· DI, 컨테이너 및 기본으로 알아야 하는 3가지 인젝션 방식 (생성자, Setter, 필드) 등에 대해서 너무 무겁지 않게 하나하나 설명합니다.

 

개인적인 생각으로 일본인 저자분의 장점처럼 UML형태로 코드 기반으로 작성된 다이어그램은 그 의도를 명확히 설명하고 있습니다.

 

· JavaConfig와 @Bean 메소드를 활용한 방법

@Configuration, @Import, @Profile을 통한 다양한 설명을 통해서, 스프링에서 어떠한 경우에 사용을 해야 하는지 설명합니다.

 

· 처음부터 바로 JPA를 사용하는 방법하지 않고, 기본적으로 알아야 하는 JDBC를 통한 데이터베이스 접근

JDBC, JdbcTemplate를 통한 부분과 해당 조회한 데이타를 Entity객체로 변환해서 가져오는 필수적인 개념이 설명되어 집니다.

해당 부분은 기본적으로 DB를 통한 작업이 많은 스프링의 기본이여서, 핵심요소만 잘 정리되어 있습니다.

 

· 스프링 부트는 장점이 많은 부분을 간단하게 터치하고 설명합니다. 스프링의 학습이 잘 되어 있으면, 스프링 부트의 적용 및 활용은

자연스럽게 이루어지기 때문에 편하기 읽고 넘어가면 됩니다.

 

· 서버사이드의 작업을 위해서 화면 템플릿인 Thymeleaf를 사용한 내용으로 구성됩니다. 

RESTAPI구성을 위해서 get,post, put, delete등등 API를 만들기 위한 여러 케이스 들이 설명되어지고,

내용이 너무 길게 언급되지 않고, 실습 및 핵심만 바로바로 학습되는 예시와 설명으로 구성되어 집니다.

 

 

■ 실무편은 이책의 핵심요소가 많이 있습니다.

· 실제 심도있는 부분도 실무편에 아래와 같은 사항으로 구성되어 있습니다.

특히 테스트 부분에 대해서 많은 부분이 할애되어 있어서, 일반 스프링책에는 없는 관점으로 다양한 chapter를 구성하고 있습니다.

 

 

· 스프링은 기본적으로 싱글톤을 사용하는데, 싱글톤 처리 개념과 문제가 있는 코드를 개선하는 부분은 매우 중요한 개념이 

설명되어 지고 있다고 생각합니다.

· DB연동시 JDBC, MyBatis, JPA등 다양한 방식을 접근을 구성할수 있는데, 해당 부분에 대해서  오류처리를 정리하는 부분도

실무적으로 도움이 많이 되는 부분이고, 전체적으로 Error Handling하는 관점에서 좋은 개념설명이라고 생각이 듭니다.

 

 

■ 다양한 테스트 케이스를 예시로 들어주는 실습편 내용이 구성됩니다.

스프링을 사용하는 많은 이유가 있겠지만, 테스트가 다른 java프레임보다 용이하다는 점입니다.

python, node등을 비교대상으로 하는 부분은 아니지만, java를 기반으로 하는 프레임워크들이 많이 있었지만

지금 스프링이 대세가 되는 이유는 테스트 코드 작성이 용이하다는 점이  매우 큰 비중을 차지하는 부분이라고 생각합니다.

· 해당 책은 많은 부분이 테스트를 구성할때 필요한 내용이 많이 언급된 부분은 입문 책이라고 하지만, 그만큼 반대로 이해하면

테스트는 입문과정에서 매우 중요한 부분이라고 생각하는 것이 저자분이 입장이라고 생각됩니다.

 

· 단위테스트, 통합테슽, 및 E2E테스트가 언급되어 있어서 매우 좋았습니다.

필요한 어노테이션에 대해서 해당 그림으로 전반적인 flow를 살펴볼수 있습니다.

 

위 목차에서 언급한 부분처럼 각 Layer별로 단위테스트를 Repository, Service, Controller, RESTful등을 어떻게 접근해야 하는지

살펴보는 구성을 통해서, 테스트가 필요한 서비스 영역별로 필요한 부분을 선택적으로 적용해볼수 있습니다.

 

부록의 내용도, 기존에 오래돈 Legacy적인 부분 및 커맨드 부분등 스프링을 조금 다양하게 사용해본 저자분의 관점이 잘 정리되어 있어서

스프링을 잘 이해하고, 사용하기에 도움되는 부분이 많이 있습니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."