서브메뉴

본문

스프링 부트 핵심 가이드 (스프링 부트를 활용한 애플리케이션 개발 실무)
스프링 부트 핵심 가이드 (스프링 부트를 활용한 애플리케이션 개발 실무)
저자 : 장정우
출판사 : 위키북스
출판년 : 2022
ISBN : 9791158393083

책소개


입문자의 눈높이에 맞춰 차근차근 따라 하면서 배우는 스프링 부트 입문서!

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

목차


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.5 REST API
__2.5.1 REST란?
__2.5.2 REST API란?
__2.5.3 REST의 특징
__2.5.4 REST의 URI 설계 규칙

03장: 개발 환경 구성

3.1 자바 JDK 설치
3.2 인텔리제이 IDEA 설치

04장: 스프링 부트 애플리케이션 개발하기

4.1 프로젝트 생성
__4.1.1 인텔리제이 IDEA에서 프로젝트 생성하기
__4.1.2 스프링 공식 사이트에서 프로젝트 생성하기
4.2 pom.xml(Project Object Model) 살펴보기
__4.2.1 빌드 관리 도구
__4.2.2 메이븐
__4.3 Hello World 출력하기
__4.3.1 컨트롤러 작성하기
__4.3.2 애플리케이션 실행하기
__4.3.3 웹 브라우저를 통한 동작 테스트
__4.3.4 Talend API Tester를 통한 동작 테스트

05장: API를 작성하는 다양한 방법

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

06장: 데이터베이스 연동

6.1 마리아DB 설치
6.2 ORM
6.3 JPA
6.4 하이버네이트
__6.4.1 Spring Data JPA
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.9 DAO 설계
__6.9.1 DAO 클래스 생성
6.10 DAO 연동을 위한 컨트롤러와 서비스 설계
__6.10.1 서비스 클래스 만들기
__6.10.2 컨트롤러 생성
__6.10.3 Swagger API를 통한 동작 확인
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.1 Given-When-Then 패턴
__7.3.2 좋은 테스트를 작성하는 5가지 속성(F.I.R.S.T)
7.4 JUnit을 활용한 테스트 코드 작성
__7.4.1 JUnit의 세부 모듈
__7.4.2 스프링 부트 프로젝트 생성
__7.4.3 스프링 부트의 테스트 설정
__7.4.4 JUnit의 생명주기
__7.4.5 스프링 부트에서의 테스트
__7.4.6 컨트롤러 객체의 테스트
__7.4.7 서비스 객체의 테스트
__7.4.8 리포지토리 객체의 테스트
7.5 JaCoCo를 활용한 테스트 커버리지 확인
__7.5.1 JaCoCo 플러그인 설정
__7.5.2 JaCoCo 테스트 커버리지 확인
7.6 테스트 주도 개발(TDD)
__7.6.1 테스트 주도 개발의 개발 주기
__7.6.2 테스트 주도 개발의 효과
7.7 정리

08장: Spring Data JPA 활용

8.1 프로젝트 생성
8.2 JPQL
8.3 쿼리 메서드 살펴보기
__8.3.1 쿼리 메서드의 생성
__8.3.2 쿼리 메서드의 주제 키워드
__8.3.3 쿼리 메서드의 조건자 키워드
8.4 정렬과 페이징 처리
__8.4.1 정렬 처리하기
__8.4.2 페이징 처리
8.5 @Query 어노테이션 사용하기
8.6 QueryDSL 적용하기
__8.6.1 QueryDSL이란?
__8.6.2 QueryDSL의 장점
__8.6.3 QueryDSL을 사용하기 위한 프로젝트 설정
__8.6.4 기본적인 QueryDSL 사용하기
__8.6.5 QuerydslPredicateExecutor, QuerydslRepositorySupport 활용
8.7 [ 한걸음 더 ] JPA Auditing 적용
__8.7.1 JPA Auditing 기능 활성화
__8.7.2 BaseEntity 만들기
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.2 Hibernate Validator
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.1 RestTemplate이란?
__12.1.1 RestTemplate의 동작 원리
__12.1.2 RestTemplate의 대표적인 메서드
12.2 RestTemplate 사용하기
__12.2.1 서버 프로젝트 생성하기
__12.2.2 RestTemplate 구현하기
__12.2.3 RestTemplate 커스텀 설정
12.3 WebClient란?
__12.3.1 WebClient 구성
12.4 WebClient 사용하기
__12.4.1 WebClient 구현
12.5 정리

13장: 서비스의 인증과 권한 부여

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

QuickMenu