스프링 부트로 강력하고 확장 가능하며 안전한 REST API를 구축하기 위한 포괄적인 가이드인 '실전 스프링 부트 REST API 개발 (feat. Java, MyBatis, MySQL, Maven)'에 오신 것을 환영합니다. 이 책은 스프링 부트를 처음 사용하든, 지식을 심화하고자 하든 상관없이 효율적인 RESTful 웹 서비스를 만들고, 데이터베이스와 통합하고, 보안을 처리하고, 프로덕션용으로 배포하는 데 필요한 기술을 갖추게 해줍니다.
1장, '스프링 부트 개발 환경'에서는 스프링 부트 프로젝트를 만드는 데 필요한 필수 도구인 자바와 스프링 도구 4의 설치 과정을 안내하여 기초를 다집니다.
2장, '스프링 부트 프로젝트 만들기'에서는 첫 번째 스프링 부트 프로젝트를 만들고, 프로젝트 파일을 구성하고, 성공적으로 실행하는 단계를 다룹니다. 또한 이 장에서는 스프링 MVC와 일반적인 스프링 부트 애플리케이션의 구조를 소개합니다.
3장, '롬복'에서는 @Getter, @Setter, @Data, @Slf4j와 같은 롬복 어노테이션을 사용하여 코드를 간소화하여 자바 클래스에서 상용구 코드를 줄이는 방법을 보여 줍니다. 롬복이 어떻게 더 깔끔하고 가독성 높은 클래스를 만드는 데 도움이 되는지 배우게 됩니다.
4장, 'REST'에서는 REST API 설계 원칙을 소개하고 @RestController 어노테이션을 사용하여 REST 엔드포인트를 정의하는 방법을 보여 줍니다. 또한 API 문서화를 위해 Swagger와 같은 도구를 사용하는 방법도 배웁니다.
5장, 'JSON'에서는 JSON 데이터 유형과 @JsonProperty와 같은 어노테이션을 사용하여 JSON 데이터를 자바 객체에 매핑하는 방법을 다루면서 자바가 JSON과 함께 작동하는 방식을 설명합니다.
6장, 'jQuery Ajax 통신'에서는 $.get(), $.post(), $.ajax()와 같은 jQuery의 AJAX 메서드를 사용하여 REST API와 상호 작용하는 방법을 보여줍니다. 이 장에서는 원활한 클라이언트 측 경험을 구축하는 방법을 보여줍니다.
7장, '컨트롤러 요청 매핑'에서는 @RequestMapping, @GetMapping, @PostMapping과 같은 어노테이션을 사용하여 들어오는 HTTP 요청을 컨트롤러의 메서드에 매핑하는 방법을 설명합니다. 요청 경로와 패턴 매핑도 살펴봅니다.
8장, '컨트롤러 응답'에서는 응답 엔티티를 사용해 자바Bean 객체, 목록, 맵, 심지어 원시 바이트 데이터와 같은 다양한 응답 유형을 래핑하는 방법을 포함해 컨트롤러에서 데이터를 반환하는 다양한 방법을 다룹니다.
9장, '컨트롤러 요청 처리'에서는 다양한 유형의 컨트롤러 메서드 매개변수, 자바빈즈를 사용한 요청 처리, @JsonFormat과 같은 어노테이션으로 파일 업로드 및 날짜/시간 서식을 처리하는 방법을 안내합니다.
10장, '입력 유효성 검사'에서는 간단한 검사부터 복잡한 중첩된 자바빈 유효성 검사까지 입력 유효성 검사 메커니즘을 소개합니다. @NotNull 및 @Size와 같은 어노테이션을 사용하여 규칙을 적용하고 유효성 검사 결과를 관리하는 방법을 배웁니다.
11장, '메시지 처리'에서는 API가 여러 언어와 지역 설정을 지원하여 애플리케이션을 더욱 사용자 친화적으로 만들 수 있는 국제화 및 메시지 소스 정의를 다룹니다.
12장, '의존성 주입'에서는 스프링의 의존성 주입 메커니즘을 심층적으로 살펴보고 필드 기반, 생성자 기반, 설정자 기반 주입에 대해 설명하며 애플리케이션 구성을 간소화하는 방법을 소개합니다.
13장, '예외 처리'에서는 기본 try-catch 블록부터 @ExceptionHandler와 같은 어노테이션을 사용한 사용자 정의 예외 처리까지 스프링 부트 애플리케이션에서 예외를 처리하는 방법을 설명합니다.
14장, '인터셉터'에서는 요청이 컨트롤러에 도달하기 전에 HTTP 헤더를 로깅하거나 수정하는 등 애플리케이션에서 요청을 전처리하거나 후처리하기 위해 인터셉터를 사용하는 방법을 살펴봅니다.
15장, '데이터베이스 연결'에서는 데이터베이스 액세스를 위한 설치, 구성 및 스프링 JDBC, JPA, MyBatis의 사용을 다루는 MySQL과의 데이터베이스 통합에 대해 소개합니다.
16장, '마이바티스'에서는 매퍼 구성, 동적 SQL 사용, 엔티티 간의 관계 관리 방법을 설명하여 기존 JPA에 비해 더 많은 유연성을 제공하는 마이바티스를 심층적으로 살펴봅니다.
17장, 'REST API 서버 구현하기'에서는 @RepositoryRestController를 사용하여 RESTful 서비스를 구현하고, 엔드포인트를 사용자 정의하고, HATEOAS(애플리케이션 상태 엔진으로서의 하이퍼미디어)를 적용하는 방법을 보여줍니다.
18장, 'SPA 클라이언트'에서는 Vue.js로 SPA(단일 페이지 애플리케이션)를 빌드하고, 스프링 부트 REST API와 상호 작용하도록 구성하고, Vuex를 사용하여 사후 관리 및 상태 처리와 같은 기능을 구현하는 방법을 소개합니다.
19장, '파일 업로드'에서는 더 나은 사용자 경험을 위한 이미지 업로드, 다중 파일 업로드, 비동기 파일 업로드 처리 등 파일 업로드 기능을 구현하는 방법을 보여줍니다.
20장, 'AOP'에서는 로깅, 트랜잭션 관리 및 보안과 같은 교차적인 문제를 @Before 및 @Around와 같은 어노테이션을 통해 적용하는 방법을 설명하는 관점 지향 프로그래밍(AOP)을 소개합니다.
21장, '트랜잭션'에서는 애플리케이션에서 트랜잭션을 관리하여 데이터베이스 작업에서 데이터 무결성과 일관성을 보장하는 방법을 설명합니다.
22장, '스프링 시큐리티'에서는 스프링 시큐리티로 REST API를 보호하는 방법을 심층적으로 소개합니다. 사용자 지정 로그인 페이지 및 JDBC 기반 인증과 같은 고급 주제와 함께 인증, 권한 부여 및 사용자 세션을 구성하는 방법을 배우게 됩니다.
23장, 'JWT'에서는 토큰 생성, 유효성 검사 및 API 엔드포인트를 보호하기 위한 보안 필터 생성을 다루면서 JSON 웹 토큰(JWT)으로 REST API를 보호하는 방법에 대해 설명합니다.
24장, '실전 REST API 프로젝트'에서는 전체 프로젝트 예제와 함께 모든 내용을 정리합니다. CRUD 작업, 예외 처리, 인증을 포함하여 완전한 REST API를 만드는 방법을 배우게 됩니다.
이 책을 마치면 강력한 RESTful 서비스를 빌드, 보안 및 배포할 수 있는 스프링 부트 REST API 개발에 대한 깊은 이해를 갖게 될 것입니다. 실제 프로젝트를 해결하고 업계 모범 사례를 구현하며 확장 가능한 애플리케이션을 구축할 수 있는 지식을 갖추게 될 것입니다.
이 책은 종이책 형태가 아닌 EPUB 전자책으로 제작되어, 전통적인 페이지 레이아웃과는 다른, 웹 기반의 흐름을 취하고 있습니다. 따라서 종이책과 같은 구성에 익숙한 독자라면 다소 이질감을 느낄 수 있습니다.