메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

쿼커스 쿡북

쿠버네티스를 위한 네이티브 자바 솔루션

한빛미디어

번역서

판매중

  • 저자 : 알렉스 소토 부에노 , 제이슨 포터
  • 번역 : 유동환
  • 출간 : 2021-04-28
  • 페이지 : 460 쪽
  • ISBN : 9791162244203
  • 물류코드 :10420
  • 초급 초중급 중급 중고급 고급
4.7점 (9명)
좋아요 : 0

쿼커스를 쉽고 빠르게 익히는 145가지 레시피

 

쿼커스는 쿠버네티스에 최적화된 클라우드 네이티브 프레임워크다. 스프링, 하이버네이트, 이클립스 마이크로프로파일, 쿠버네티스, 아파치 캐멜과 이클립스 Vert.x와 같이 익숙한 라이브러리와 기술을 기반으로 네이티브 응용프로그램을 만든다.

 

이 책에서 제시하는 145가지 레시피는 쿼커스를 시작하는 방법부터 자바 응용프로그램 개발까지 단계별로 보여준다. 실무에서 마주할 수 있는 레시피를 따라가다 보면 자바 에코 시스템에서 쿼커스가 작동하는 방식을 이해하고, 프레임워크를 특성에 맞게 조정하는 방법을 익힐 수 있다.

  • 쿼커스 개발 모드 익히기
  • 카프카와의 상호작용
  • 템플릿, 스케줄링, 오픈API 등 부가 기능 추가하기
  • 쿠버네티스와 통합 및 배포 방법
  • 네이티브 쿼커스 응용프로그램 테스트 방법 
알렉스 소토 부에노 저자

알렉스 소토 부에노

1990년대 초에 처음 구입한 컴퓨터를 통해 소프트웨어에 매료되었다. 이 모든 것은 퀵베이직의 고릴라 게임Qbasic Gorillas과 지렁이 게임Qbasic Nibbles에서 시작되었다. 게임의 소스 코드를 발견한 후에는 완전히 빠져들었으며, 앞으로 무엇을 하고 싶은지 정확히 알 수 있었다! 처음에는 베이직을 배웠으며, 얼마 지나지 않아 『Teach Yourself Java in 21 Days』를 선택했다. 고등학교와 대학교에서는 자바 및 C/C++로 기초를 향상시켰다. ‘닷컴’ 열풍이 터진 시기에 꿈꾸던 레드햇에 입사했다. 대부분 자바 기반의 많은 소프트웨어 프로젝트를 수행했으며 수년 동안 웹 작업을 담당했다. 다른 사람들이 생산적으로 일할 수 있도록 도울 수 있어서 매우 기뻐한다. 전 세계의 다양한 컨퍼런스와 유타의 지역 JUG 무대에서 그를 볼 수 있다.

제이슨 포터 저자

제이슨 포터

자바 챔피언이자 레드햇의 개발자 경험 이사. swing.jar 파일이 외부 라이브러리였던 자바 버전 1.2부터 코딩을 시작했으며, 이때부터 자바 세계에 빠져들었다. POKE 명령을 사용해 ZX 스펙트럼으로 프로그래밍했으며 인텔 80286을 탑재한 여러 대의 컴퓨터를 가지고 있다. 현재는 국제적 강연자로, 라몬율 대학교에서 학생들을 가르치고 있다. 그의 목소리는 라디오에서도 들을 수 있다.

유동환 역자

유동환

책 쓰는 프로그래머. 연세대학교 정보대학원에서 경영정보학을 전공한 후 LG전자에서 안드로이드 앱을 개발했다. 자바카페와 한국자바개발자협의회(JCO)에서 초기 멤버로서 수년간 활동했다. 집필한 책으로는 『처음 배우는 플러터』, 『RxJava 프로그래밍』, 『안드로이드를 위한 Gradle』(공저, 이상 한빛미디어)이 있고, 번역한 책으로는 『자바로 배우는 핵심 자료구조와 알고리즘』, 『Java 9 모듈 프로그래밍』, 『그레이들 레시피』(이상 한빛미디어), 『Professional Java Web Services』(정보문화사, 2002) 와 『자바와 JUnit을 활용한 실용주의 단위 테스트』(길벗, 2019)가 있다. 

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을 활용하여 네이티브 실행 파일을 빌드한다. 같은 소스 코드로 쿠버네티스에 배포한다. 하나씩 읽고 따라하다 보면 자연스럽게 쿼커스의 강점을 배울 수 있다.

