본문 바로가기
728x90
반응형

📙/Study21

[만들면서 배우는 클린 아키텍처] 07. 아키텍처 요소 테스트하기 육각형 아키텍처의 테스트 전략테스트 피라미드비용이 많이 드는 테스트는 지양하고 비용이 적게 드는 테스트를 많이 만들어야 한다. 이 테스트는 하나의 단위(일반적으로 하나의 클래스)가 제대로 동작하는지 확인할 수 있는 단위 테스트들이다. 테스트 피라미드는 테스트가 비싸질수록 테스트의 커버리지 목표는 낮게 잡아야 한다는 것을 보여준다. 그러지 않으면 기능을 만드는 것보다 테스트를 만드는 데 시간을 더 쓰게 되기 때문이다.   단위 테스트피라미드의 토대. 일반적으로 하나의 클래스를 인스턴스화하고 해당 클래스의 인터페이스를 통해 기능들을 테스트한다. 만약 다른 클래스에 의존한다면 의존되는 클래스들은 인스턴스화하지 않고 테스트하는 동안 목(mock)으로 대체한다.통합 테스트연결된 여러 유닛을 인스턴스화하고 시작점이.. 2024. 10. 15.
[만들면서 배우는 클린 아키텍처] 06. 영속성 어댑터 구현하기 의존성 역전애플리케이션 서비스에서는 영속성 기능을 사용하기 위해 포트 인터페이스를 호출한다. 이 포트는 실제로 영속성 작업을 수행하고 데이터베이스와 통신할 책임을 가진 영속성 어댑터 클래스에 의해 구현된다.영속성 어댑터는 아웃고잉 어댑터다. 애플리케이션에 의해 호출될 뿐 애플리케이션을 호출하지는 않는다.포트는 애플리케이션 서비스와 영속성 코드 사이의 간접적인 계층으로 영속성 코드를 리팩터링 하더라도 코어 코드를 변경하지 않아도 된다. 자연스럽게 런타임에도 의존성은 애플리케이션 코어에서 영속성 어댑터로 향한다. 포트가 계약을 만족하는 한 코어에 영향을 미치지 않으면서 영속성 코드를 마음껏 수정할 수 있다.영속성 어댑터의 책임영속성 어댑터가 하는 일1. 입력을 받는다포트 인터페이스를 통해 입력을 받는다. 입.. 2024. 10. 14.
[만들면서 배우는 클린 아키텍처] 05. 웹 어댑터 구현하기 육각형 아키텍처에서는 외부 세계와의 모든 커뮤니케이션은 어댑터를 통해 이루어진다.의존성 역전웹 어댑터는 인커밍 어댑터이다. 외부로부터 요청을 받아 애플리케이션 코어를 호출하고 무슨 일을 해야 할지 알려준다.애플리케이션 계층은 웹 어댑터가 통신할 수 있는 특정 포트를 제공한다. 서비스는 이 포트를 구현하고 웹 어댑터는 이 포트를 호출할 수 있다.그림처럼 웹 어댑터가 유스케이스를 직접 호출할 수 있지만 의존성 역전 원칙을 적용한 이유는 뭘까애플리케이션 코어가 외부 세계와 통신할 수 있는 곳에 대한 명세가 포트이기 때문이다. 포트를 적절한 곳에 위치시키면 외부와 어떤 통신이 일어나고 있는지 정확히 알 수 있고, 유지보수할 때 유용하다.웹 소켓을 통해 실시간 데이터를 사용자의 브라우저로 보내는 경우 웹 어댑터에.. 2024. 10. 12.
728x90
반응형