클린 아키텍처 : 자바 코드로 구현하는 클린 웹 애플리케이션,만들면서 배우는

클린 아키텍처 : 자바 코드로 구현하는 클린 웹 애플리케이션,만들면서 배우는

$18.00
Description
우리 모두는 낮은 개발 비용으로 유연하고 적응이 쉬운 소프트웨어 아키텍처를 구축하고자 한다. 그러나 불합리한 기한과 쉬워보이는 지름길은 이러한 아키텍처를 구축하는 것을 매우 어렵게 만든다.

이 책에서는 전통적인 계층형 아키텍처(layered architecture) 스타일과 이 스타일의 단점을 논하는 것부터 시작해, 로버트 마틴(Robert C. Martin)의 클린 아키텍처(clean architecture)와 알리스테어 콕번(Alistair Cockburn)의 육각형 아키텍처(hexagonal architecture)에서 이야기하는 도메인 중심 아키텍처의 장점에 대해 이야기한다. 그러고 나서 실제 코드에서 어떻게 육각형 아키텍처를 구현하는지를 보여주기 위한 실습 단원으로 넘어가, 실습을 통해 육각형 아키텍처의 다양한 계층 간 매핑 전략들을 자세히 알아보고 아키텍처의 요소들을 어떻게 애플리케이션에 녹여낼 것인지 배운다. 이어지는 몇 개의 장에서는 아키텍처 경계를 강제하는 방법에 관해 살펴본다. 또, 어떤 지름길이 어떤 종류의 기술 부채를 만들고, 어떤 경우에 이러한 부채를 기꺼이 질 가치가 있는지 배운다.

이 책을 읽고 나면 육각형 아키텍처 스타일의 애플리케이션을 만드는 데 필요한 모든 지식을 알게 될 것이다.
저자

톰홈버그

저자:톰홈버그
10년이넘는세월동안다양한업계의고객들을위해수많은소프트웨어프로젝트를진행한전문적이고열정적인소프트웨어엔지니어다.주로자바생태계에서소프트웨어개발자,아키텍트,멘토로일했다.글을쓰는것이배움의가장좋은방법임을발견하고,혼란한소프트웨어개발의세계에구조를부여할수있는글을쓰기위해소프트웨어프로젝트에서당면했던주제들에대해서깊게파고드는것을좋아한다.자신의블로그인에정기적으로글을쓰고,이따금컨퍼런스에서연사로서기도한다.

역자:박소은
어제보다나은코드를짜기위해노력하는개발자

목차

▣01장:계층형아키텍처의문제는무엇일까?
___계층형아키텍처는데이터베이스주도설계를유도한다
___지름길을택하기쉬워진다
___테스트하기어려워진다
___유스케이스를숨긴다
___동시작업이어려워진다
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?

▣02장:의존성역전하기
___단일책임원칙
___부수효과에관한이야기
___의존성역전원칙
___클린아키텍처
___육각형아키텍처(헥사고날아키텍처)
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?

▣03장:코드구성하기
___계층으로구성하기
___기능으로구성하기
___아키텍처적으로표현력있는패키지구조
___의존성주입의역할
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?

▣04장:유스케이스구현하기
___도메인모델구현하기
___유스케이스둘러보기
___입력유효성검증
___생성자의힘
___유스케이스마다다른입력모델
___비즈니스규칙검증하기
___풍부한도메인모델vs.빈약한도메인모델
___유스케이스마다다른출력모델
___읽기전용유스케이스는어떨까?
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?
___의존성역전

▣05장:웹어댑터구현하기
___웹어댑터의책임
___컨트롤러나누기
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?
___의존성역전

▣06장:영속성어댑터구현하기
___영속성어댑터의책임
___포트인터페이스나누기
___영속성어댑터나누기
___스프링데이터JPA예제
___데이터베이스트랜잭션은어떻게해야할까?
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?

▣07장:아키텍처요소테스트하기
___테스트피라미드
___단위테스트로도메인엔티티테스트하기
___단위테스트로유스케이스테스트하기
___통합테스트로웹어댑터테스트하기
___통합테스트로영속성어댑터테스트하기
___시스템테스트로주요경로테스트하기
___얼마만큼의테스트가충분할까?
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?

▣08장:경계간매핑하기
___'매핑하지않기'전략
___'양방향'매핑전략
___'완전'매핑전략
___'단방향'매핑전략
___언제어떤매핑전략을사용할것인가?
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?
___왜조립까지신경써야할까?

▣09장:애플리케이션조립하기
___평범한코드로조립하기
___스프링의클래스패스스캐닝으로조립하기
___스프링의자바컨피그로조립하기
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?
___경계와의존성

▣10장:아키텍처경계강제하기
___접근제한자
___컴파일후체크
___빌드아티팩트
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?

▣11장:의식적으로지름길사용하기
___왜지름길은깨진창문같을까?
___깨끗한상태로시작할책임
___유스케이스간모델공유하기
___도메인엔티티를입출력모델로사용하기
___인커밍포트건너뛰기
___애플리케이션서비스건너뛰기
___유지보수가능한소프트웨어를만드는데어떻게도움이될까?

▣12장:아키텍처스타일결정하기
___도메인이왕이다
___경험이여왕이다
___그때그때다르다