◈ 이 책에서 다루는 내용 ◈
◆ 번거로움을 최소화하고 강력한 프로덕션 수준의 웹 애플리케이션 만들기
◆ 하나의 아티팩트로 여러 환경을 지원하고, 프로덕션급 지원 기능 추가하기
◆ 다양한 속성을 통해 자바 앱을 조정하는 방법 알아보기
◆ 앱의 보안 모델 강화하기
◆ 스프링 부트에서 네이티브 배포 및 반응형 프로그래밍과 같은 향상된 기능 활용하기
◆ 가벼운 단위 테스트부터 완전히 실행되는 임베디드 웹 컨테이너 통합 테스트까지 빌드하기
◆ 반응형 프로그래밍을 알아보고 적합한 접근 방식인지 의사 결정하기
◈ 이 책의 대상 독자 ◈
스프링 부트 3.0을 사용하고자 하는 초보자와 숙련된 스프링 개발자 모두를 위해 만들어졌다. 자바에 대한 기초적인 이해가 있어야 하며, 가급적이면 자바 8 이상 버전이어야 한다. 람다(lambda) 함수, 메서드(method) 참조, 레코드(record) 유형, 자바 17 버전에서 새롭게 개선된 컬렉션 API에 익숙하면 좋지만 필수는 아니다.
필수는 아니지만 이전 버전의 스프링 부트(1.x, 2.x)를 사용해본 경험이 있다면 도움이 될 것이다.
◈ 이 책의 구성 ◈
1장, ‘스프링 부트의 핵심 기능’에서는 애플리케이션을 빌드할 때 사용할 수 있는 기본 기능과 함께 스프링 부트의 매력을 알아본다.
2장, ‘스프링 부트로 웹 애플리케이션 만들기’는 서버 및 클라이언트 측 옵션을 모두 사용해 자바 애플리케이션의 웹 레이어(layer)를 쉽게 제작하는 방법을 알려준다.
3장, ‘스프링 부트로 데이터 쿼리하기’에서는 스프링 데이터로 데이터베이스를 최대한 활용하는 방법을 보여준다.
4장, ‘스프링 부트 애플리케이션 보호’에서는 스프링 시큐리티의 최첨단 기능을 사용해 애플리케이션을 내부와 외부의 악당으로부터 보호하는 방법을 살펴본다.
5장, ‘스프링 부트 테스트’는 모의 데이터베이스와 임베디드 데이터베이스로 테스트하고, 실제 데이터베이스와 결합된 테스트컨테이너(Testcontainer)를 사용해 시스템에 대한 신뢰를 구축하는 방법을 알려준다.
6장, ‘스프링 부트 애플리케이션 구성’에서는 애플리케이션이 빌드된 후 조정하고 적용하는 방법을 알아본다.
7장, ‘스프링 부트 애플리케이션 릴리스’에서는 애플리케이션을 프로덕션 환경으로 전환하고 사용자에게 제공하는 다양한 방법을 살펴본다.
8장, ‘스프링 부트로 네이티브 전환’에서는 몇 초만에 시작하고 모든 리소스를 차지하지 않는 네이티브 이미지를 사용해 애플리케이션의 속도를 비약적으로 향상시키는 방법을 보여준다.
9장, ‘리액티브 웹 컨트롤러 작성’에서는 반응형 웹 컨트롤러를 작성하는 것이 얼마나 쉬운지, 그리고 반응형 웹 컨트롤러가 어떻게 더 효율적인 애플리케이션의 핵심이 될 수 있는지를 설명한다.
10장, ‘반응형 데이터 작업’에서는 R2DBC를 사용해 반응형 데이터를 쿼리하는 방법을 알아보고 애플리케이션의 효율성을 확인하는 데 도움을 준다.
◈ 옮긴이의 말 ◈
스프링 부트 프레임워크는 작고 빠르게 사용할 수 있어 많은 조직에서 선호하며 사용하고 있다. 2022년에 3.0 버전을 릴리스한 이후 2024년 7월 현재 3.3.x 버전까지 출시돼 작은 스타트업부터 대규모 엔터프라이즈까지 폭넓게 활용되고 있다. 스프링 부트 3.0의 주요 특징으로는 자바 17을 기본으로 지원하고, 기존의 자바 EE API에서 자카르타(Jakarta) EE 9 API로 전환된 부분이 있다. 또한, GraalVM을 사용해서 클라우드 네이티브 이미지를 빌드해 경량화된 이미지를 통해 부트스트랩 시간을 단축하고 메모리 사용량을 최적화할 수 있는 것이 큰 장점 중 하나다. 이번 책에서는 자세히 다루지 않지만 Micrometer 및 Micrometer Tracing 기능이 통합돼 더 효율적으로 관측 데이터를 수집할 수 있게 된 것도 중요한 특징이다.
이 책은 스프링 부트 3.0을 활용해 자바와 스프링으로 빠른 시간 내에 애플리케이션 개발을 단순화하는 종합적인 가이드로 활용할 수 있다. 초보자와 경험 많은 개발자 모두를 대상으로 하며, 기본 설정에서부터 고급 기능까지 실용적인 예제와 함께 다루고 있다. 초보자들이 반드시 알아야 하는 스프링 부트의 핵심 요소인 자동 설정, 스타터, 설정 프로퍼티, 의존성 관리 등을 초반에 설명하고, Thymeleaf 기반의 간단한 웹 애플리케이션부터 시작한다. JPA, 스프링 시큐리티, 테스트 등을 살펴보고 GraalVM을 사용해서 클라우드 네이티브 이미지를 빌드하고 여러 가지 도구를 사용해 도커 컨테이너 기반으로 베이크하는 방법도 다룬다. 후반부에는 웹플럭스를 통해 반응형 웹 컨트롤러를 작성하는 방법과 반응형 데이터를 처리하는 방법까지 다룬다.
사실 이 책은 스프링 부트의 모든 내용을 담고 있지는 않지만, 스프링을 사용해본 경험이 있거나 스프링 부트에 대해 기초적인 지식이 있는 분들께 유용하게 활용될 것이라 생각한다.