출간 도서 소개

22. RESTful API 서버 구현

남가람북스 2023. 11. 4. 11:52

[부제]  스프링 부트와 JPA를 이용하는 API 서버 만들기

저자: 구멍가게 코딩단
출판사: 남가람북스
발행일: 2024-07-02
ISBN: 979-11-89184-12-4
가격: 32000
페이지: 424
판형: 182*232*18

[저자 소개]

- 구멍가게 코딩단 -
프로그래밍을 좋아하는 10년 차 이상의 개발자, 강사들의 비공개 모임. 강의와 개발 등을 하면서 얻은 지식을 정리하기 위해서 집필 활동을 하고 있다. 네이버 카페(https://cafe.naver.com/gugucoding)에서 독자들과 소통하고 있다. 최근에는 기업체 교육활동을 위주로 관련 지식을 전파하고 있다. 저서로는 <코드로 배우는 리액트>, <코드로 배우는 스프링 웹 프로젝트[개정판]>, <코드로 배우는 스프링 부트 웹 프로젝트> 등이 있다.

[책 소개]

이 책은 최근에 유행하는 다양한 프런트 엔드 기술을 서포트하기 위해서 만들었습니다. React나 Vue.js, Android, iOS와 같이 별도의 애플리케이션을 제작하기 위해서는 데이터를 제공하는 API 서버의 존재는 필수적이고 이를 어떻게 만들어야 하는지에 대한 고민의 결과입니다. 
이 책에서는 가장 흔하게 사용되는 RESTful한 서비스를 만들고 JWT를 활용해서 비정상적인 사용자의 접근을 차단하고 권한을 부여해 주는 방법에 대해서 알아봅니다. 작성하는 예제 코드는 Spring Data JPA를 이용해서 최소한의 코드로 데이터베이스 개발을 완료합니다.
이 책에서는 실제 서비스와 동일한 요청과 응답 결과를 처리할 수 있고, 확장 가능한 API 서버를 만들기 위한 모델을 만들고 이를 위해서 Spring Boot, Spring Data JPA, Spring Security를 활용합니다. 

Spring Data JPA는 다음과 같은 방식으로 활용합니다. 
* 단순 CRUD는 JpaRepository를 활용한다. 리포지토리에서 최대한 DTO로 처리한다. 
* 목록 데이터는 Querydsl로만 설계해서 나중에 검색 조건을 처리하기 쉽도록 설계한다. Projections를 이용해서 DTO로 추 출한다. 

Spring Boot를 이용해서는 다음과 같은 내용을 다룹니다. 
* 각 기능은 분리가 가능한 구조로 설계되어야 한다. 
* @RestController에서는 정상적인 응답을 그리고, 모든 예외 사항은 @RestControllerAdvice를 통해서 처리한다. 

Spring Security는 다음과 같은 기능을 구현합니다. 
* JWT의 Access Token과 Refresh Token을 처리할 수 있어야 한다. 
* JWT의 사용자 정보와 Security Context는 같이 활용될 수 있어야 한다. 

[이 책의 대상 독자]
* Java 기반의 API 서버가 필요한 개발자와 조직 
* 프런트 엔드와 백 엔드를 분리해서 개발을 원하는 개발자 
* JWT를 학습하고자 하는 서버 사이드 개발자 
* Spring Data JPA를 학습하고자 하는 개발자

[소스코드 확인]
책의 예제에서 사용하는 코드는 https://zk202308a.github.io/newbootbook2024/를 통해서 확인할 수 있습니다. 

[기타 질문 및 답변]
이 책으로 공부하다가 이해하기 어려운 부분이나 궁금한 사항이 생기면 구멍가게 코딩단 카페에서 질문하여 해결하기 바랍니다.

카페 주소: http://cafe.naver.com/gugucoding

[출판사 리뷰]

개발 현장이나 교육 현장에서 API 서버를 구현하는 일은 특별한 일이 아닙니다. API 서버를 이용해야 하는 상황은 점차 늘고 있는데 바로 사용할 수 있는 단순한 라이브러리나 프로그램들은 원하는 기능을 제공하지 않는 경우가 대부분입니다. 
이 책은 테스트 코드를 이용해서 동작 여부를 확인하고 서비스 계층과 컨트롤러는 Postman을 이용해서 확인하는 방식으로 개발하는데 이 과정에서 예외 처리에 대해서 고민하고 이를 @RestControllerAdvice를 이용해서 처리합니다.

이 책은 총 3개의 PART로 학습 내용이 구성됩니다. 
PART 1(Chapter 1~4)
* MariaDB와 Spring Boot 개발 환경의 설정 
* Todo 예제를 통한 Spring Data JPA 개발
* Postman을 이용한 요청/응답 확인 


PART 2(Chapter 5~6) 
* Spring Security를 이용해서 인증 처리 구현 
* Refresh Token을 이용한 자동 토큰 갱신 처리를 위한 Node/Vite를 이용한 화면 구성 

PART 3(Chapter 7~8) 
* API 서버의 활용 
* @ElementCollection과 @ManyToOne 연관 관계 처리 
* 장바구니와 상품, 장바구니 아이템의 처리 

[목차]

이 책을 내며
들어가며 

PART 1. API 서버와 REST 

Chapter 01 API 서버와 웹 MVC 
1.1 서버(server)의 역할 
1.2 과거의 웹 프로그래밍과 API 서버 
1.3 REST 방식과 JSON 
1.4 REST 방식의 API 설계 

Chapter 02 REST 방식 연습하기 
2.1 예제 프로젝트의 생성 
2.2 의존성 주입(Dependency Injection) 
2.3 REST를 위한 주요 어노테이션 
2.4 REST의 테스트 

Chapter 03 Spring Data JPA 
3.1 MariaDB 설치 
3.2 Spring Data JPA 프로젝트의 생성 
3.3 Spring Data JPA 소개 

Chapter 04 서비스 계층과 컨트롤러 계층 
4.1 서비스 계층의 설계 
4.2 컨트롤러 계층의 설계 
4.3 컨트롤러의 목록 처리 

PART 2. JWT 인증

Chapter 05 시큐리티(Security) 처리와 JWT 
5.1 Ajax와 스프링 시큐리티 
5.2 사용자 엔티티 준비 
5.3 API 서버의 시큐리티 
5.4 사용자 정보를 이용한 토큰 발행 
5.5 Access Token을 이용한 접근 
5.6 JWTCheckFilter 작성 
5.7 Refresh Token의 활용 
5.8 Ajax와 CORS 

Chapter 06 Axios와 API 서버 호출 
6.1 프런트 엔드 프로젝트 생성 
6.2 페이지/JS 파일 추가 
6.3 로그인 처리와 보관 
6.4 Access Token 전송 
6.5 Refresh Token을 이용한 토큰 갱신 

PART 3. 연관 관계 실습

Chapter 07 파일 업로드와 상품 엔티티 
7.1 파일 업로드를 위한 설정 
7.2 @ElementCollection 
7.3 DTO를 이용한 처리 
7.4 상품 관련 서비스와 예외 설계
7.5 상품 컨트롤러의 개발 

Chapter 08 구현을 통해서 알아보는 연관 관계 실습 
8.1 다대일(Many To One) 연관 관계 
8.2 리포지토리와 테스트 
8.3 상품목록과 리뷰의 개수 
8.4 리뷰의 서비스 계층 
8.5 리뷰의 컨트롤러 처리 
8.6 상품과 장바구니 
8.7 DTO와 서비스 계층 
8.8 컨트롤러의 구현 

찾아보기