책소개
이 책은 스프링 부트를 이용하여 웹 시스템을 개발하고자 하는 사람을 위한 것입니다.
이미지를 판매하는 간단한 디지털 컨텐츠 샵을 구축해 봄으로써 스프링 부트의 실제 사용법을 배울 수 있습니다.
실전 프로젝트 개발에 필요한 스프링 부트의 기본 개념과 Mustache, 스프링 JDBC, 스프링 시큐리티, 롬복 등을 함께 설명합니다.
Mustache는 스프링 부트에서 기본적으로 제공하는 View관련 템플릿 중의 하나입니다.
다른 템플릿에 비해 단순하며 로직을 사용할 수가 없어서 뷰의 역할을 서버로부터 확실하게 분리할 수 있는 장점이 있습니다.
이런 장점이 있는 반면에 뷰에서 처리할 수도 있는 로직을 모두 서버에서 구현을 해줘야 하는 번거로움도 있습니다.
하지만, 최근의 개발 트렌드를 보면 하나의 서버에 다양한 뷰를 사용하는 경향이 강해서 간단한 뷰 구현이 차후 개발의 확장성면에서 유리할 수 있습니다.
스프링 JDBC는 스프링에서 기본으로 제공하는 데이터베이스에 접근하여 처리하는 기능을 제공하는 모듈입니다.
JPA, MyBatis 등 다른 연동 모듈에 비해 코딩하는데 번거로움이 있을 수 있지만 성능이 좋습니다.
그리고, 표준 SQL 기반으로 하고 있어서 데이터베이스 처리 관련 기능에 제한이 없습니다.
이 책은 EPUB 형식의 전자책이라서 종이책의 모습을 기대한 독자라면 페이지 모습이 웹 페이지 형태라 낯설 수 있습니다.
일반적인 개념 설명 위주의 구성이 아닌 스프링 부트의 실제 개발에 중점을 두고 프로그램 코드 위주로 책이 구성이 되어 있습니다.
소스코드를 다운로드 받은 다음에 직접 코드를 실행해 보면 스프링 부트 웹 개발에 대한 개념을 좀 더 구체적으로 이해할 수 있을 것입니다.
본서는 온노트에서 출간된 실전 스프링 부트 웹 개발 시리즈 중의 하나입니다.
- [ 실전 스프링 부트 웹 개발 JSP + MyBatis + MySQL ]
- [ 실전 스프링 부트 웹 개발 Thymeleaf + JPA + MySQL ]
- [ 실전 스프링 부트 웹 개발 Mustache + JDBC + MySQL ]
목차
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장 : 컨트롤러 요청 매핑
___1. 요청 경로 매핑
___2. 경로 패턴 매핑
___3. Http 메서드 매핑
___4. Params 매핑
___5. Headers 매핑
___6. Content Type 매핑
___7. Accept 매핑
5장 : 컨트롤러 응답
___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[]> 타입
___12. 컨트롤러 메서드 반환 값
6장 : 컨트롤러 요청 처리
___1. 컨트롤러 메서드 파라미터
___2. 요청 처리
___3. 요청 데이터 처리 애너테이션
___4. 요청 처리 자바빈즈
___5. Date 타입 처리
___6. 타입 변환
___7. 폼 요청 처리
___8. 파일업로드 폼 요청 처리
___9. Ajax 방식 요청 처리
___10. 파일업로드 Ajax 방식 요청 처리
7장 : 데이터 전달자 모델
___1. 모델 객체
___2. 모델을 통한 데이터 전달
___3. @ModelAttribute 애너테이션
___4. RedirectAttributes 타입
8장 : 머스테치
___1. 머스테치 소개
___2. 변수
___3. 섹션
___4. 람다식
___5. 반전 섹션
___6. 주석
___7. 레이아웃
___8. 구분 기호 설정
___9. 스프링 부트 프로퍼티
9장 : 스프링 폼
___1. 폼 요소
___2. 텍스트 필드 요소
___3. 패스워드 필드 요소
___4. 텍스트 영역 요소
___5. 여러 개의 체크박스 요소
___6. 체크박스 요소
___7. 여러 개의 라디오 버튼 요소
___8. 라디오 버튼 요소
___9. 셀렉트 박스 요소
___10. 숨겨진 필드 요소
___11. 입력값 검증 에러
10장 : 입력 유효성 검증
___1. 입력값 검증
___2. 입력값 검증 결과
___3. 입력값 검증 규칙
___4. 중첩된 자바빈즈 입력값 검증
___5. 스프링 Validator 인터페이스 사용
11장 : 메시지 처리
___1. 메시지 소스 정의
___2. 메시지 소스 사용
___3. 국제화
12장 : 의존성 주입
___1. 의존성 주입 설명
___2. 필드 기반 의존성 주입
___3. 생성자 기반 의존성 주입
___4. 세터 기반 의존성 주입
___5. 자동 연결
13장 : 세션과 쿠키
___1. 로그인 처리
___2. 로그아웃 처리
___3. 쇼핑 카트 구현
___4. @SessionAttribute
___5. @SessionAttributes
___6. 쿠키 활용
14장 : 예외 처리
___1. 예외 처리
___2. 예외 상황
___3. 예외 처리 애너테이션
___4. 예외 정보 출력
___5. 404 에러 페이지 처리
___6. 입력값 검증 예외 처리
15장 : 인터셉터
___1. 인터셉터 설명
___2. 인터셉터 설정
___3. 인터셉터 활용 - 세션 처리
___4. 인터셉터 활용 - 접근 로그 저장
___5. 여러 개의 인터셉터 지정
16장 : 데이터베이스 연동
___1. MySQL 설치
___2. MySQL Workbench
___3. 데이터 소스 설정
___4. CRUD 게시판 소개
___5. 스프링 JDBC
___6. JPA
___7. 마이바티스
17장 : 스프링 JDBC
___1. 스프링 JDBC 개요
___2. JdbcTemplate 클래스
___3. 데이터 조회
___4. 데이터 변경
___5. RowMapper 인터페이스 구현
___6. BeanPropertyRowMapper 활용
___7. ResultSetExtractor 인터페이스 구현
___8. RowCallbackHandler 인터페이스 구현
18장 : 게시판 프로젝트
___1. 프로젝트 소개
___2. 프로젝트 생성
___3. 게시글 등록 화면
___4. 데이터베이스 연동
___5. 게시글 등록
___6. 입력값 유효성 검증
___7. 게시글 목록 화면
___8. 게시글 상세보기 화면
___9. 게시글 수정 화면
___10. 게시글 수정
___11. 게시글 삭제
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. 접근 제한 설정
___4. 로그인 처리
___5. 접근 거부 처리
___6. 사용자 정의 접근 거부 처리자
___7. 사용자 정의 로그인 페이지
___8. 로그인 성공 처리
___9. 로그아웃 처리
___10. JDBC 이용한 인증/인가 처리
___11. 사용자 테이블 이용한 인증/인가 처리
___12. UserDetailsService 재정의
___13. 스프링 시큐리티 표현식
___14. 자동 로그인
___15. 스프링 시큐리티 애너테이션
23장 : 실전 프로젝트
___1. 프로젝트 소개
___2. 프로젝트 생성
___3. 스프링 MVC
___4. 홈 화면
___5. 메시지 처리
___6. 머스테치 레이아웃
___7. 데이터베이스 스키마 생성
___8. 데이터베이스 테이블 생성
___9. 데이터베이스 접근 설정
___10. 코드그룹 관리
___11. 입력값 유효성 검증
___12. 코드 관리
___13. 최초 관리자 생성
___14. 회원 가입
___15. 로그인
___16. 로그아웃
___17. 회원 관리
___18. 접근 제한 설정
___19. 회원 게시판
___20. 페이징 처리
___21. 검색 기능 추가
___22. 공지사항
___23. 상품 관리
___24. 코인 충전
___25. 상품 구매
___26. 공개 자료실
___27. 예외 처리
___28. 로그인 로깅 처리
___29. 인터셉터를 활용한 접근 로깅 처리
___30. AOP를 활용한 서비스 성능 로깅 처리
___31. 서비스 운영 관리
___32. 애플리케이션 패키징
___33. 서버 실행
부록
___1. 업데이트
___2. 소스 다운로드
___3. JDK 개발 환경 설정
___4. 예제 프로젝트 불러오기
___5. 세션 쿠키 삭제하기
부록 : 스프링 부트 시작하기
___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. 프로세스 모니터링