자바와 코틀린으로 만나는 클라우드 네이티브 애플리케이션 구축

 

마크 헤클러 지음

오시영, 서정대 옮김

 

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

 

 

2023년 7월

2023 나는 리뷰어다 활동의 여섯 번째 리뷰

 

뜨거운 여름을 잠시 식혀주는 빗줄기 속에 리뷰할 책은 "처음부터 제대로 배우는 스프링부트(Spring Boot Up & Running)"이다.

 

 

스프링은 대한민국의 웹 개발자 시장에서 굉장히 많은 부분을 차지하고 있는 프레임워크이다.

많은 자바 개발자들이 스프링을 사용하여 웹 개발을 해왔고, 최근에는 코틀린으로 스프링을 사용하며 개발하는 추세이다.

 

그리하여, 스프링과 관련된 도서들은 굉장히 많다.

코드로 배우는 스프링 웹 프로젝트 - 자바 공부를 막 끝낸 개발자 분들이 스프링 입문을 위해 시작하는 책이다.

토비의 스프링 - 스프링을 개발하기 위한 교과서와도 같은 책이다.

등등의 좋은 책들이 너무나 많고, 과연 이 책은 어떤 경쟁력을 갖고 있는지 봐야 할 부분이다.

 

우선 목차를 살펴보자.

CHAPTER 1 스프링 부트
_1.1 스프링 부트의 핵심 기능
_1.2 마치며

CHAPTER 2 도구 선택 및 시작
_2.1 메이븐 vs. 그레이들
_2.2 자바 vs. 코틀린
_2.3 스프링 부트 버전 선택하기
_2.4 스프링 이니셜라이저
_2.5 스프링 부트 CLI 거침없이 사용하기
_2.6 통합 개발 환경(IDE) 사용하기
_2.7 main()을 향한 여정
_2.8 마치며

CHAPTER 3 첫 번째 REST API
_3.1 API를 왜 사용하고 어떻게 사용할까요?
_3.2 REST가 무엇이며, 왜 중요할까요?
_3.3 API, HTTP 메서드 스타일
_3.4 GET으로 시작하기
_3.5 믿으라, 그러나 검증하라
_3.6 마치며

CHAPTER 4 데이터베이스 액세스
_4.1 DB 액세스를 위한 자동 설정 프라이밍
_4.2 앞으로 얻게 될 것
_4.3 데이터 저장과 조회
_4.4 추가적으로 다듬기
_4.5 마치며

CHAPTER 5 애플리케이션 설정과 검사
_5.1 애플리케이션 설정
_5.2 자동 설정 리포트
_5.3 액추에이터
_5.4 마치며

CHAPTER 6 데이터 파고들기
_6.1 엔티티 정의
_6.2 템플릿 지원
_6.3 저장소 지원
_6.4 @Before
_6.5 레디스로 템플릿 기반 서비스 생성하기
_6.6 템플릿에서 repository로 변환하기
_6.7 JPA로 repository 기반 서비스 만들기
_6.8 NoSQL 도큐먼트 데이터베이스를 사용해 repository 기반 서비스 만들기
_6.9 NoSQL 그래프 데이터베이스를 사용해 repository 기반 서비스 만들기
_6.10 마치며

CHAPTER 7 스프링 MVC로 만드는 애플리케이션
_7.1 스프링 MVC는 무엇을 의미할까요?
_7.2 템플릿 엔진으로 사용자와 상호작용하기
_7.3 메시지 전달
_7.4 웹소켓으로 대화(conversation) 생성하기
_7.5 마치며

CHAPTER 8 프로젝트 리액터와 스프링 웹플럭스를 사용한 리액티브 프로그래밍
_8.1 리액티브 프로그래밍
_8.2 프로젝트 리액터
_8.3 톰캣 vs. 네티
_8.4 리액티브 데이터 액세스
_8.5 리액티브 Thymeleaf
_8.6 완전한 리액티브 프로세스 간 통신을 위한 RSocket
_8.7 마치며

CHAPTER 9 프로덕션을 위한 애플리케이션 테스트
_9.1 단위 테스트
_9.2 @SpringBootTest
_9.3 슬라이스 테스트
_9.4 마치며

CHAPTER 10 애플리케이션 보안
_10.1 인증 및 인가 부여
_10.2 스프링 시큐리티 살펴보기
_10.3 스프링 시큐리티로 폼 기반 인증 및 인가 구현
_10.4 인증 및 인가를 위한 OIDC와 OAuth2 구현
_10.5 마치며

CHAPTER 11 애플리케이션 배포
_11.1 실행 가능한 JAR
_11.2 JAR 확장
_11.3 컨테이너에 스프링 부트 애플리케이션 배포하기
_11.4 스프링 부트 애플리케이션 검사를 위한 유틸리티 컨테이너 이미지
_11.5 마치며

CHAPTER 12 리액티브로 더 깊이 들어가기
_12.1 리액티브는 언제 사용할까?
_12.2 리액티브 애플리케이션 테스트
_12.3 리액티브 애플리케이션 진단 및 디버깅
_12.4 마치며
타이틀만 올리고 싶었지만, 세부 목차를 보는 것이 중요하기 때문에 다 넣었다.
 
1장은 스프링 부트의 특징 설명을
2장은 스프링 부트 개발에 들어가기 전에 어떤 언어와 도구를 사용할지를
3장에서 5장은 REST API를 만들고 DB 연결을 하며 자동설정과 어노테이션의 기본을 살펴보고
8장과 12장은 리액트를 다루며 기본 개념을 깊이 있게 파고들고
9장에서는 스프링 부트에서 테스트뿐만이 아닌 테스트에 대한 저자의 관점을 볼 수 있다.
 
대부분의 스프링 책들의 구성과 순서가 비슷하지만 p.380정도의 분량에도 불구하고 있을 건 다 있다.
본 책에 구성 된 내용을 어느 정도 이해하고, 사용할 수 있다면 좋은 백엔드 개발자의 밑거름이 될 것이라 생각된다.
 
chatGPT는 이 책을 이렇게 설명한다.
 
초보자부터 전문가까지 모두가 이해하기 쉽게 작성되고 각 장에 실제로 실행 가능한 코드가 제시되어 개념을 이해하기가 쉽습니다. 게다가 스프링 부트의 기본 개념만이 아니라 클라우드 네이티브 애플리케이션을 구축하는 기술도 설명합니다. 스프링 부트는 기초부터 따라 하면서 학습하게 구성되었지만, 자바나 IDE 환경 설정과 관련된 부분은 선지식을 요합니다.
 
사실, 책을 보면 알겠지만 초보자를 위한 책이라 보기는 좀 어렵다. 어느 정도 자바와 스프링으로 개발한 경험이 있는 개발자가 보기에 좋은 책이라 생각이 된다.

1장을 보면 알겠지만 저자가 스프링 부트에 대한 이해의 깊이가 있다는 것을 알 수 있기에 어쩌면 초보자 분들에게는 어려울 수도 있다.

 

책의 내용을 흡수하기도 쉽지 않겠지만, 내용의 깊이가 있기에 책 외에 다른 레퍼런스들을 찾아가며 공부할 수밖에 없다.

 

그럼에도 불구하고, 굉장히 좋은 책이기에 스프링에 대해 또 다른 책을 갈구하시던 분들이라면 꼭 보시길 추천드린다.

 

Love Yourself.

+ Recent posts