헥사고날 아키텍처 설계와 구현 (자바와 쿼커스를 활용한 빠르고 생산성 높은 애플리케이션 구축)

헥사고날 아키텍처 설계와 구현 (자바와 쿼커스를 활용한 빠르고 생산성 높은 애플리케이션 구축)

$28.00
Description
리팩터링, 확장, 유지보수하기 쉬운 시스템 개발을 위한 헥사고날 애플리케이션 구축 실용 가이드!
헥사고날 아키텍처는 기술 코드와 비즈니스 코드의 분리, 변경에 더 잘 견디는 소프트웨어, 그리고 많은 양의 리팩터링 없이도 새로운 기술의 발전 및 통합을 허용해 개발자의 생산성을 향상시킨다. 헥사고날 원칙을 고수함으로써, 코드를 이해하고 유지보수에 필요한 노력을 줄이는 방법으로 소프트웨어를 구조화할 수 있다.

이 책은 엔티티, 유스케이스, 포트와 어댑터 같은 헥사고날 아키텍처의 기반 요소에 대한 심도 깊은 분석으로 시작해, 도메인 헥사곤에서 비즈니스 코드를 결합하는 방법, 애플리케이션 헥사곤에서 포트와 유스케이스를 사용해 기능을 만드는 방법, 프레임워크 헥사곤에서 어댑터를 사용해 소프트웨어를 다양한 기술과 호환이 되게 만드는 방법 등을 배운다. 또한 모든 헥사고날 아키텍처의 기반 요소를 적용하는 실제 시나리오를 기반으로 시스템을 직접 개발해 본다.
아울러 헥사고날 시스템을 만들어 보면서 자바 모듈을 사용해 의존성 역전을 강화하고 아키텍처 내의 각 헥사곤에서 격리를 보장하는 방법과 쿼커스를 사용해 헥사고날 애플리케이션을 클라우드 네이티브 시스템으로 바꾸는 방법도 알려준다.

이 책이 끝날 무렵이면, 복잡하고 오랫동안 지속되는 애플리케이션의 개발에 질서와 온전함을 가져올 수 있을 것이다.
저자

다비비에이라

DaviVieira
다비비에이라는소프트웨어설계,개발,아키텍처분야에서대규모기업이직면한문제에깊은관심을갖고있는소프트웨어장인이다.다비는객체지향언어를사용해복잡하고오래계속되는사업에필수적인시스템(missioncriticalsystem)의구축및유지관련분야에서10년이상의경력을갖고있다.그는자신보다선배들이남긴훌륭한교훈과소프트웨어개발전통을귀중하게여긴다.이러한소프트웨어전통에서영감을얻어자신의아이디어를개발하고발전시키고있다.

목차

[1부]아키텍처핵심기초

▣01장:왜헥사고날아키텍처인가?
기술요구사항
소프트웨어아키텍처검토
__보이지않는것들
__악순환
__아키텍처는모두를위한것이아니다
__모놀리식시스템과분산시스템
__의사결정
헥사고날아키텍처이해
__도메인헥사곤
__애플리케이션헥사곤
__프레임워크헥사곤
__헥사고날접근방식의장점
요약
연습문제
더읽을거리

▣02장:도메인헥사곤으로비즈니스규칙감싸기
기술요구사항
엔티티를활용한문제영역모델링
__도메인엔티티의순수성
__관련엔티티
__UUID를이용한식별자정의
값객체를통한서술력향상
애그리게잇을통한일관성보장
도메인서비스활용
정책패턴과명세패턴을활용한비즈니스규칙처리
POJO를통한비즈니스규칙정의
요약
연습문제
더읽을거리

▣03장:포트와유스케이스를통한동작처리
기술요구사항
유스케이스를통한소프트웨어동작표현
__유스케이스작성방법
입력포트를갖는유스케이스구현
출력포트를이용한외부데이터처리
__어디에출력포트를사용하는가?
애플리케이션헥사곤을통한동작자동화
요약
연습문제
더읽을거리

▣04장:외부와상호작용하는어댑터만들기
기술요구사항
어댑터이해
드라이빙오퍼레이션허용을위한입력어댑터사용
__입력어댑터생성
다양한데이터소스와통신하기위한출력어댑터사용
__출력어댑터생성
요약
연습문제
더읽을거리

▣05장:드라이빙오퍼레이션과드리븐오퍼레이션의본질탐색
기술요구사항
드라이빙오퍼레이션을통한헥사고날애플리케이션에대한요청호출
__웹애플리케이션을헥사고날시스템에통합
__테스트에이전트실행
__애플리케이션간의헥사고날시스템호출
드리븐오퍼레이션을통한외부리소스처리
__데이터지속성
__메시징과이벤트
__모의서버
요약
연습문제

[02부]헥사곤을활용한견고한기반구축

▣06장:도메인헥사곤만들기
기술요구사항
도메인헥사곤생성
문제영역이해
값객체정의
엔티티와명세정의
__Equipment와Router추상엔티티
__코어라우터엔티티와명세
__에지라우터와명세
__스위치엔티티와명세
도메인서비스정의
__라우터서비스
__스위치서비스
__네트워크서비스
도메인헥사곤테스트
요약
연습문제

