본문 바로가기
728x90
반응형

아키텍처12

[만들면서 배우는 클린 아키텍처] 10. 아키텍처 경계 강제하기 경계와 의존성             경계를 강제한다는 것은 의존성이 올바른 방향을 향하도록 강제하는 것을 의미한다.점선 화살표: 잘못된 방향을 가리키는 의존성 접근 제한자public, protected, prifate, package-private(default) 제한자가 있다.package-private 제한자는 자바 패키지를 통해 클래스들을 모듈로 만들어준다. 패키지 내에 있는 클래스들은 서로 접근 가능하지만 바깥에서는 접근할 수 없다. 모듈 진입점으로 활용될 클래스들만 public으로 만들면 의존성이 잘못된 방향을 가리킬 위험이 줄어든다.O 표시: private-package Class+ 표시: public Class 영속성 어댑터는 자신이 구현하는 아웃고잉 포트를 통해 접근되므로 private-p.. 2024. 10. 18.
[만들면서 배우는 클린 아키텍처] 09. 애플리케이션 조립하기 왜 조립까지 신경 써야 할까?코드의 의존성이 올바른 방향을 가리키게 하기 위해서 유스케이스와 어댑터를 그냥 필요할 때 인스턴스화하면 안된다.유스케이스가 영속성 어댑터를 호출하고 스스로 인스턴스화 한다면 코드 의존성이 잘못된 방향으로 만들어진 것이다. 이것이 아웃고잉 포트 인터페이스를 생성한 이유다. 유스케이스는 인터페이스만 알아야 하고, 런타임에 이 인터페이스의 구현을 제공받아야 한다. 객체 인스턴스를 생성할 책임은 누구에게 있을까? 그리고 어떻게 의존성 규칙을 어기지 않으면서 그렇게 할 수 있을까? 설정 컴포넌트(configuration component)아키텍처에 대해 중립적이고 인스턴스 생성을 위해 모든 클래스에 대한 의존성을 가지는 컴포넌트 역할- 웹 어댑터 인스턴스 생성- HTTP 요청이 실제로.. 2024. 10. 17.
[만들면서 배우는 클린 아키텍처] 07. 아키텍처 요소 테스트하기 육각형 아키텍처의 테스트 전략테스트 피라미드비용이 많이 드는 테스트는 지양하고 비용이 적게 드는 테스트를 많이 만들어야 한다. 이 테스트는 하나의 단위(일반적으로 하나의 클래스)가 제대로 동작하는지 확인할 수 있는 단위 테스트들이다. 테스트 피라미드는 테스트가 비싸질수록 테스트의 커버리지 목표는 낮게 잡아야 한다는 것을 보여준다. 그러지 않으면 기능을 만드는 것보다 테스트를 만드는 데 시간을 더 쓰게 되기 때문이다.   단위 테스트피라미드의 토대. 일반적으로 하나의 클래스를 인스턴스화하고 해당 클래스의 인터페이스를 통해 기능들을 테스트한다. 만약 다른 클래스에 의존한다면 의존되는 클래스들은 인스턴스화하지 않고 테스트하는 동안 목(mock)으로 대체한다.통합 테스트연결된 여러 유닛을 인스턴스화하고 시작점이.. 2024. 10. 15.
728x90
반응형