12월, 2018의 게시물 표시

Clean Architecture with .net

이미지
안녕하십니까. 이 글은 Clean 에 대한 글이며 다음과 같은 자료를 참고하였습니다. 로버트 C. 마틴( Robert  C .  Martin )의 책인 Clean Architecture Youtube Clean Architecture with ASP.NET Core 2.1 Clean Architecture Clean Architecture Clean Architecture는 Hexagonal Architecture라고도 불리며 port and adapter 라고도 불리는 개념 입니다. 개인적으로 DDD, MSA를 공부하게 되는 일이 생겨서 공부하게 되었습니다. 아래 그림은 동영상의 Overview 피피티 입니다. 아래 그림의 원 모양을 경우에 따라서는 다각형으로 표현하여 이에 대하여 Hexagonal Architecture라고 부르고 각 Layer끼리의 연결은 port and adapter 형식으로 한다고 합니다. 각 레이어를 분리하여 이를 통하여 비즈니스 로직, 프레임워크 의존적인 로직, 데이터 베이스 로직, 뷰 로직등을 각각 분리 합니다. 각각 레이어 상의 의존성은 안쪽으로만 가능하도록 합니다. 각 Layer의 관계를 추상화, interface (port)로 연결하여 느슨한 결합이 가능하도록 합니다. Clean Architecture의 Core가 추상화 인듯 합니다.  이러한 분리를 통하여 원할한 테스트, 프레임 워크, 디비가 변동하여도 쉽게 변동 가능한 이점이 존재 합니다. Domain Layer 도메인 레이어는 아래와 같이 Entities, Value Object와 같은 도메인 객체를 표현 합니다. Annotation 데이터를 표현하는데에 있어서 보통 OOP 관점으로 데이터에 Annotation을 통하여 제약을 주곤 합니다. 발표자는 그러한 어노테이션 보다는 아래 코드와 같이 해당 로직을 바깥으로 빼는것을 추천 하였습니다.   --code-- --code-- 위와 같은