실전 스프링 부트 REST API 개발 JPA + MySQL 개정판
오리지널판을 가지고 있다면 개정판을 다시 구매할 필요가 없으며 업데이트해서 사용하면 됩니다.
이 책은 스프링 부트를 이용하여 REST API 시스템을 개발하고자 하는 사람을 위한 것입니다.
이미지를 판매하는 간단한 디지털 컨텐츠 샵의 REST API를 구축해 봄으로써 Restful 서비스를 위한 스프링 부트의 실제 사용법을 배울 수 있습니다.
실전 프로젝트 개발에 필요한 Restful 서비스와 스프링 부트의 기본 개념, JPA, 스프링 시큐리티, JWT, 토큰 인증, 롬복 등을 함께 설명합니다.
18장에는 실제로 REST API 서버를 사용하는 SPA 클라이언트를 리액트로 구현하여 보여주지만 리액트에 대해서는 자세하게 다루지 않습니다.
프로그램 코드 위주로 책이 구성이 되어 있어서 스프링 부트를 처음 접하거나 자세한 개념적 설명을 원하는 분은 맞지 않을 수 있습니다.
이 책은 소스코드를 다운로드 받은 다음에 직접 코드를 실행해 보면서 코드 행간의 의미를 파악하는 것이 배움에 도움되겠습니다.
1장 : 스프링 부트 개발환경
___1. 자바 설치
___2. Spring Tools 4 설치
___3. UTF-8 설정
2장 : 프로젝트 생성
___1. 스프링 부트 프로젝트 생성
___2. 프로젝트 파일 구성
___3. 프로젝트 실행
___4. 스프링 MVC
___5. 스프링 MVC 구조
___6. 스프링 스타터 프로젝트 의존성
3장 : 롬복
___1. 롬복 설치
___2. 자바빈즈
___3. 롬복 애너테이션
___4. @Getter와 @Setter
___5. @ToString
___6. @EqualsAndHashCode
___7. @NoArgsConstructor
___8. @RequiredArgsConstructor
___9. @AllArgsConstructor
___10. @Data
___11. @Builder
___12. @Slf4j
4장 : REST
___1. REST 소개
___2. REST API 설계
___3. @RestController
___4. REST API 클라이언트
___5. REST API 문서화
5장 : JSON
___1. JSON 소개
___2. JSON 자료 타입
___3. JSON과 자바 클래스
6장 : jQuery Ajax 통신
___1. $.get()
___2. $.getJSON()
___3. $.post()
___4. $.ajax()
7장 : 컨트롤러 요청 매핑
___1. 요청 경로 매핑
___2. 경로 패턴 매핑
___3. Http 메서드 매핑
___4. Headers 매핑
___5. Content Type 매핑
___6. Accept 매핑
8장 : 컨트롤러 응답
___1. void 타입
___2. String 타입
___3. 자바빈즈 클래스 타입
___4. 컬렉션 List 타입
___5. 컬렉션 Map 타입
___6. ResponseEntity<Void> 타입
___7. ResponseEntity<String> 타입
___8. ResponseEntity<자바빈즈 클래스> 타입
___9. ResponseEntity<List> 타입
___10. ResponseEntity<Map> 타입
___11. ResponseEntity<byte[]> 타입
9장 : 컨트롤러 요청 처리
___1. 컨트롤러 메서드 매개변수
___2. 요청 처리
___3. 요청 처리 자바빈즈
___4. Date 타입 처리
___5. @JsonFormat 애너테이션
___6. 파일업로드 요청 처리
10장 : 입력 유효성 검증
___1. 입력값 검증
___2. 입력값 검증 결과
___3. 입력값 검증 규칙
___4. 중첩된 자바빈즈 입력값 검증
11장 : 메시지 처리
___1. 메시지 소스 정의
___2. 국제화
12장 : 의존성 주입
___1. 의존성 주입 설명
___2. 필드 기반 의존성 주입
___3. 생성자 기반 의존성 주입
___4. 세터 기반 의존성 주입
___5. 자동 연결
13장 : 데이터베이스 연동
___1. MySQL 설치
___2. MySQL Workbench
___3. 데이터 소스 설정
___4. CRUD 게시판 소개
___5. 스프링 JDBC
___6. JPA
___7. 마이바티스
14장 : JPA
___1. 소개
___2. JPA 설정
___3. JPA 애너테이션
___4. 스프링 데이터 JPA
___5. 쿼리메서드
___6. JPQL
___7. Querydsl
___8. 사용자 정의 인터페이스
15장 : JPA 활용
___1. CRUD 게시판
___2. 페이징 게시판
___3. 검색 게시판
___4. JPQL 활용
___5. Querydsl 활용
___6. 사용자 정의 인터페이스 활용
___7. 임베디드 타입
___8. 밸류 타입 컬렉션
16장. JPA 연관
___1. 엔티티 연관
___2. 일대다 단방향
___3. 다대일 단방향
___4. 다대일 양방향
___5. 일대일 단방향1
___6. 일대일 단방향2
___7. 일대일 양방향
___8. 다대다 단방향
___9. 다대다 양방향
___10. 다대다 연결 엔티티
17장 : REST API 서버 구현
___1. 스프링 부트 데이터 레스트
___2. @RepositoryRestController 사용
___3. 데이터 레스트 사용자 정의
___4. @RestController를 사용한 REST API 구현
___5. HATEOAS 적용
___6. 서버 애플리케이션 패키징
18장 : SPA 클라인언트
___1. 리액트 소개
___2. Visual Studio Code 설치
___3. NodeJS 설치
___4. yarn 설치
___5. 게시판 소개
___6. 프로젝트 생성
___7. REST API 서버 구성
___8. 라우터 정의
___9. 클라이언트 설정
___10. 게시글 등록
___11. 게시글 상세보기
___12. 게시글 목록
___13. 게시글 삭제
___14. 게시글 수정
19장 : 파일 업로드
___1. 파일업로드 설명
___2. 이미지 업로드
___3. 여러 개의 이미지 업로드
___4. 비동기 방식 업로드
20장 : AOP
___1. AOP 설명
___2. 포인트컷 표현식
___3. Before 어드바이스
___4. After Returning 어드바이스
___5. After Throwing 어드바이스
___6. After 어드바이스
___7. Around 어드바이스
___8. 메서드 정보 획득
21장 : 트랜잭션
___1. 트랙잭션 설명
___2. 트랙잭션 설정
___3. 트랜잭션 적용
22장 : 예외 처리
___1. 예외 처리
___2. 예외 상황
___3. try-catch문 예외 처리
___4. 예외 처리 애너테이션
___5. 사용자 정의 예외 처리
___6. 시스템 예외 처리
___7. 애너테이션 활용한 예외 처리
___8. 입력값 검증 결과 처리
___9. 입력값 검증 예외 처리
23장 : 인터셉터
___1. 인터셉터 설명
___2. 인터셉터 설정
___3. 인터셉터 활용
24장 : 스프링 시큐리티
___1. 스프링 시큐리티 소개
___2. 스프링 시큐리티 설정
___3. 접근 제한 설정
___4. 로그인 처리
___5. 접근 거부 처리
___6. 사용자 정의 접근 거부 처리자
___7. 사용자 정의 로그인 페이지
___8. 로그인 성공 처리
___9. 로그아웃 처리
___10. JDBC 이용한 인증/인가 처리
___11. 사용자 테이블 이용한 인증/인가 처리
___12. UserDetailsService 재정의
___13. 스프링 시큐리티 표현식
___14. 자동 로그인
___15. 스프링 시큐리티 애너테이션
25장 : JWT
___1. JWT 소개
___2. 암호화 / 복호화
___3. 스프링 시큐리티 토큰 인증
26장 : 실전 프로젝트
___1. 프로젝트 소개
___2. 프로젝트 생성
___3. 스프링 MVC
___4. 홈 화면
___5. 메시지 처리
___6. 데이터베이스 스키마 생성
___7. 데이터베이스 테이블 생성
___8. 데이터베이스 접근 설정
___9. 코드그룹 관리
___10. 코드 관리
___11. 회원 관리
___12. 최초 관리자 생성
___13. 액세스 토큰 생성
___14. 접근 제한 설정
___15. 회원 게시판
___16. 공지사항
___17. 상품 관리
___18. 코인 충전
___19. 상품 구매
___20. 공개 자료실
___21. 예외 처리
___22. 인터셉터를 활용한 접근 로깅 처리
___23. AOP를 활용한 서비스 성능 로깅 처리
___24. 서비스 운영 관리
___25. 애플리케이션 패키징
___26. 서버 실행
부록
___1. 업데이트
___2. 소스 다운로드
___3. Querydsl 개발 환경 설정
___4. 예제 프로젝트 불러오기
___5. JUnit 테스트 실행하기
___6. 세션 쿠키 삭제하기
부록 : 스프링 부트 시작하기
___1. 개요
___2. 스프링 부트 소개
___3. 시스템 요구 사항
___4. 스프링 부트 설치
___5. 첫 번째 스프링 부트 애플리케이션 개발
부록 : 스프링 부트 사용
___1. 개요
___2. 시스템 구축
___3. 코드 구조화
___4. 설정 클래스
___5. 자동 설정
___6. 스프링 빈과 의존성 주입
___7. @SpringBootApplication 애너테이션 사용
___8. 애플리케이션 실행
___9. 개발자 도구
___10. 프로덕션을 위한 애플리케이션 패키징
부록 : 스프링 부트 기능
___1. 개요
___2. SpringApplication
___3. 외부화된 설정
___4. 프로파일
___5. 로깅
___6. 웹 애플리케이션 개발
___7. 보안
___8. SQL 데이터베이스 작업
___9. 테스트
부록 : 스프링 부트 액추에이터
___1. 개요
___2. 프로덕션 준비 기능 활성화
___3. 엔드포인트
___4. HTTP를 통한 모니터링 및 관리
___5. 로거
___6. 메트릭
___7. 감사
___8. HTTP 추적
___9. 프로세스 모니터링