▣07장:애플리케이션헥사곤만들기
기술요구사항
애플리케이션헥사곤생성
유스케이스정의
__라우터관리유스케이스에대한디스크립션작성
__라우터관리를위한유스케이스인터페이스정의
__스위치관리유스케이스를위한디스크립션생성
__스위치관리를위한유스케이스인터페이스정의
__네트워크관리자유스케이스에대한디스크립션생성
__네트워크관리를위한유스케이스인터페이스정의
입력포트를갖는유스케이스구현
__애플리케이션헥사곤테스트
요약
연습문제

▣08장:프레임워크헥사곤만들기
기술요구사항
프레임워크헥사곤부트스트래핑
출력어댑터구현
__라우터관리출력어댑터
__스위치관리출력어댑터
입력어댑터구현
__라우터관리입력어댑터
__스위치관리입력어댑터
__네트워크관리입력어댑터
프레임워크헥사곤테스트하기
요약
연습문제

▣09장:자바모듈을이용한의존성역전적용
기술요구사항
JPMS소개
헥사고날시스템에서의존성역전
__유스케이스와입력포트를통한서비스제공
출력포트와출력어댑터를통한서비스제공
입력어댑터가추상화에의존하게만들기
자바플랫폼의ServiceLoader클래스를사용해JPMS공급자구현체검색하기
__RouterManagementGenericAdapter초기화하기
__SwitchManagementGenericAdapter초기화
__NetworkManagementGenericAdapter초기화
요약
연습문제
더읽을거리

[03부]아키텍처핵심기초

▣10장:모듈화된헥사고날애플리케이션에쿼커스추가
기술요구사항
JVM다시살펴보기
__JIT컴파일러를통한런타임성능향상
__AOT컴파일을통한시작시간개선
쿼커스소개
__JAX-RS를통한REST엔드포인트생성
__쿼커스DI를통한의존성주입
__객체의유효성검증
__데이터소스구성및하이버네이트ORM사용
모듈화된헥사고날애플리케이션에쿼커스추가
요약
연습문제

▣11장:CDI빈즈를활용한포트와유스케이스관리
기술요구사항
쿼커스DI배우기
__빈으로작업하기
포트,유스케이스,어댑터를CDI빈으로변환
__라우터관리객체에대한CDI구현
__스위치관리객체에대한CDI구현
__네트워크클래스와인터페이스를위한CDI구현
쿼커스와큐컴버를통한유스케이스테스팅
요약
연습문제

▣12장:RESTEasy리액티브를활용한입력어댑터구현
기술요구사항
서버요청을처리하는방법
__명령형접근방식
__반응형접근방식
RESTEasy리액티브를통한입력어댑터구현
__라우터관리를위한리액티브입력어댑터구현
__스위치관리를위한리액티브입력어댑터구현
__네트워크관리를위한리액티브입력어댑터구현
OpenAPI와스웨거UI추가
리액티브입력어댑터테스트
요약
연습문제

▣13장:출력어댑터와하이버네이트리액티브를이용한데이터유지
기술요구사항
하이버네이트리액티브와파나쉬소개
__하이버네이트리액티브기능
__파나쉬기능
__액티브레코드패턴적용
__리포지토리패턴적용
출력어댑터에대한반응형동작활성화
__반응형데이터소스구성
__엔티티구성
__반응형리포지토리클래스구현
__반응형출력어댑터구현
__MySQL출력어댑터에대한반응형라우터관리
__MySQL출력어댑터에대한반응형스위치관리
반응형출력어댑터테스트
요약
연습문제

▣14장:클라우드배포를위한Dockerfile과쿠버네티스객체설정
기술요구사항
도커이미지준비
__우버.jar아티팩트를통한도커이미지생성
__네이티브실행파일을통한도커이미지생성
쿠버네티스객체생성
__쿠버네티스의주요객체
__헥사고날시스템을위한쿠버네티스객체구성
미니큐브에배포
요약
연습문제

▣15장:헥사고날애플리케이션을위한모범설계실천법
기술요구사항
DDD를이용한도메인헥사곤생성
__비즈니스의이해
__지식증대를위한협업촉진
__도메인헥사곤구축을위한DDD기법적용
__헥사고날시스템에서의바운디드컨텍스트와서브도메인구현
포트와유스케이스의필요성
다양한어댑터의범주처리
결론-헥사고날여정
요약
연습문제

▣모범답안

출판사 서평

★이책에서다루는내용★

◎명세디자인패턴을활용한비즈니스규칙알고리즘의결합
◎강력한도메인모델생성을위한도메인주도설계기법과헥사고날원칙의결합
◎시스템이REST,gRPC,웹소켓같은다양한프로토콜을지원하기위한어댑터의사용방법
◎헥사고날원칙에기반한모듈과패키지구조생성
◎의존성역전의적용과소프트웨어컴포넌트사이의격리를보장하기위한자바모듈의활용
◎입력및출력포트의수명주기관리를위한쿼커스DI구현