새책 | eBook | 알라딘 직접배송 중고 | 이 광활한 우주점 | 판매자 중고 (19) |
32,400원(절판) | 출간알림 신청![]() | - | - | 8,700원 |
1장. 스프링 프레임워크 5.0의 발전
__스프링 프레임워크
____EJB 관련 문제점
__스프링 프레임워크가 인기 있는 이유는 무엇일까?
____단순화된 단위 테스트
____복잡한 코드 감소
________스프링 프레임워크는 어떻게 마법을 부릴까?
____아키텍처의 유연성
____변화하는 시대를 선도함
__스프링 모듈
____스프링 코어 컨테이너
____횡단 관심
____웹
____비지니스
____데이터
__스프링 프로젝트
____스프링 부트
____스프링 클라우드
____스프링 데이터
____스프링 배치
____스프링 시큐리티
____스프링 HATEOAS
__스프링 프레임워크 5.0 새로운 기능
____기준선 업그레이드
____JDK 9 런타임 호환성
____스프링 프레임워크 코드에서 JDK 8 기능 사용
____리액티브 프로그래밍 지원
____함수형 웹 프레임워크
____직소를 사용한 자바 모듈성
____코틀린 지원
____삭제된 기능
__스프링 부트 2.0의 새로운 기능
__요약
2장. 의존성 주입
__DI 이해하기
____의존성 이해하기
____스프링 IoC 컨테이너
________빈과 와이어링 정의
________스프링 IoC 컨테이너 생성
________애플리케이션 콘텍스트에 대한 자바 구성
________애플리케이션 콘텍스트의 XML 구성
________스프링 콘텍스트를 사용해 JUnit 작성하기
____모크 단위 테스트
____컨테이너 관리 빈
____DI 유형
________setter 주입
________생성자 주입
________생성자 대 설정자 주입
____스프링 빈 스코프
____자바 대 XML 구성
____@Autowired 어노테이션
________@Primary 어노테이션
________@Qualifier 어노테이션
____기타 중요한 스프링 어노테이션
____콘텍스트 및 DI 탐색
________CDI의 예
__요약
3장. 스프링 MVC 웹 애플리케이션 구축
__자바 웹 애플리케이션 아키텍처
____모델 1 아키텍처
____모델 2 아키텍처
____모델 2 프런트 컨트롤러 아키텍처
__기본 플로
____기존 설정
________스프링 MVC에 대한 의존성 추가하기
________DispatcherServlet을 web.xml에 추가하기
________스프링 콘텍스트 생성하기
____플로 1 - 뷰 없는 간단한 컨트롤러 플로
________스프링 MVC 컨트롤러 생성하기
________웹 애플리케이션 구동
________단위 테스트
____플로 2 - 뷰를 가진 간단한 컨트롤러 플로
________스프링 MVC 컨트롤러
________뷰 생성하기 - JSP
________단위 테스트
____플로 3 - 모델이 있는 뷰로 전환하는 컨트롤러
________스프링 MVC 컨트롤러
________뷰 생성하기
________단위 테스팅
____플로 4 - ModelAndView를 사용해 뷰로 전환하는 컨트롤러
________스프링 MVC 컨트롤러
________뷰 생성하기
________단위 테스팅
____플로 5 - 폼이 있는 뷰로 전환하는 컨트롤러
________명령 또는 폼 백엔드 오브젝트 작성하기
________폼을 표시하는 컨트롤러 메서드
________폼을 가진 뷰 생성하기
______컨트롤러가 폼 제출을 처리하는 메서드를 가져오기
________단위 테스팅
____플로 6 - 이전 플로에 유효성 검증 추가하기
________하이버네이트 벨리데이터 의존성
________빈에 대한 간단한 검증
________커스텀 벨리데이션
________유닛 테스팅
__스프링 MVC의 개요
____중요 기능
____어떻게 작동할까?
__스프링 MVC의 핵심 개념
____RequestMapping
________요청 매핑 예제
________요청 매핑 메서드 - 지원되는 메서드 인수
________RequestMapping 메서드 - 지원되는 리턴 유형
____뷰 리솔루션
________JSP 뷰 리졸버 구성하기
________프리마커 구성
____핸들러 매핑과 인터셉터
________HandlerInterceptor 정의하기
________HandlerInterceptor를 핸들러에 매핑
____모델 속성
____세션 속성
________세션에 속성 추가하기
________세션에서 속성 읽기
________세션에서 속성 제거
____InitBinders
____@ControllerAdvice 어노테이션
__스프링 MVC - 고급 기능
____예외 처리
________컨트롤러 전반의 일반적인 예외 처리
________컨트롤러의 특정 예외 처리
____국제화
________메시지 번들 설정
________SessionLocaleResolver 설정
________CookieLocaleResolver 설정
____스프링 컨트롤러 통합 테스트
____정적 자원 제공
________정적 콘텐츠 노출
________정적 콘텐츠 캐싱
________정적 콘텐츠의 GZip 압축 사용
____스프링 MVC와 부트스트랩의 통합
________메이븐 의존성으로서의 부트스트랩 WebJar
________스프링 MVC 리소스 핸들러로 WebJar 정적 콘텐츠 전달하기 설정
________JSP에서 부트스트랩 리소스 사용하기
__스프링 시큐리티
____스프링 보안 의존성 추가하기
____모든 요청을 인터셉트하도록 필터 설정
____로그아웃
__요약
4장. 마이크로 아키텍처 및 클라우드-네이티브 애플리케이션으로의 진화
__스프링을 이용한 일반적인 웹 애플리케이션 아키텍처
____웹 계층
________웹 애플리케이션 - HTML 뷰 렌더링
________RESTful 서비스
____비즈니스 계층
____데이터 계층
____통합 계층
____횡단 관심
__스프링에 의해 해결된 문제
____느슨한 커플링 및 테스트 가능성
____복잡한 코드
____경량 아키텍처
____유연한 아키텍처
____횡단 관심의 간편한 구현
____디자인 패턴
__애플리케이션 개발 목표
____속도
____안전
________신뢰성
________가용성
________보안
________성능
________높은 복원력
____확정성
__모놀리식 애플리케이션 문제
____긴 릴리스 주기
____확장의 어려움
____새로운 기술 적용
____새로운 방법론 적용
____현대적인 개발 사례 적용
__마이크로서비스 이해
____마이크로서비스는 무엇인가?
____마이크로서비스 아키텍처
____마이크로서비스 특성
________작고 가벼운 마이크로서비스
________메시지 기반 커뮤니케이션과의 상호 운용성
________용량 할당 마이크로서비스
________독립적으로 배포 가능한 유닛
________무상태
________자동화된 빌드 및 릴리스 프로세스
________이벤트-드리븐 아키텍처
________독립된 팀
____마이크로서비스 장점
________출시 시간 단축
________기술 진화
________가용성 및 확장성
________팀 동력
____마이크로서비스 문제
________자동화에 대한 필요성 증가
________서브 시스템의 경계 정의
________가시성 및 모니터링
________결함 허용
________영속적 일관성
________운영 팀에 대한 필요성 증가
__클라우드-네이티브 애플리케이션
____12-팩터 앱
________코드베이스 유지
________의존성
________환경 설정
________백엔드 서비스
________빌드, 릴리스, 실행
________무상태
________포트 바인딩
________동시성
________처분 가능성
________환경 평가
________이벤트 스트림 로그
________구분 없는 어드민 프로세스
__스프링 프로젝트
____스프링 부트
____스프링 클라우드
__요약
5장. 스프링 부트로 마이크로서비스 구축
__스프링 부트는 무엇인가?
____마이크로서비스로 빠르게 프로토타입 구축
____기본 목표
____비기능적인 특징
__스프링 부트 Hello World
____spring-boot-starter-parent 설정
________spring-boot-starter-parent
____필요한 스타터 프로젝트를 사용해 pom.xml 구성
________스타터 프로젝트 이해하기
____spring-boot-maven-plugin 설정
____첫 스프링 부트 구동 클래스 생성
________SpringApplication 클래스
________@SpringBootApplication 어노테이션
____Hello World 애플리케이션 구동
____자동 설정
____스타터 프로젝트
__REST는 무엇인가?
__첫 REST 서비스
____문자열을 반환하는 간단한 메서드
________단위 테스팅
________통합 테스팅
____객체를 반환하는 간단한 REST 메서드
________요청 실행
________단위 테스팅
________통합 테스팅
____경로 변수를 가진 Get 메서드
________요청 실행
________단위 테스팅
________통합 테스팅
__todo 리소스 생성
____메서드, 오퍼레이션, URI 요청
____빈들과 서비스들
____Todo 리스트 검색
________서비스 실행
________단위 테스팅
________통합 테스팅
____특정 Todo의 세부 정보 검색
________서비스 실행
________단위 테스팅
________통합 테스팅
____Todo 추가
________포스트맨
________POST 서비스 실행
________단위 테스팅
________통합 테스트
__스프링 이니셜라이저
____첫 스프링 이니셜라이저 프로젝트 생성
________Pom
________FirstSpringInitializrApplication.java 클래스
________FirstSpringInitializrApplicationTests 클래스
__자동 설정 확인
__요약
6장. 마이크로서비스 확장
__예외 처리
____스프링 부트 기본 예외 처리
________존재하지 않는 리소스
________예외를 발생시키는 리소스
________커스텀 예외 발생시키기
________커스텀 예외 메시지
________응답 상태
__HATEOAS
____응답에 HATEOAS 링크 정보 보내기
________스프링 부트 스타터 HATEOAS
__벨리데이션
____컨트롤러 메서드 벨리데이션 활성화
____빈 벨리데이션 정의
____단위 테스팅 벨리데이션
__REST 서비스 문서화
____Swagger 명세서 생성
________Swagger UI
________어노테이션을 사용한 커스텀 Swagger 문서
__스프링 시큐리티로 REST 서비스 보호
____스프링 시큐리티 스타터 추가
____기본 인증
________통합 테스팅
________단위 테스팅
____OAuth 2 인증
________하이-레벨 플로
________서비스를 OAuth 2로 인증 구현
__국제화
__캐싱
____Spring-boot-starter-cache
____캐싱 활성화
____데이터 캐싱
____JSR-107 캐싱 어노테이션
________자동 감지 순서
__요약
7장. 고급 스프링 부트 기능
__외형화된 구성
____application.properties를 통한 프레임워크 커스텀
________로깅
________임베디드 서버 구성
________스프링 MVC
________스프링 스타터 시큐리티
________데이터 소스, JDBC와 JPA
________기타 구성 옵션
____application.properties의 커스텀 속성
________구성 등록 정보 - 타입세이프(type-safe) 구성 관리
____프로파일
________프로파일-기반 빈 구성
____애플리케이션 구성값에 대한 기타 옵션
____YAML 구성
__임베디드 서버
____제티 및 언더토우 전환
____WAR 파일 만들기
__개발자 도구
____실시간 리로드
__스프링 부트 엑추에이터
____HAL 브라우저
____구성 속성
____환경 세부 정보
____상태
____매핑
____빈즈
____측정 항목
____자동 구성
____디버깅
__클라우드에 애플리케이션 배포
____클라우드 파운드리
__요약
8장. 스프링 데이터
__백그라운드 - 데이터 저장소
__스프링 데이터
____스프링 데이터 커먼즈
________리포지토리
________CrudRepository 인터페이스
________PagingAndSortingRepository 인터페이스
____스프링 데이터 JPA
________스프링 데이터 JPA 예제
________엔티티
________간단한 저장소
________CrudRepository 인터페이스
________PagingAndSortingRepository 인터페이스
________쿼리 메서드
________쿼리들
__스프링 데이터 Rest
____GET 메서드
____POST 메서드
____검색 리소스
__빅데이터
____몽고DB
________단위 테스트
__요약
9장. 스프링 클라우드
__스프링 클라우드 소개
____스프링 클라우드 넷플릭스
__데모 마이크로서비스 설정
____마이크로서비스 A
____서비스 소비자
________포트
__중앙 집중식 마이크로서비스 구성
____문제 기술
____해결책
____옵션
____스프링 클라우드 컨피그
________스프링 클라우드 컨피그 서버 구현
__스프링 클라우드 버스
____스프링 클라우드 버스의 필요성
____스프링 클라우드 버스를 사용해 구성 변경 전파
____구현
__선언적 REST 클라이언트 - 페인
__로드 균형 조정
____립본
________구현
__네임 서버
____마이크로서비스 URL 하드 코딩의 한계
__네임 서버 작동
____옵션
____구현
________유레카 서버 세팅
________유레카에 마이크로서비스 등록
________유레카와 서비스 소비자 마이크로서비스 연결
__API 게이트웨이
____주울로 클라이언트 측 로드 밸런싱 구현하기
________새로운 주울 API 게이트웨이 서버 설정
________주울 API 게이트웨이를 사용하도록 서비스 소비자 구성
__분산 추적
____분산 추적 옵션
____스프링 클라우드 슬루스와 집킨 구현하기
________스프링 클라우드 슬루스와 마이크로서비스 컴포넌트 통합
________집킨 분산 추적 서버 설정
________집킨과 마이크로서비스 구성 요소 통합
__히스트릭스 - 내결함성
____구현
__요약
10장. 스프링 클라우드 데이터 플로
__메시지 기반 비동기 통신
____비동기 통신의 복잡성
__비동기 메시지용 스프링 프로젝트
____스프링 통합
____스프링 클라우드 스트림
____스프링 클라우드 데이터 플로
__스프링 클라우드 스트림
____스프링 클라우드 스트림 아키텍처
____이벤트 처리 - 주식 거래 예제
________주식 거래 예제 위한 모델
________소스 애플리케이션
________프로세서
________싱크
__스프링 클라우드 데이터 플로
____높은 수준의 아키텍처
____스프링 클라우드 데이터 플로 구현하기
________스프링 클라우드 데이터 플로 서버 설정하기
________데이터 플로 셸 프로젝트 설정
________앱 구성
________스트림 구성
________스트림 배포
________로그 메시지 - 메시지 팩토리에 대한 연결 설정
________로그 메시지 - 이벤트 플로
____스프링 클라우드 데이터 플로 REST API
__스프링 클라우드 테스크
__요약
11장. 리액티브 프로그래밍
____리액티브 선언
____리액티브 시스템의 특성
__반응적 사용 사례 - 주가 페이지
____전통적인 방식
____리액티브 방식
____전통적인 방식과 리액티브 방식의 비교
__자바의 리액티브 프로그래밍
____리액티브 스트림
____리액터
________모노
________플럭스
____스프링 웹 리액티브
________스프링 이니셜라이저를 사용해 프로젝트 만들기
________리액티브 컨트롤러 만들기
________HTML 보기 만들기
________SpringReactiveExampleApplication 실행
____리액티브 데이터베이스
________스프링 부트 리액티브 몽고DB 스타터 통합하기
________모델 오브젝트 생성 - Stock 도큐멘트
________ReactiveCrudRepository 만들기
________명령-행 러너를 사용해 주식 데이터 초기화하기
________레스트 컨트롤러에서 리액티브 함수 만들기
________이벤트 스트림에 가입하기 위해 뷰 업데이트하기
________SpringReactiveExampleApplication 실행 중
__요약
12장. 스프링 모범 사례
__메이븐 표준 디렉터리 레이아웃
__계층화된 아키텍처
____권장 사례
________중요한 레이어에 대한 API와 impl 분리
__예외 처리
____예외 처리에 대한 스프링의 접근 방식
____권장 접근법
__스프링 구성 간결하게 유지
____컴포넌트 스캔에서 basePackageClasses 특성 사용
____스키마 참조에서 버전 번호를 사용하지 않음
____필수 의존성에 대한 setter 인젝션보다 생성자 인젝션을 선호한다
__스프링 프로젝트의 의존성 버전 관리하기
__단위 테스트
____비즈니스 레이어
____웹 레이어
____데이터 레이어
____기타 모범 사례
__통합 테스트
____스프링 세션
____예제
________스프링 세션에 대한 의존성 추가하기
________HttpSession을 스프링 세션으로 대체하기 위한 필터 설정하기
________AbstractHttpSessionApplicationInitializer를 확장해 톰캣에 대한 필터링 사용
__캐싱
____스프링 부트 스타터 캐시 의존성 추가하기
____캐싱 어노테이션 추가하기
__로깅
____로그백
____Log4j2
____프레임워크 독립 구성
__요약
13장. 스프링에서 코틀린 개발
__코틀린
__코틀린 대 자바
____변수 및 형식 추론
____변수 및 불변성
____타입 시스템
____함수들
____배열
____컬렉션
____확인되지 않은 예외 처리
____데이터 클래스
__이클립스에서 코틀린 프로젝트 만들기
____코틀린 플러그인
____코틀린 프로젝트 만들기
____코틀린 클래스 만들기
____코틀린 클래스 실행
__코틀린을 사용해 스프링 부트 프로젝트 만들기
____의존성 및 플러그인
____스프링 부트 애플리케이션 클래스
____스프링 부트 애플리케이션 테스트 클래스
__코틀린을 사용해 REST 서비스 구현하기
____문자열을 리턴하는 간단한 메서드
________단위 테스트
________통합 테스트
____객체를 반환하는 간단한 REST 메서드
________요청 실행
________단위 테스트
________통합 테스트
____경로 변수로 메서드 가져오기
________요청 실행
________단위 테스트
________통합 테스트
__요약