쿼커스를 쉽고 빠르게 익히는 145가지 레시피
쿼커스는 쿠버네티스에 최적화된 클라우드 네이티브 프레임워크다. 스프링, 하이버네이트, 이클립스 마이크로프로파일, 쿠버네티스, 아파치 캐멜과 이클립스 Vert.x와 같이 익숙한 라이브러리와 기술을 기반으로 네이티브 응용프로그램을 만든다.
이 책에서 제시하는 145가지 레시피는 쿼커스를 시작하는 방법부터 자바 응용프로그램 개발까지 단계별로 보여준다. 실무에서 마주할 수 있는 레시피를 따라가다 보면 자바 에코 시스템에서 쿼커스가 작동하는 방식을 이해하고, 프레임워크를 특성에 맞게 조정하는 방법을 익힐 수 있다.
CHAPTER 1 쿼커스 소개
1.1 개발자 친화적
1.2 쿠버네티스와 통합
1.3 메모리와 첫 응답시간
1.4 쿼커스의 흐름
CHAPTER 2 뼈대 잡기
2.1 메이븐으로 쿼커스 뼈대 잡기
2.2 그레이들로 쿼커스 프로젝트 뼈대 잡기
2.3 쿼커스 코딩 시작 웹페이지에서 쿼커스 프로젝트 뼈대 잡기
2.4 VS Code로 쿼커스 프로젝트 뼈대 잡기
2.5 개발자 모드에서 라이브 리로드
2.6 정적 자원 제공
CHAPTER 3 REST 서비스 개발하기
3.1 단순한 REST API 종단점 생성하기
3.2 요청 인자 추출하기
3.3 HTTP 응답 상태 코드 사용하기
3.4 HTTP 메서드와 바인딩하기
3.5 CORS 활성화하기
3.7 HTTP 요청 가로채기
3.8 SSL로 안전하게 연결하기
CHAPTER 4 설정
4.1 사용자 정의 속성으로 응용프로그램 설정하기
4.2 설정 속성에 프로그램적으로 접근하기
4.3 설정값을 외부에서 덮어쓰기
4.4 프로파일 설정하기
4.5 로거 설정 변경하기
4.6 응용프로그램 로그 추가하기
4.7 고급 로깅
4.8 사용자 정의 프로파일 설정하기
4.9 사용자 정의 소스 생성하기
4.10 사용자 정의 변환기 생성하기
4.11 설정값을 그룹화하기
4.12 설정값 검증하기
CHAPTER 5 프로그래밍 모델
5.1 JSON 마샬링/언마샬링
5.2 XML 마샬링/언마샬링
5.3 입출력값 검증하기
5.4 사용자 정의 유효성 검증하기
5.5 프로그램으로 객체 검증하기
5.6 의존성 주입하기
5.7 팩토리 생성하기
5.8 객체 생명주기 이벤트 실행하기
5.9 응용프로그램 생명주기 이벤트 실행하기
5.10 이름을 가진 한정자 사용하기
5.11 사용자 정의 한정자 사용하기
5.12 애너테이션으로 제한 설정하기
5.13 인터셉터 생성하기
5.14 행동 테스트 작성하기
5.15 단위 테스트 작성하기
5.16 목 객체 생성하기
5.17 모키토를 활용해 목 객체 생성하기
5.18 메타 애너테이션으로 다수의 애너테이션을 그룹화하기
5.19 테스트의 전/후에 코드 실행하기
5.20 네이티브 실행으로 테스트하기
CHAPTER 6 쿼커스 응용프로그램의 패키징
6.1 명령 모드에서 실행하기
6.2 실행형 JAR 파일 생성하기
6.3 우버 JAR 패키징하기
6.4 네이티브 실행 빌드하기
6.5 JAR 파일을 위한 도커 컨테이너 빌드하기
6.6 네이티브 파일을 위한 도커 컨테이너 빌드하기
6.7 네이티브 SSL 응용프로그램을 빌드하고 도커화하기
CHAPTER 7 영속성
7.1 데이터소스 정의하기
7.2 다수의 데이터소스 사용하기
7.3 데이터소스 헬스 체크 추가하기
7.4 트랜잭션의 경계를 선언적으로 정의하기
7.5 트랜잭션 문맥 설정하기
7.6 프로그램으로 트랜잭션 제어
7.7 트랜잭션 제한시간을 설정하거나 변경하기
7.8 persistence.xml 설정하기
7.9 persistence.xml 없이 설정하기
7.10 다른 JAR에 있는 엔티티 사용하기
7.11 파나쉬로 데이터 영속성 다루기
7.12 파나쉬의 listAll 메서드로 모든 엔티티의 인스턴스 찾기
7.13 파나쉬의 findById 메서드로 개별 엔티티 찾기
7.14 파나쉬의 find와 list 메서드로 엔티티 찾기
7.15 파나쉬의 count 메서드를 사용해 엔티티의 개수 얻기
7.16 파나쉬의 page 메서드를 사용해 엔티티 목록을 페이지로 표시하기
7.17 파나쉬의 stream 메서드로 결과를 스트림으로 사용하기
7.18 파나쉬 엔티티 테스트하기
7.19 데이터 접근 객체 혹은 저장소 패턴 사용하기
7.20 아마존 다이나모DB 사용하기
7.21 몽고DB로 작업하기
7.22 몽고DB로 파나쉬 사용하기
7.23 쿼커스와 Neo4j 사용하기
7.24 Flyway로 시작하기
7.25 Flyway를 프로그램으로 사용하기
CHAPTER 8 장애 허용
8.1 자동 재시도 구현하기
8.2 제한시간 구현하기
8.3 격벽 패턴으로 과부하 피하기
8.4 회로 차단기 패턴으로 불필요한 호출 회피하기
8.5 결함 허용 비활성화하기
CHAPTER 9 관찰력
9.1 자동 헬스 체크 사용하기
9.2 사용자 정의 헬스 체크 생성하기
9.3 메트릭 노출하기
9.4 메트릭 생성하기
9.5 분산 추적 사용하기
9.6 사용자 정의 분산 추적
CHAPTER 10 쿠버네티스 통합
10.1 컨테이너 이미지 빌드와 푸시
10.2 쿠버네티스 자원 생성하기
10.3 헬스 체크를 포함해 쿠버네티스 자원을 생성하기
10.4 쿠버네티스에 서비스 배포하기
10.5 오픈시프트에 서비스 배포하기
10.6 컨테이너 이미지를 자동으로 빌드하고 배포하기
10.7 쿠버네티스로부터 응용프로그램 설정하기
10.8 설정 확장으로 쿠버네티스로부터 응용프로그램 설정하기
10.9 쿠버네티스 클러스터와 프로그램으로 상호작용하기
10.10 쿠버네티스 클라이언트 상호작용을 테스트하기
10.11 쿠버네티스 오퍼레이터 구현하기
10.12 Knative로 서버리스 워크로드를 배포하고 관리하기
CHAPTER 11 인증과 권한
11.1 쿼커스 보안 기본
11.2 엘리트론 속성 파일 설정으로 인증과 권한
11.3 엘리트론 보안 JDBC 설정으로 인증과 권한
11.4 마이크로프로파일 JWT로 권한
11.5 OpenID Connect를 활용한 권한과 인증
11.6 OpenID Connect로 웹 자원 보호하기
CHAPTER 12 응용프로그램 시크릿 관리
12.1 쿠버네티스 시크릿을 사용한 데이터 저장
12.2 볼트로 설정 시크릿을 안전하게 보관하기
12.3 서비스로서의 암호화
12.4 시크릿으로 데이터베이스 비밀번호 생성하기
12.5 볼트 쿠버네티스 인증으로 서비스 인증하기
CHAPTER 13 쿼커스 REST 클라이언트
13.1 JAX-RS 웹 클라이언트 사용하기
13.2 마이크로프로파일 REST 클라이언트 사용하기
13.3 CRUD 클라이언트 구현하기
13.4 헤더 조작하기
13.5 REST 클라이언트에서 멀티파트 메시지 사용
13.6 REST 클라이언트에 SSL 설정하기
CHAPTER 14 스프링 API로 쿼커스 응용프로그램 개발하기
14.1 스프링 의존성 주입 사용하기
14.2 스프링 웹 사용하기
14.3 스프링 데이터 JPA 사용하기
14.4 스프링 보안 사용하기
14.5 스프링 부트 속성 사용하기
CHAPTER 15 리액티브 프로그래밍 모델로 개발하기
15.1 비동기 HTTP 종단점 생성하기
15.2 데이터를 비동기 스트림하기
15.3 메시징으로 컴포넌트 디커플링하기
15.4 아파치 카프카 메시지에 반응하기
15.5 아파치 카프카로 메시지 보내기
15.6 카프카 안과 밖으로 POJO를 마샬링하기
15.7 카프카 스트림즈 API 사용하기
15.8 쿼커스로 AMQP 사용하기
15.9 MQTT 사용하기
15.10 리액티브 SQL기반의 쿼리하기
15.11 리액티브 SQL 클라이언트를 사용해 삽입하기
15.12 리액티브 몽고DB 클라이언트 사용하기
15.13 리액티브 Neo4j 클라이언트 사용하기
CHAPTER 16 쿼커스 부가 기능
16.1 큐트 템플릿 엔진으로 템플릿 생성하기
16.2 큐트를 사용해 HTML 출력
16.3 큐트 템플릿의 위치 변경하기
16.4 큐트 데이터 클래스 확장하기
16.5 OpenAPI로 종단점 기술하기
16.6 OpenAPI 명세를 커스터마이징하기
16.7 동기 방식으로 이메일을 보내기
16.8 리액티브하게 이메일 보내기
16.9 스케줄 작업 생성하기
16.10 응용프로그램 데이터 캐싱 사용하기
'Supersonic Subatomic Java' 쿼커스의 세계에 오신걸 환영합니다.
2018년부터 시작된 쿼커스는 ‘초음속(supersonic)의 원자보다 작은 자바(subatomic JAVA)’를 지향하며 그 이름만큼 빠르게 발전하고 있다. 원문에 있는 예제를 최신 버전(1.11.3)으로 변경하고 서문을 쓰고 있는 시점에 다음 버전이 나온다는 소식을 접할정도이다.
이 책의 매력은 짧게 핵심에 집중한다는 점이다. 쿼커스의 전반적인 주제에 대해 빠르게 기능을 확인할 수 있는 다수의 예제 코드를 제공한다. 단순한 hello 출력부터 그랄VM을 활용하여 네이티브 실행 파일을 빌드한다. 같은 소스 코드로 쿠버네티스에 배포한다. 하나씩 읽고 따라하다 보면 자연스럽게 쿼커스의 강점을 배울 수 있다.