책소개
이 책은 스프링 부트를 이용하여 REST API 시스템을 개발하고자 하는 사람을 위한 것이다.<br>이미지를 판매하는 간단한 디지털 컨텐츠 샵의 REST API를 구축해 봄으로써 Restful 서비스를 위한 스프링 부트의 실제 사용법을 배울 수 있다.<br>실전 프로젝트 개발에 필요한 Restful 서비스와 스프링 부트의 기본 개념, 마이바티스, 스프링 시큐리티, JWT, 토큰 인증 등을 함께 설명한다.
목차
1장 : 스프링 부트 개발환경<br>___1. 자바 설치<br>___2. Spring Tools 4 설치<br>___3. UTF-8 설정<br>2장 : 프로젝트 생성<br>___1. 스프링 부트 프로젝트 생성<br>___2. 프로젝트 파일 구성<br>___3. 프로젝트 실행<br>___4. 스프링 MVC<br>___5. 스프링 MVC 구조<br>___6. 스프링 스타터 프로젝트 의존성<br>3장 : REST<br>___1. REST 소개<br>___2. REST API 설계<br>___3. @RestController<br>___4. REST API 클라이언트<br>___5. REST API 문서화<br>4장 : JSON<br>___1. JSON 소개<br>___2. JSON 자료 타입<br>___3. JSON과 자바 클래스<br>5장 : jQuery Ajax 통신<br>___1. $.get()<br>___2. $.getJSON()<br>___3. $.post()<br>___4. $.ajax()<br>6장 : 컨트롤러 요청 매핑<br>___1. 요청 경로 매핑<br>___2. 경로 패턴 매핑<br>___3. Http 메서드 매핑<br>___4. Headers 매핑<br>___5. Content Type 매핑<br>___6. Accept 매핑<br>7장 : 컨트롤러 응답<br>___1. void 타입<br>___2. String 타입<br>___3. 자바빈즈 클래스 타입<br>___4. 컬렉션 List 타입<br>___5. 컬렉션 Map 타입<br>___6. ResponseEntity<Void> 타입<br>___7. ResponseEntity<String> 타입<br>___8. ResponseEntity<자바빈즈 클래스> 타입<br>___9. ResponseEntity<List> 타입<br>___10. ResponseEntity<Map> 타입<br>___11. ResponseEntity<byte[]> 타입<br>8장 : 컨트롤러 요청 처리<br>___1. 컨트롤러 메서드 매개변수<br>___2. 요청 처리<br>___3. 요청 처리 자바빈즈<br>___4. Date 타입 처리<br>___5. @JsonFormat 애너테이션<br>___6. 파일업로드 요청 처리<br>9장 : 입력 유효성 검증<br>___1. 입력값 검증<br>___2. 입력값 검증 결과<br>___3. 입력값 검증 규칙<br>___4. 중첩된 자바빈즈 입력값 검증<br>10장 : 메시지 처리<br>___1. 메시지 소스 정의<br>___2. 국제화<br>11장 : 데이터베이스 연동<br>___1. MySQL 설치<br>___2. MySQL Workbench<br>___3. 데이터 소스 설정<br>___4. CRUD 게시판 소개<br>___5. 스프링 JDBC<br>___6. JPA<br>12장 : 마이바티스<br>___1. 마이바티스 소개<br>___2. Mapper 인터페이스<br>___3. 별칭 적용<br>___4. _로 구분된 컬럼명 자동 매핑<br>___5. 기본키 취득<br>___6. 일대다 관계 테이블 매핑<br>___7. 동적 SQL<br>13장 : 파일 업로드<br>___1. 파일업로드 설명<br>___2. 이미지 업로드<br>___3. 여러 개의 이미지 업로드<br>___4. 비동기 방식 업로드<br>14장 : AOP<br>___1. AOP 설명<br>___2. 포인트컷 표현식<br>___3. Before 어드바이스<br>___4. After Returning 어드바이스<br>___5. After Throwing 어드바이스<br>___6. After 어드바이스<br>___7. Around 어드바이스<br>___8. 메서드 정보 획득<br>15장 : 트랜잭션<br>___1. 트랙잭션 설명<br>___2. 트랙잭션 설정<br>___3. 트랜잭션 적용<br>16장 : 예외 처리<br>___1. 예외 처리<br>___2. 예외 상황<br>___3. try-catch문 예외 처리<br>___4. 예외 처리 애너테이션<br>___5. 사용자 정의 예외 처리<br>___6. 시스템 예외 처리<br>___7. 애너테이션을 활용한 예외 처리<br>___8. 입력값 검증 결과 처리<br>___9. 입력값 검증 예외 처리<br>17장 : 인터셉터<br>___1. 인터셉터 설명<br>___2. 인터셉터 설정<br>___3. 인터셉터 활용<br>18장 : 스프링 시큐리티<br>___1. 스프링 시큐리티 소개<br>___2. 스프링 시큐리티 설정<br>___3. 접근 제한 설정<br>___4. 로그인 처리<br>___5. 접근 거부 처리<br>___6. 사용자 정의 접근 거부 처리자<br>___7. 사용자 정의 로그인 페이지<br>___8. 로그인 성공 처리<br>___9. 로그아웃 처리<br>___10. JDBC 이용한 인증/인가 처리<br>___11. 사용자 테이블 이용한 인증/인가 처리<br>___12. UserDetailsService 재정의<br>___13. 스프링 시큐리티 표현식<br>___14. 스프링 시큐리티 애너테이션<br>19장 : JWT<br>___1. JWT 소개<br>___2. 암호화 / 복호화<br>___3. 스프링 시큐리티 토큰 인증<br>20장 : 실전 프로젝트<br>___1. 프로젝트 소개<br>___2. 프로젝트 생성<br>___3. 프로젝트 설정<br>___4. 홈 화면<br>___5. 메시지 처리<br>___6. 데이터베이스 스키마 생성<br>___7. 데이터베이스 테이블 생성<br>___8. 데이터베이스 접근 설정<br>___9. 코드그룹 관리<br>___10. 코드 관리<br>___11. 회원 관리<br>___12. 최초 관리자 생성<br>___13. 액세스 토큰 생성<br>___14. 접근 제한 설정<br>___15. 회원 게시판<br>___16. 페이징 처리<br>___17. 검색 기능 추가<br>___18. 공지사항<br>___19. 상품 관리<br>___20. 코인 충전<br>___21. 상품 구매<br>___22. 공개 자료실<br>___23. 예외 처리<br>___24. 인터셉터를 활용한 접근 로깅 처리<br>___25. AOP를 활용한 서비스 성능 로깅 처리<br>부록<br>___1. 업데이트<br>___2. 소스 다운로드<br>___3. ResourceBundle Editor 플러그인 설치