스프링 부트 3에 대한 포괄적인 가이드로, 초보자부터 숙련된 개발자까지 모든 수준의 독자들이 활용할 수 있도록 구성돼 있다. 복잡한 인프라 설정을 피하고 효율적인 개발 방법에 초점을 맞춰 웹 애플리케이션 개발의 기초부터 고급 주제까지 다룬다. 주요 내용으로는 빠른 애플리케이션 시작, 데이터 처리, 보안, 테스팅, 그리고 GraalVM을 이용한 네이티브 이미지 배포와 반응형 프로그래밍 같은 최신 기술 트렌드를 포함한다. 또한 실용적인 예제를 통해 애플리케이션의 설계, 개발, 테스트, 그리고 배포 과정을 체계적으로 안내하며, 다양한 환경에서의 애플리케이션 운영 방법도 제시한다.
Contents
1부. 스프링 부트 기본
1장. 스프링 부트의 핵심 기능
__기술 요구 사항
____자바 17 설치
____최신 IDE 설치
____깃허브 계정 생성
____추가 지원 찾기
__스프링 빈 자동 설정
____애플리케이션 콘텍스트 이해
____스프링 부트의 자동 설정 정책 살펴보기
__스프링 부트 스타터를 사용해 포트폴리오 구성 요소 추가
__설정 프로퍼티를 사용해 설정 사용자 지정
____사용자 지정 프로퍼티 생성
____애플리케이션 설정 외부화
____프로퍼티 기반 빈 설정
__애플리케이션 의존성 관리
__요약
2부. 스프링 부트로 애플리케이션 만들기
2장. 스프링 부트로 웹 애플리케이션 만들기
__start.spring.io을 사용해 애플리케이션 빌드
__스프링 MVC 웹 컨트롤러 생성
__start.spring.io를 사용해 기존 프로젝트 보강
__템플릿을 활용해 콘텐츠 생성
____템플릿에 데모 데이터 추가
____더 나은 디자인으로 애플리케이션 빌드
____생성자 호출을 통한 의존성 주입
____HTML 템플릿을 통해 데이터 변경
__JSON 기반 API 생성
__스프링 부트 웹 애플리케이션에 Node.js 후킹
____Node.js로 자바스크립트 빌드
____React.js 애플리케이션 생성
__요약
3장. 스프링 부트로 데이터 쿼리하기
__기존 스프링 부트 애플리케이션에 스프링 데이터 추가하기
____스프링 데이터를 사용해 손쉽게 데이터 관리
____프로젝트에 스프링 데이터 JPA 추가
__DTO, 엔티티, POJO
____엔티티
____DTO
____POJO
__스프링 데이터 리포지터리 생성
__사용자 지정 파인더 사용
__결과 정렬
__쿼리 결과 제한
__까다로운 답변을 찾기 위한 쿼리 예제
__자바 퍼시스턴트 API 사용
__요약
4장. 스프링 부트 애플리케이션 보호
__프로젝트에 스프링 시큐리티 추가
__사용자 지정 보안 정책으로 자체 사용자 생성
__하드 코딩된 사용자를 스프링 데이터 지원 사용자 집합으로 교체
__웹 경로 및 HTTP 메서드 보안
____CSRF를 사용할 것인가 말 것인가, 그것이 문제로다
__스프링 데이터 메서드 보안
____모델 업데이트
____데이터 소유권 확보
____삭제 버튼 추가
____데이터 소유자에 대한 액세스 권한 잠그기
____메서드 수준 보안 활성화
____사이트에 사용자 세부 정보 표시
__구글을 활용해 사용자 인증
____OAuth 사용의 장점
____OAuth 사용의 단점
____구글 OAuth 2.0 애플리케이션 생성
____스프링 부트 프로젝트에 OAuth 클라이언트 추가
____원격으로 OAuth2 API 호출
____OAuth2 기반 웹 애플리케이션 생성
__요약
5장. 스프링 부트 테스트
__애플리케이션에 JUnit 5 추가
__도메인 기반 테스트 케이스 생성
__MockMVC를 사용해 웹 컨트롤러 테스트
__모킹으로 데이터 리포지터리 테스트
__임베디드 데이터베이스로 데이터 리포지터리 테스트
__애플리케이션에 테스트컨테이너 추가
__테스트컨테이너를 사용한 데이터 리포지터리 테스트
__스프링 시큐리티 테스트로 보안 정책 테스트
__요약
3부. 스프링 부트 애플리케이션 릴리스
6장. 스프링 부트 애플리케이션 설정
__사용자 지정 프로퍼티 생성
__프로파일 기반 프로퍼티 파일 생성
__YAML 전환
__환경 변수로 프로퍼티 설정
__프로퍼티 오버라이드 순서
__요약
7장. 스프링 부트 애플리케이션 릴리스
__uber JAR 생성
__도커 컨테이너 베이킹
____‘올바른’ 유형의 컨테이너 빌드
__애플리케이션을 도커 허브에 릴리스
__프로덕션 환경 조정
____스프링 부트 스케일링
__요약
8장. 스프링 부트로 네이티브 전환
__GraalVM이 중요한 이유
__GraalVM에 맞게 애플리케이션 갱신
__GraalVM으로 기본 스프링 부트 애플리케이션 실행
____GraalVM을 다시 사용해야 하는 이유
__GraalVM으로 도커 컨테이너 베이킹
____스프링 부트 3.0과 스프링 부트 2.7 및 스프링 네이티브 비교
____GraalVM 및 기타 라이브러리
__요약
4부. 스프링 부트 애플리케이션 확장
9장. 반응형 웹 컨트롤러 작성
__반응형이란 무엇이며 관심을 가져야 할 이유
____반응형
____반응형 스트림 세부 정보
__반응형 스프링 부트 애플리케이션 생성
__반응형 GET 메서드로 데이터 서비스
__반응형 POST 메서드로 들어오는 데이터 소비
____프로젝트 리액터로 애플리케이션 확장
____자바 동시성 프로그래밍 역사 빠르게 훑어보기
__반응형 템플릿 서비스
____리액티브 웹 컨트롤러 생성
____타임리프 템플릿 생성
__반응형 하이퍼미디어 생성
__요약
10장. 반응형 데이터 작업
__반응형으로 데이터를 가져온다는 것의 의미
__반응형 데이터 저장소 선택
__반응형 데이터 리포지터리 만들기
__R2DBC 사용
____R2dbcEntityTemplate로 데이터 로드
____API 컨트롤러에 반응형으로 데이터 반환
____템플릿에서 데이터를 반응형으로 처리
__요약
Author
그렉 턴키스트,김진웅
스프링 데이터 JPA와 스프링 웹 서비스의 수석 개발자다. 스프링 헤이티오스(HATEOAS, Hypermedia As The Engine Of Application State), 스프링 데이터 레스트(REST), 스프링 시큐리티(Security), 스프링 프레임워크(Framework), 스프링 포트폴리오의 다른 많은 부분에 기여해왔다. 수년간 스크립트-푸(script-fu)를 통해 스프링 데이터 팀의 CI 시스템을 유지 관리해왔다. 『스프링 부트 2.0 2/e』(에이콘출판, 2019)과 시장에 출시된 최초의 스프링 부트 책을 비롯해 스프링 부트에 관한 여러 권의 책을 저술했다. 심지어 자신의 유튜브 채널인 Spring Boot Learning(http://bit.ly/3uSPLCz)을 개설해 스프링 부트에 대해 배우고 재미있게 실습할 수 있는 채널을 만들기도 했다. 스프링 팀에 합류하기 전에는 해리스(Harris Corp.)에서 선임 소프트웨어 엔지니어로 근무하며 미국 연방항공청(FAA, Federal Aviation Administration)과의 15억 달러 규모의 전국 상시 접속 네트워크 구축 계약을 비롯한 여러 프로젝트에 참여했다. 테스트에 몰두하는 스크립트 전문가인 그렉은 한밤중의 장애에도 익숙하다. 컴퓨터 공학 석사 학위를 취득했으며 아내와 자녀들과 함께 미국에서 살고 있다.
스프링 데이터 JPA와 스프링 웹 서비스의 수석 개발자다. 스프링 헤이티오스(HATEOAS, Hypermedia As The Engine Of Application State), 스프링 데이터 레스트(REST), 스프링 시큐리티(Security), 스프링 프레임워크(Framework), 스프링 포트폴리오의 다른 많은 부분에 기여해왔다. 수년간 스크립트-푸(script-fu)를 통해 스프링 데이터 팀의 CI 시스템을 유지 관리해왔다. 『스프링 부트 2.0 2/e』(에이콘출판, 2019)과 시장에 출시된 최초의 스프링 부트 책을 비롯해 스프링 부트에 관한 여러 권의 책을 저술했다. 심지어 자신의 유튜브 채널인 Spring Boot Learning(http://bit.ly/3uSPLCz)을 개설해 스프링 부트에 대해 배우고 재미있게 실습할 수 있는 채널을 만들기도 했다. 스프링 팀에 합류하기 전에는 해리스(Harris Corp.)에서 선임 소프트웨어 엔지니어로 근무하며 미국 연방항공청(FAA, Federal Aviation Administration)과의 15억 달러 규모의 전국 상시 접속 네트워크 구축 계약을 비롯한 여러 프로젝트에 참여했다. 테스트에 몰두하는 스크립트 전문가인 그렉은 한밤중의 장애에도 익숙하다. 컴퓨터 공학 석사 학위를 취득했으며 아내와 자녀들과 함께 미국에서 살고 있다.