반응형

만들면서 배우는 클린 아키텍처 4

[만들면서 배우는 클린 아키텍처] 8장, 9장, 10장 정리

8장 경계 간 매핑하기각 계층의 모델을 매핑하는 것에 대한 논쟁매핑에 찬성하는 개발자 : 두 계층 간에 매핑을 하지 않으면 양 계층에서 같은 모델을 사용해야 하는데 이렇게 하면 두 계층이 강하게 결합된다.매핑에 반대하는 개발자 : 두 계층 간에 매핑을 하게 되면 보일러플레이트 코드를 너무 많이 만들게 되어서 많은 유스케이스들이 오직 CRUD만 수행하고 계층에 걸쳐 같은 모델을 사용하기 때문에 계층 사이의 매핑은 과하다.'매핑하지 않기' 전략웹 계층에서 웹 컨트롤러가 SendMoneyUseCase 인터페이스를 호출해 유스케이스를 실행한다. 이 인터페이스는 Account 객체를 인자로 가진다. 웹 계층과 애플리케이션 계층 모두 Account 클래스에 접근한다 (두 계층이 같은 모델을 사용)반대쪽의 영속성 계..

etc 2024.09.14

[만들면서 배우는 클린 아키텍처] 7장 정리

7장 아키텍처 요소 테스트하기 (육각형 아키텍처에서의 테스트 전략)테스트 피라미드테스트 피라미드에 따르면 비용이 많이 드는 테스트는 지양하고 비용이 적게 드는 테스트를 많이 만들어야 한다. 테스트의 기본 전제는 만드는 비용이 적고, 유지보수가 쉽고, 빨리 실행되고, 안정적인 작은 크기의 테스트들에 대해 높은 커버리지를 유지해야 한다.단위 테스트는 피라미드의 토대에 해당하며 일반적으로 하나의 클래스를 인스턴스화하고 해당 클래스의 인터페이스를 통해 기능들을 테스트한다. 만약 테스트 중인 클래스가 다른 클래스에 의존한다면 의존되는 클래스들은 인스턴스화하지 않고 테스트하는 동안 필요한 작업들을 흉내 내는 mock 으로 대체한다.통합 테스트는 연결된 여러 유닛을 인스턴스화하고 시작점이 되는 클래스의 인터페이스로 ..

etc 2024.09.14

[만들면서 배우는 클린 아키텍처] 5장, 6장 정리

5장 웹 어댑터 구현하기의존성 역전웹 어댑터는 '주도하는' 혹은 인커밍 어댑터다. 그림을 살펴보면 의존성 역전 원칙이 적용된 것을 발견할 수 있다.어댑터와 유스케이스 사이에 또 다른 간접 계층을 넣어야 하는 이유는 애플리케이션 코어가 외부 세계와 통신할 수 있는 곳에 대한 명세가 포트이기 때문이다. 위 사진에서는 어댑터가 엄밀히 말하면 아웃고잉 포트의 역할까지 같이 수행한다.5장에서는 웹 어댑터가 일반적인 인커밍 어댑터 역할만 한다고 가정한다.웹 어댑터의 책임웹 어댑터의 일반적인 역할은 다음과 같다HTTP 요청을 자바 객체로 매핑권한 검사입력 유효성 검증입력을 유스케이스의 입력 모델로 매핑유스케이스 호출유스케이스의 출력을 HTTP로 매핑HTTP 응답 반환웹 어댑터는 URL, HTTP 메서드, 컨텐츠 타입..

etc 2024.09.14

[만들면서 배우는 클린 아키텍처] 1장, 2장, 3장, 4장 정리

1장 계층형 아키텍처의 문제는 무엇일까?계층형 아키텍처는 크게 3가지 레이어로 나뉜다. 웹, 도메인, 영속성 레이어다. 계층을 잘 이해하고 구성한다면 웹 계층이나 영속성 계층에 독립적으로 도메인 로직을 작성할 수도있고, 도메인 로직에 영향을 주지 않고 웹 계층과 영속성 계층에 사용된 기술을 변경할 수 있다. 그리고 기존 기능에 영향을 주지 않고 새로운 기능을 추가할 수도 있다.잘 만들어진 계층형 아키텍처는 선택의 폭을 넓히고, 변화하는 요구사항과 외부 요인에 빠르게 적응할 수 있게 해준다. 그렇다면 계층형 아키텍처의 문제점은 무엇일까계층형 아키텍처는 코드에 나쁜 습관들이 스며들기 쉽게 만들고 시간이 지날수록 소프트웨어를 점점 더 변경하기 어렵게 만드는 많은 허점들이 있다.계층형 아키텍처는 데이터베이스 주..

etc 2024.09.14
반응형