만들면서 배우는 클린 아키텍처3 [만들면서 배우는 클린 아키텍처] Chapter10. 아키텍처 경계 강제하기 10. 아키텍처 경계 강제하기 1. 경계와 의존성 아키텍처의 경계와 '경계를 강제한다는 것'의 의미를 알아보자. 아키텍처의 경계를 강제한다는 것은 의존성이 올바른 방향을 향하도록 강제하는 것. 가장 안쪽 계층 도메인 엔티티 도메인 엔티티에 접근하는 애플리케이션 계층 유스케이스 구현 어댑터 인커밍 포트를 통해 서비스 접근 서비스 아웃고잉 포트를 통해 어댑터 접근 설정 계층 어댑터 & 서비스 객체 생성용 팩터리 포함 의존성 주입 매커니즘 제공 의존성은 항상 안쪽으로 향해야 한다. 2. 접근 제한자 package-private 제한자의 중요성 패키지를 통해 클래스들을 응집된 모듈로서 만들어준다. 패키지 바깥 서는 접근 불가. 모듈 진입용 클래스만 따로 public으로 만들면 된다. 경계간 외부로.. 2022. 11. 15. [만들면서 배우는 클린 아키텍처] Chapter9. 애플리케이션 조립하기 9. 애플리케이션 조립하기 1. 조립까지 신경 써야 하는 이유 코드의 의존성은 항상 안쪽으로, 도메인 코드 방향으로 향해야 안전함. 설정 컴포넌트 (configuration component)가 필요 아키텍처에 중립적 인스턴스 생성을 위해 모든 클래스의 의존성을 가짐 설정 컴포넌트의 역할 웹 어댑터 인스턴스 생성 HTTP 요청이 실제로 웹 어댑터로 전달되도록 보장 유스케이스 인스턴스 생성 웹 어댑터에 유스케이스 인스턴스 제공 영속성 어댑터 인스턴스 생성 유스케이스에 영속성 어댑터 인스턴스 제공 영속성 어댑터가 실제로 데이터베이스에 접근할 수 있도록 보장 이러한 작업은 단일 책임 원칙을 위반하는게 맞다. 애플리케이션의 모든 부품을 알고 있기 때문. 2. 평범한 코드로 조립하기 package com.book.. 2022. 11. 11. [만들면서 배우는 클린 아키텍처] Chapter6. 영속성 어댑터 구현하기 CH 6. 영속성 어댑터 구현하기 1. 의존성 역전 서비스가 영속성 기능을 사용하기 위해 포트 인터페이스를 호출 육각형 아키텍처에서 영속성 어댑터는 주로 아웃고잉 어댑터 => 앱에서 호출하기 때문, 반대의 경우는 없다. 포트는 앱과 영속성 사이의 간접적 계층 영속성 문제에 신경쓰지 않고 도메인 코드 개발 목적 영속성 계층에 코드 의존성을 없앰 이럴 경우, 영속성 코드를 변경하더라도 코어 코드에 영향이 없음 런타임에도 여전히 앱이 영속성 코드에 의존하고 있다. 인터페이스 계약을 만족하는 한 영속성 코드 수정은 문제가 없다. 2. 영속성 어댑터의 책임 입력을 받는다. 주로 도메인 엔티티, DB 연산 전용 객체 입력을 데이터베이스 포맷으로 매핑한다. JPA Entity 객체 매핑 JPA를 제외한 기술도 고려 .. 2022. 10. 31. 이전 1 다음 반응형