Description
입문자의 눈높이에 맞춰 차근차근 따라 하면서 배우는 스프링 부트 입문서!
《스프링 부트 핵심 가이드》는 스프링 부트 기반의 애플리케이션을 개발할 때 필요한 기초적인 내용들을 소개하고, 스프링에서 제공하는 각종 라이브러리의 기능들을 이해할 수 있게 동작 원리를 상세히 설명합니다. 또한 ‘스프링 부트’다운 코드를 작성하는 방법에 초점을 맞춰 스프링 부트에서 제공하는 편의 기능들을 최대한 활용하고, 스프링 부트 기반의 애플리케이션을 어떻게 설계하고 구현하는지 안내합니다.

★ 이 책에서 다루는 내용 ★

◎ 스프링 부트 기초
◎ REST API의 작성 방법
◎ Spring Data JPA
◎ 연관관계 매핑
◎ 테스트 코드 작성
◎ 테스트 커버리지
◎ 유효성 검사
◎ 예외 처리
◎ 액추에이터
◎ REST 통신
◎ 서비스의 인증과 인가

저자

장정우

저자:장정우
삼성SDS에서인프라엔지니어및백엔드개발자로근무했으며,현재는위대한상상에서결제시스템개발업무를담당하고있습니다.그리고유튜브〈어라운드허브스튜디오〉를운영하면서프로그래밍정보를공유하고있습니다.

목차

▣01장:스프링부트란?
1.1스프링프레임워크
__1.1.1제어역전(IoC)
__1.1.2의존성주입(DI)
__1.1.3관점지향프로그래밍(AOP)
__1.1.4스프링프레임워크의다양한모듈
1.2스프링프레임워크vs.스프링부트
__1.2.1의존성관리
__1.2.2자동설정
__1.2.3내장WAS
__1.2.4모니터링

▣02장:개발에앞서알면좋은기초지식
2.1서버간통신
2.2스프링부트의동작방식
2.3레이어드아키텍처
2.4디자인패턴
__2.4.1디자인패턴의종류
__2.4.2생성패턴
__2.4.3구조패턴
__2.4.4행위패턴
2.5RESTAPI
__2.5.1REST란?
__2.5.2RESTAPI란?
__2.5.3REST의특징
__2.5.4REST의URI설계규칙

▣03장:개발환경구성
3.1자바JDK설치
3.2인텔리제이IDEA설치

▣04장:스프링부트애플리케이션개발하기
4.1프로젝트생성
__4.1.1인텔리제이IDEA에서프로젝트생성하기
__4.1.2스프링공식사이트에서프로젝트생성하기
4.2pom.xml(ProjectObjectModel)살펴보기
__4.2.1빌드관리도구
__4.2.2메이븐
__4.3HelloWorld출력하기
__4.3.1컨트롤러작성하기
__4.3.2애플리케이션실행하기
__4.3.3웹브라우저를통한동작테스트
__4.3.4TalendAPITester를통한동작테스트

▣05장:API를작성하는다양한방법
5.1프로젝트설정
5.2GETAPI만들기
__5.2.1@RequestMapping으로구현하기
__5.2.2매개변수가없는GET메서드구현
__5.2.3@PathVariable을활용한GET메서드구현
__5.2.4@RequestParam을활용한GET메서드구현
__5.2.5DTO객체를활용한GET메서드구현
5.3POSTAPI만들기
__5.3.1@RequestMapping으로구현하기
__5.3.2@RequestBody를활용한POST메서드구현
5.4PUTAPI만들기
__5.4.1@RequestBody를활용한PUT메서드구현
__5.4.2ResponseEntity를활용한PUT메서드구현
5.5DELETEAPI만들기
__5.5.1@PathVariable과@RequestParam을활용한DELETE메서드구현
5.6[한걸음더]RESTAPI명세를문서화하는방법-Swagger
5.7[한걸음더]로깅라이브러리-Logback
__5.7.1Logback설정
__5.7.2Logback적용하기
5.8정리

▣06장:데이터베이스연동
6.1마리아DB설치
6.2ORM
6.3JPA
6.4하이버네이트
__6.4.1SpringDataJPA
6.5영속성컨텍스트
__6.5.1엔티티매니저
__6.5.2엔티티의생명주기
6.6데이터베이스연동
__6.6.1프로젝트생성
6.7엔티티설계
__6.7.1엔티티관련기본어노테이션
6.8리포지토리인터페이스설계
__6.8.1리포지토리인터페이스생성
__6.8.2리포지토리메서드의생성규칙
6.9DAO설계
__6.9.1DAO클래스생성
6.10DAO연동을위한컨트롤러와서비스설계
__6.10.1서비스클래스만들기
__6.10.2컨트롤러생성
__6.10.3SwaggerAPI를통한동작확인
6.11[한걸음더]반복되는코드의작성을생략하는방법-롬복
__6.11.1롬복설치
__6.11.2롬복적용
__6.11.3롬복의주요어노테이션