#쿼터스쿡북 #쿼커스
 

q1.jpg

 

 
 
쿼커스 쿡북이 출간했다.
 
쿼커스가 뭘까? 다소 생소한 용어일 수도 있다.
 
 
 
쿼커스는 쿠버네티스와 통합되어 있는 클라우드 네이티브 프레임워크이다. 쿼커스를 사용하면 도커와 쿠버네티스에 쉽게 배포가 가능하다.
 
 
 
쿼커스로 개발하기 위해서 뭔가 새로운 기술을 배울 필요는 없다. 기존에 의존성 주입과 같은 기술에 이미 익숙하다면 모두 쿼커스를 이용해서 사용할 수 있다.
 
 
쿼커스는 클라우드 시대에 아주 유용한 프레임워크 이지만 아직 많이 알려지지 않은 것 같다. 따라서 이 책이 아마 접하기 가장 쉽고 어쩌면 유일한 책이다.
 
 
내용은 클라우드를 사용하지 않는다면 어려울 수 있지만 자바 응용프로그램을 개발하면서 쿠버네티스를 사용하는 개발자라면 읽어볼 만하다.

 

 

 개발 초창기에는 웹개발자였다. 우리나라 대부분의 웹개발자가 그렇듯이 java를 사용했고, spring을 기반으로 사용했었다. 그러다가 클라우드라는 물결에 탑승하여 k8s(kubernetes)를 활용한 개발을 하였다. k8s를 사용해도 spring을 기반으로 개발했다. spring과 spring cloud를 주로 사용했다.

 그러다가 이 책을 보게 되었다. 클라우드에서 많이 사용되는 패턴(헬스 체크, rest, 회로차단기 등)을 간단하게 구현할 수 있어서 좋았다.

 물론 spring에서도 구현 못하는 것은 아니나 쿼커스는 좀 더 k8s에 친화적이면서 클라우드를 위해 간단하게 구현할 수 있도록 도와준다.

 또한 spring에서도 graalvm을 활용하려고 시도하는데(https://spring.io/blog/2020/04/09/spring-graalvm-native-0-6-0-released) 이 쿼커스 또한 네이티스로 실행할 수 있어서 가는 방향을 비슷하다 하겠다.

 다만 계속해서 spring만 사용했더니 쿼커스에서 사용하는 어노테이션을 다소 생소하게 느겨지곤 했다. 이제 프레임워크도 클라우드 네이티브에 친화적으로 계속 발전해 나아가는 것 같다.

 java 기반의 웹개발자가 클라우드에 적용하기 위해서는 좀 더 친근한 프레임워크가 될 듯 하다.

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

2018년부터 시작된 빠르게 발전하고 있는 쿼커스는 쿠버네티스와 긴밀하게 통합된 클라우드 네이티브 프레임워크입니다. 쿼커스는 레드햇이 지원하는 쿠버네티스 네이티브 자바 스택인데요. 레드햇 오픈시프트는 레드햇의 강력한 엔터프라이즈용 오픈소스 솔루션 경쟁력과 쿠버네티스의 혁신을 결합한 결과로 알려져 있습니다.

 

레드햇 오픈시프트는 하이브리드 클라우드를 위한 강력하고 확장 가능한 쿠버네티스 기반을 제공합니다. 쿠버네티스는 베어메탈 서버와 가상 환경, 프라이빗·퍼블릭 클라우드를 아우르는 통합 플랫폼과 친숙한 도구, 서비스를 제공하는데요. 또한 오픈시프트 서버리스와 쿼커스 기능을 통해 클라우드 네이티브 애플리케이션 가속화를 위한 개발자 경험을 제공하는 게 강점입니다. 레드햇은 쿼커스를 통해 자바가 최신 클라우드 네이티브 애플리케이션 환경에 도입될 수 있도록 지원합니다.

 

레드햇 오픈시프트는 쿼커스, 오픈시프트 서버리스 등 개발자 기능부터 데이터센터에서 네트워크 에지, 퍼블릭 클라우드에 이르는 포괄적인 기술전략을 지원하는, 기업 디지털 전환의 핵심 플랫폼으로 알려져 있습니다.

 

이번 한빛미디어 쿼커스 쿡북 (Quarkus Cookboot)은 짧게 핵심에 집중하면서 쿼커스에 대해서 알아 갈 수 있습니다. 쿼커스의 전반적인 주제에 대해 빠르게 기능을 확인할 수 있는 다수의 예제 코드를 제공하는데요. 쿡북으로 구성되어 있어 특정 질문이나 쿠버네티스를 위한 네이티브 자바 솔루션을 담고 있습니다. 단순한 hello 출력부터 그랄VM을 활용해 네이티브 실행 파일을 빌드에 대한 개념들을 설명하고 있는데요. 하나씩 읽고 따라 하다 보면 자연스럽게 쿼커스의 강점을 배울 수 있습니다. 이뿐만 아니라 같은 소스 코드로 쿠버네티스에 배포합니다. 쿠버네티스로 이주하는지의 여부와 관계없더라도 여러분은 쿼커스에서 유용한 것을 발견할 것입니다.

 

전통적인 자바 프레임워크들이 크고, 복잡하고, 무거워서 배우는데 수개월 걸리는 반면, 쿼커스는 여러분이 이미 알고 있는 지식을 기반으로 되어 있는데요. 단 초급자를 위한 저서이기보단 자바와 자바기반의 응용프로그램 개발에 친숙하신 분, 전통적인 소프트웨어 개발 방법에 이해하고 정기적으로 머신 클러스터나 클라우드로 서비스를 배포하신 분들에 도움이 되는 저서입니다.

 

쿼커스 쿡북은 쿼커스를 소개하고 프로젝트 준비를 위한 기본내용을 담고 있으며, 쿼커스가 무엇인지 어떤 문제를 해결할 수 있는지 살펴봅니다. 그리고 쿠버네티스와 어떻게 통합하는지와 왜 개발자들이 이것을 즐겨 사용하는지 등 그 외 주목할 몇몇 기능들을 알아볼 수 있습니다.

 

다음으로 쿼커스의 프로젝트 구조를 생성하는 법, 프로젝트 뼈대를 잡아주는 다양한 방법을 제공합니다. 이뿐만 아니라 CDI부터 이클립스 마이크로프로파일의 개념을 사용하는 쿼커스 가장 기본적인 부분들을 소개합니다. 응용 프로그램 패키징에 대해서도 담고 있습니다.

 

7장부터 14장은 어렵지만 그만큼 중요한 개념인 장애 허용, 영속성, 보안 및 다른 서비스들과 연동에 관해 설명하고 있습니다. 쿼커스와 쿠버네티스의 추가적인 통합에 대해서까지 배울 수 있습니다. 마지막 장으로 쿼커스를 사용한 리액티브프로그래밍과 템플릿, 스케줄링과 OpenAPI와 같은 쿼커스의 부가 기능까지 있습니다.

 

컨테이너와 쿠버네티스로의 이동은 우리가 자바 기반의 응용프로그램을 코딩하고 배포하고 유지하는 방식의 변화를 이끌고 있는데요. 쿼커스의 장점은 도커와 쿠버네티스와의 쉬운 통합, 빠른 시작 시간, 낮은 상주 세트 크기(RSS) 메모라와 개발자 생산성의 향상할 수 있습니다. 

 

이번 쿼커스 쿡북을 통해 인터넷 찾을 수 있는 것보다는 더 많은 예제와 개발 방법(how-to)을 탐구하고, 모든 예제는 자체로 동작하고 바로 사용 가능함으로 결과를 보면서 바로 확인 할 수 있습니다. 또한, 번역본이 아닌 쿼커스 공식 홈페이지(https://quarkus.io/guides/)를 통해 주제별로 풍부한 안내 문서가 있어 참고하시면 도움이 될 것입니다.

 

쿼커스 쿡북의 예제코드는 깃허브 (https://github.com/yudong80/quarkus_cookbook)에서 다운 받을수있습니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

KakaoTalk_20210523_220220826.jpg

 

요즘 스프링 부트를 공부하고 있어서 백엔드 분야로 관심이 많다.

그래서 신청 도서 중 자바언어와 스프링을 사용하여 엔터프라이즈용 서비스를 개발하는 방법인 쿼커스 쿡북을 선택했다.

 

책은 쿼커스 응용프로그램을 어떻게 개발하는지 환경구성부터 배포까지 한 사이클을 설명해준다.

그렇다고 입문자용 책은 아닌것 같다. 전체적으로 중급자용 레벨인 것 같고, 쿠버네티스를 이용하여 쿼커스 서비스를 배포하기 때문에 

전체적인 그림은 그려볼 수 있는 책인 것 같다. 

 

책을 다 읽으면 쿼커스에 대한 전반적인 이해를 할 수 있으며, 쿼커스가 지향하는 방향을 알 수 있을 것이라 생각한다.

 

클라우드 및 배포 인프라에 관심을 많이 갖고있는 사람들은 한번쯤 읽어보는 것을 추천한다.

 

unnamed.jpg

 

이 책을 보기 전 쿼커스라는 걸 알기 전에 자바, 스프링, 클라우드 개념이 필요합니다.

 

하지만 엄청 어려운 내용으로 되어있는거도 아닌지라서 책을 보고 따라하시면 도움이 될거라고 봅니다.

 

단순히 자바 스프링만을 공부하고 배포 운영 쪽에도 공부를 시작하려는 분들에게도 유익한 내용이 되지 않을까 싶습니다.

 

다소 어렵고 생소한 용어가 나오기는 하지만 그런거도 익혀가면서 문제를 해결하는 내용이 정말 마음에 들었습니다.

 

 쿼커스라는게 많이 사용되어지면 더 빛을 바랠 책이 아닐까 싶습니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

quarkus_cookbook.jpeg

 

 
안녕하세요 괴짜 개발자 namedboy 입니다.
 
오늘 제가 소개해드릴 책은 쿼커스쿡북이라는 책입니다.
한빛 미디어에서 나온 번역본이고 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
 
요즘은 클라우드 서비스를 쓰지 않고 개발을 하는건 참 어려운 세상이죠.
클라우드를 통해 개발을 하면서 많은 효율성을 가져다 주었고 그로 인해 개발자분들의 생산성도 많이 증가되었죠.
그런 이유들 때문에 단순한 서비스에도 클라우드를 많이 쓰는 것 같습니다.
 
클라우드를 쓰다보면 쿠버네티스 혹은 가상화 시스템 얘기를 많이 들으실텐데 최근에 거의 표준에 가깝게 쓰이고 있는것이 바로 쿠버네티스 입니다.
쿠버네티스는 설정이 복잡하지만 실제로 사용했을 때 적은 메모리와 CPU 사용률을 보여주기 때문에 요즘은 많은 시스템 구성에서 기본에 가깝게 사용하고 있습니다.
 
복잡한 시스템 구성도를 그리기 위해서는 필수적인 요소 중 하나가 되었습니다.
하지만 복잡한 설정 때문에 사용자 친화적이지는 않은 것도 사실 입니다.
 
쿼커스는 쿠버네티스에서 필요한 여러 설정들 중에 처음에 시작하기에는 조금 과한 부분을 제거 하거나 자동화 하면서 더 심플하게 시작할 수 있도록 도와줍니다.
쿼커스를 처음 시작하면서는 도커 컨테이너를 생성하는데 필요한 파일들이 기본으로 만들어지고 그랄VM이나 OpenJDK JVM 위에서 동작할 수 있도록 설정이 됩니다.
 
이렇게 만들어진 작은 단위의 쿼커스는 작은 크기의 컨테이너로 빠르게 실행되어 사용하는 입장에서 더 빠르게 코드를 작성할 수 있는 상태로 만들어줍니다.
개발자라면 인프라를 설정하는 것보다는 코드를 개발하는데 더 노력을 쏟고 싶은 법이죠.
 
책을 보면 쿼커스를 기반으로 프로젝트를 시작할 수 있는 기본 구성부터 어떻게 실행하면 되는지까지 친절하게 알려주고 있습니다.
아마도 개발자라면 무리 없이 따라할 수 있는 것은 물론이고 책을 보면서 하나씩 하다 보면 금새 쿼커스를 하고 계실꺼라 생각합니다.
그만큼 심플하게 시작할 수 있게 되어 있어 사용하는 유저 입장에서는 놀라울 따름이었습니다.
 
몇년 전 스프링부트로 API 서버를 처음 실행시킬 때도 상당히 편하다는 느낌을 받았었는데, 
이제는 쿠버네티스를 활용한 단계에서도 간단히 API 서버를 만들고 실행시킬 수 있는 단계로 왔다는 것이 기술의 개선속도가 느껴집니다.
심지어 간편하기까지 하죠.
 
명령어 두번이면 간단한 API서버가 만들어집니다.
그것도 쿠버네티스를 활용해서 말이죠.
 
당연한 얘기이겠지만 책을 통해 더 많은 것들을 할 수 있습니다.
명령어 두번으로 API서버를 실행시켜보는 것은 초반 40장 정도만 읽어도 충분히 가능하고, 그 외에 개발모드 설정이나 HTTP나 HTTPS를 사용하다 보면 항상 괴롭히는 CORS 설정, 그리고 개발 할 때 정말 기본중에 기본인 로그 설정, 빌드, 배포 인프라적인 내용과 데이터베이스를 연결해서 시스템화 하는 부분을 포함하여 인증이나 권한 스프링 프레임워크의 연동 그리고 그 외에 필요한 배치 기능들을 쿼커스 부가 기능을 통해 풀어낼 수 있도록 제공하고 있습니다.
 
이 책 한권이면 쿼커스의 시작부터 일반적인 서비스 레벨의 수준까지 개발이 가능해보입니다.
그것도 최신 기술을 활용해서 말이죠.
 
쿼커스를 활용해서 API 서버를 개발해보고자 하시는 분들은 [링크] 를 확인해보시기 바랍니다.

 

쿠버네티스와 MSA 가 최근 트렌드로 변화하면서 개발에 필요한 리소스를 더 효율적으로 관리하고 각 산출물에 대한 더 높은 확장성이 요구되어 지고 있다.

 

이 책은 도입 초반 중반까지 그러한 요구에 맞춰 어떻게 쿼커스 응용프로그램을 개발하는지 (환경 구성 , 코드 작성 , 테스트 , 패키징 , 배포까지) [문제] [해결] 방식으로 예제 코드를 제시해주는 방식으로 설명을 해준다.

 

중간에 [논의]가 나오는데 실제 쿼커스를 도입하며 마주할 수 있는 부분에 대한 문제와 해결방향을 제시해준다.

 

중반부에서는 챕터10부터 쿼커스 응용프로그램을 쿠버네티스와 통합하여 쿼커스 서비스를 개발하고 배포하는데 
필요한 방법들을 알려준다.

컨테이너 이미지 빌드 및 쿠버네티스 리소스 관리와 쿼커스 서비스를 배포하기까지 전반적인 그림을 잡을수 있다고 생각된다. 

 

많은 자바 개발자들이 기존의 레거시한 어플리케이션에 대해 MSA 로 전환을 생각하고 있는 부분이 있다면
쿼커스를 사용하면 더 이후 유지보수 및 관리에도 진화를 이룰수 있다고 생각된다.

 

 

쿠버네티스는 최근에 기업용 응용프로그램을 배포하는 사실상의 표준 플랫폼입니다. 컨테이너와 쿠버네티스로의 이동은 우리가 자바 기반의 응용프로그램을 코딩하고 배포하고 유지하는 방식의 변화를 이끌어내었습니다. 만약 적절한 도구가 없다면 자바 응용프로그램을 컨테이너화하고 실행하는 데 애를 먹을 수 있습니다. PODS에 있는 컨테이너는 쿠버네티스의 기본단위로, 자바 기반의 응용프로그램을 올바르게 컨테이너화하는 방법을 잘 이해하는 것은 각종 함정과 시간 낭비와 혼란의 시간을 피하는 데 매우 중요합니다.

쿼커스는 쿠버네티스와 긴밀하게 통합되어 있는 클라우드 네이티브 프레임워크입니다. 쿼커스는 오픈소스 스택으로 아파치 라이선스 2.0으로 배포되며, GraalVM과 OpenJDK 핫스팟에 최적화된 쿠버네티스 네이티브 응용프로그램을 생성할 수 있도록 돕습니다. Hibername, Eclipse MicroProfile, k8s, Apache Camel, Eclipse Vert.x와 같은 널리 알려진 라이브러리와 기술에 기반하고 있습니다.

Quarkus Cookboot(쿼커스 쿡북)은 쿼커스를 사용하기 위한 가이드북이며, 처음 사용하는 사람도 어렵지 않게 따라 할 수 있도록 실습을 포함하고 있습니다. 우선 쿼커스 소개와 프로젝트 준비로 시작하며, 이클립스에서 응용프로그램 패키징에 대해서도 다루고 있습니다. 후반부로 갈수록 내용이 심화되어 장애 허용, 영속성, 보안 등 다른 서비스들과의 연동에 대해 다루고 OpenAPI. 스케줄링, 리액티브 프로그래밍 같은 부가기능 또한 설명하고 있습니다.

쿼커스의 장점으로는 도커와 쿠버네티스와의 쉬운 통합, 빠른 시간, 낮은 상주 세트 크기(RSS) 메모리와 개발자 생산성의 향상이 있지만, Java 기반의 프레임워크여서 순수 개발자가 아닌 인프라 담당자에게는 처음에 다소 어려울 수 있다는 점과 코드와 컨테이너를 두루 알아야 능숙하게 사용할 수 있다는 점은 단점입니다.

오늘 리뷰할 도서는 [쿼커스 쿡북] 이다. 

 
 
쿼커스 ??? 아마 처음 들어보는 분들이 많을거라 생각한다.
 

표지 2021-05-22 23.36.16.jpg

 

 
내가 쿼커스를 처음 들어본건 작년 가을이었는데, 무엇인지 궁금해서 레드햇 사이트에 가서 소개를 읽어 봤었다.
 
뭔소리를 하는건지, 무엇에 쓰는 물건인지 감을 잡기가 어려웠다. 
 
이유는 레드햇 사이트에서 쿼커스에 대한 소개를 너무 추상적으로 작성해놔서였다.
 
그런데 이번에 번역서로 나온김에 보게 되었다. 이 책 앞부분을 잠깐 보면서 쿼커스가 뭔지 바로 이해하게 되었다.
 
일단 위의 도서 소개 링크에 나온대로 이 책은 "중고급" 대상이다. 그리고 "쿡북" 이다.
 
"쿡북" 은 초보자를 위해서 하나 하나 자세히 설명하는 것이 아니라, 
 
특정 질문이나 이슈에 대해 솔루션을 제시하는 방식으로 구성된다.
 
"초급자" 들은 이 책을 피하기를 바란다. 이 책은 자바로 엔터프라이즈용 개발에 경험이 있고,
 
게다가 클라우드에 대한 지식도 있는 사람들을 위한 책이다. 
 
표지에 "쿠버네티스를 위한 네이티브 자바 솔루션" 이라고 소개 하고 있다. 쿠버네티스에 대한 내용도 알아야 한다.
 
쿼커스를 간단하게 정리하면 클라우드를 위한 스프링 프레임워크의 대체물이라고 볼 수 있다.
 
쿼커스에도 엔터프라이즈용 개발에 필요한 왠만한 내용은 다 포함되어 있는듯 하다.
 
그러면서도 메모리를 아주 작게 사용할 수 있는 장점이 있다. 리소스가 곧 비용 청구가 되는 클라우드 환경에 맞도록 !

그랄VM에 대해서도 자세히는 아니지만 언급이 되어 있으니 알아두어야 할 것이다.
 
기존 스프링 사용자들은 어찌 되는가? 다행히도 책의 후반부에 스프링에 대한 부분도 있으니 걱정할 필요 없다.
 
 

스프링 연동 2021-05-22 23.34.16.jpg

 

 
책의 상당 부분이 소스 설명이 많아 좀 거시기 할수도 있다. 그렇지만 개발에 대한 내용을 설명하려면 어쩔수 없겠지.
 
 

소스 설명 2021-05-22 23.36.03.jpg

 

 
쿼커스에 대한 좀 더 쉬운 책이 출판되고 쿡북이 나왔으면 좋았겠지만, 
 
애시당초 쿼커스를 다루는 책이 별로 없고, 국내에 출판된 것은 이번이 처음 이라는 점에 의미를 두는 것이 좋을거 같다.
 
이제 책을 좀 봤고 쿼커스 관련 개발 업무를 하는게 아닌지라 아직 확신할수는 없지만...
 
왠지 몇년뒤에는 많은 사람들이 쿼커스 기반으로 개발을 하고 있지 않을까 예상한다.
 
 
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
쿼커스 쿡북
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
쿼커스 쿡북
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
쿼커스 쿡북
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1