이번에 올라왔던 우아한 스터디에 지원했었다. 여러 스터디가 있었지만 "헥사고날 아키텍쳐로 구현하는 작은 스프링 부트 토이 프로젝트" 스터디에 지원하였다. 애초에 클린 아키텍처에 관심이 많았고, 언젠가 헥사고날 아키텍처도 한번 공부해보고 싶었기 때문에 너무 좋은 기회라고
맨 위의 웹 계층에서 요청을 받는다.도메인 혹은 비즈니스 계층에 있는 서비스로 요청을 보낸다.서비스에서는 필요한 비즈니스 로직을 수행한다.이때 도메인 엔티티의 현재 상태를 조회하거나 변경하기 위해 영속성 계층의 컴포넌트를 호출한다.잘 만들어진 계층형 아키텍처는 선택의
일반적인 해석 → “하나의 컴포넌트는 오로지 한 가지 일만 해야 하고, 그것을 올바르게 수행해야 한다.”실제 정의 → “컴포넌트를 변경하는 이유는 오직 하나뿐이어야 한다.”이것이 좀 더 SRP의 목적에 부합한 설명!책임 → ‘변경할 이유’로 해석!아키텍처에서 SRP의
코드를 구성하는 몇 가지 방법을 소개한다.소개할 예시들은 송금 서비스 BuckPal에 대한 것들이다.특히 사용자가 본인의 계좌에서 다른 계좌로 돈을 송금할 수 있는 ‘송금하기’ 유스케이스에 대해 살펴본다.웹, 도메인, 영속성 계층 각각에 해당하는 전용 패키지인 web,
헥사고날 아키텍처에서 유스케이스를 구현하기 위해 이 책에서 제시하는 방법을 설명한다.도메인 중심의 아키텍처에 적합하기 때문에 도메인 엔티티를 만드는 것으로 시작한 후 도메인 엔티티를 중심으로 유스케이스 구현!예제에서 한 계좌에서 다른 계좌로 송금하는 유스케이스를 구현!
이번장은 웹 인터페이스를 제공하는 어댑터의 구현 방법을 알아본다.웹 어댑터는 외부로부터 요청을 받아 애플리케이션 코어를 호출한다.제어 흐름은 웹 어댑터에 있는 컨트롤러에서 애플리케이션 계층에 있는 서비스로 흐른다.애플리케이션 계층은 웹 어댑터가 통신할 수 있는 특정 포
의존성을 역전시키기 위해 영속성 계층을 애플리케이션 계층의 플러그인으로 만드는 방법을 알아보자!코어의 서비스가 영속성 어댑터에 접근하기 위해 포트를 사용, 해당 포트는 영속성 어댑터가 구현하는 형태이다.포트는 영속성 작업을 수행하고 DB와 통신할 책임을 가진 영속성 어
업로드중..만드는 비용이 적고, 유지보수하기 쉽고, 빨리 실행되고, 안정적인 작은 크기의 테스트들에 대해 높은 커버리지를 유지해야한다.테스트가 비싸질수록 테스트의 커버리지 목표는 낮게 잡아야한다. 그렇지 않으면 새로운 기능을 만드는 것보다 테스트를 만드는데 시간을 더
포트 인터페이스가 도메인 모델을 입출력 모델로 사용하면 두 계층 간의 매핑을 할 필요가 없다.즉, 웹 계층과 애플리케이션 계층, 영속성 계층 모두 도메인 모델인 Account에 접근하는 것이다.물론 책의 그림상으로는 연결되어 있지 않지만, 실제 코드를 작성하면 어쩔 수
모든 의존성은 애플리케이션의 도메인 코드 방향으로 향해야 도메인 코드가 바깥 계층의 변경으로부터 안전하다!유스케이스가 영속성 어댑터를 직접 호출하고 스스로 인스턴스화 한다면 의존성 방향이 잘못되게 된다.이것을 해결하기 위해 우리는 아웃고잉 포트 인터페이스를 도입했다.유