▣07장:테스트코드작성하기
7.1테스트코드를작성하는이유
7.2단위테스트와통합테스트
__7.2.1단위테스트의특징
__7.2.2통합테스트의특징
7.3테스트코드를작성하는방법
__7.3.1Given-When-Then패턴
__7.3.2좋은테스트를작성하는5가지속성(F.I.R.S.T)
7.4JUnit을활용한테스트코드작성
__7.4.1JUnit의세부모듈
__7.4.2스프링부트프로젝트생성
__7.4.3스프링부트의테스트설정
__7.4.4JUnit의생명주기
__7.4.5스프링부트에서의테스트
__7.4.6컨트롤러객체의테스트
__7.4.7서비스객체의테스트
__7.4.8리포지토리객체의테스트
7.5JaCoCo를활용한테스트커버리지확인
__7.5.1JaCoCo플러그인설정
__7.5.2JaCoCo테스트커버리지확인
7.6테스트주도개발(TDD)
__7.6.1테스트주도개발의개발주기
__7.6.2테스트주도개발의효과
7.7정리

▣08장:SpringDataJPA활용
8.1프로젝트생성
8.2JPQL
8.3쿼리메서드살펴보기
__8.3.1쿼리메서드의생성
__8.3.2쿼리메서드의주제키워드
__8.3.3쿼리메서드의조건자키워드
8.4정렬과페이징처리
__8.4.1정렬처리하기
__8.4.2페이징처리
8.5@Query어노테이션사용하기
8.6QueryDSL적용하기
__8.6.1QueryDSL이란?
__8.6.2QueryDSL의장점
__8.6.3QueryDSL을사용하기위한프로젝트설정
__8.6.4기본적인QueryDSL사용하기
__8.6.5QuerydslPredicateExecutor,QuerydslRepositorySupport활용
8.7[한걸음더]JPAAuditing적용
__8.7.1JPAAuditing기능활성화
__8.7.2BaseEntity만들기
8.8정리

▣09장:연관관계매핑
9.1연관관계매핑종류와방향
9.2프로젝트생성
9.3일대일매핑
__9.3.1일대일단방향매핑
__9.3.2일대일양방향매핑
9.4다대일,일대다매핑
__9.4.1다대일단방향매핑
__9.4.2다대일양방향매핑
__9.4.3일대다단방향매핑
9.5다대다매핑
__9.5.1다대다단방향매핑
__9.5.2다대다양방향매핑
9.6영속성전이
__9.6.1영속성전이적용
__9.6.2고아객체
9.7정리

▣10장:유효성검사와예외처리
10.1일반적인애플리케이션유효성검사의문제점
10.2HibernateValidator
10.3스프링부트에서의유효성검사
__10.3.1프로젝트생성
__10.3.2스프링부트용유효성검사관련의존성추가
__10.3.3스프링부트의유효성검사
__10.3.4@Validated활용
__10.3.5커스텀Validation추가
10.4예외처리
__10.4.1예외와에러
__10.4.2예외클래스
__10.4.3예외처리방법
__10.4.4스프링부트의예외처리방식
__10.4.5커스텀예외
__10.4.6커스텀예외클래스생성하기

▣11장:액추에이터활용하기
11.1프로젝트생성및액추에이터종속성추가
11.2엔드포인트
11.3액추에이터기능살펴보기
__11.3.1애플리케이션기본정보(/info)
__11.3.2애플리케이션상태(/health)
__11.3.3빈정보확인(/beans)
__11.3.4스프링부트의자동설정내역확인(/conditions)
__11.3.5스프링환경변수정보(/env)
__11.3.6로깅레벨확인(/loggers)
11.4액추에이터에커스텀기능만들기
__11.4.1정보제공인터페이스의구현체생성
__11.4.2커스텀엔드포인트생성

▣12장:서버간통신
12.1RestTemplate이란?
__12.1.1RestTemplate의동작원리
__12.1.2RestTemplate의대표적인메서드
12.2RestTemplate사용하기
__12.2.1서버프로젝트생성하기
__12.2.2RestTemplate구현하기
__12.2.3RestTemplate커스텀설정
12.3WebClient란?
__12.3.1WebClient구성
12.4WebClient사용하기
__12.4.1WebClient구현
12.5정리

▣13장:서비스의인증과권한부여
13.1보안용어이해
__13.1.1인증
__13.1.2인가
__13.1.3접근주체
13.2스프링시큐리티
13.3스프링시큐리티의동작구조
13.4JWT
__13.4.1JWT의구조
__13.4.2JWT디버거사용하기
13.5스프링시큐리티와JWT적용
__13.5.1UserDetails와UserDetailsService구현
__13.5.2JwtTokenProvider구현
__13.5.3JwtAuthenticationFilter구현
__13.5.4SecurityConfiguration구현
__13.5.5커스텀AccessDeniedHandler,AuthenticationEntryPoint구현
__13.5.6회원가입과로그인구현
__13.5.7스프링시큐리티테스트
13.6정리

출판사 서평

★이책에서다루는내용★

◎스프링부트기초
◎RESTAPI의작성방법
◎SpringDataJPA
◎연관관계매핑
◎테스트코드작성
◎테스트커버리지
◎유효성검사
◎예외처리
◎액추에이터
◎REST통신
◎서비스의인증과인가