본문 바로가기

sdp3

아키텍처 - 정책과 수준 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 개요 소프트웨어 시스템 및 아키텍처를 정책이라는 관점에서 무엇인지 생각해보고, 여태까지 살펴보았던 내용을 돌이켜보자. 소프트웨어 시스템이란 입력을 출력으로 변환하는 과정의 정책을 상세하게 기술한것이다. 또한 하나의 큰 정책은 작은 여러 정책으로 나누어지며 아키텍처라는것은 이런 정책을 분리 및 재배치 한다. 같은 시점에 같은 이유로 변경되는 것들을 하나의 컴포넌트로 모으고, 다른 시점에 다른 이유로 변경된다면 분리한다. 하나의 컴포넌트는 다른 컴포넌트에 의존한다. 컴포넌트를 정점으로, 의존성을 방향이 있는 간선으로 본다면 방향그래프로 나타낼 수 있다. 이 때 비순환이 되도.. 2021. 2. 10.
컴포넌트 결합 - SDP(안정된 의존성 원칙) - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 개요 더 안정된쪽으로 의존하라. 프로그램이 완성되거나 유지보수됨에 따라 설계는 계속 변한다. 초기에 변동성이 큰 컴포넌트를 만들었다고 가정하자. 추후 변경이 쉽지 않은 컴포넌트가 변동성이 큰 쪽에 의존한다면 어떨까? 변동성이 큰 컴포넌트를 변경하면 변경이 쉽지 않은 컴포넌트도 영향을 받으므로 변경이 어렵게 된다. SDP(안정된 의존성 원칙)를준수하면 변경하기 어려운 모듈이 변경이 쉬운 모듈에 의존하지 않도록 만들 수 있다. - 안정성 안정성이란 여러가지 의미가 될 수 있다. 책을 세웠다고 가정해보자. 이 책을 쓰러트리려면 대단한 수고를 들여야할까? 그렇지 않다. 손가락 .. 2021. 2. 10.
UML - 패키지 다이어그램 - 개요와 의존 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 패키지 다이어그램 UML 에서 패키지는 어떤 구성요소라도 더 높은 수준의 단위로 묶을 수 있도록 해주는 구조이다. 각각의 패키지는 네임스페이스를 나타내는데, 이는 모든 클래스가 자신이 속한 패키지내에서 유일해야 한다는 소리이다. 어떤 클래스가 어디에 속하는지를 완벽하게 알기 위해서는 완전한 이름(fully qualified name)을 사용해야 한다. UML 에서 패키지 이름을 나타낼때에는 :: 을 사용한다. Date는 System::Date 와 같이 될 것이다. - 패키지와 의존 규모가 큰 시스템에서는 패키지 다이어그램을 보아야 그 시스템의 구조를 제어할 수 있다. 패키지 다이어그램은 패키지간의 의존을 보여준다. A .. 2021. 2. 10.