본문 바로가기

CCP3

아키텍처 - 정책과 수준 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 개요 소프트웨어 시스템 및 아키텍처를 정책이라는 관점에서 무엇인지 생각해보고, 여태까지 살펴보았던 내용을 돌이켜보자. 소프트웨어 시스템이란 입력을 출력으로 변환하는 과정의 정책을 상세하게 기술한것이다. 또한 하나의 큰 정책은 작은 여러 정책으로 나누어지며 아키텍처라는것은 이런 정책을 분리 및 재배치 한다. 같은 시점에 같은 이유로 변경되는 것들을 하나의 컴포넌트로 모으고, 다른 시점에 다른 이유로 변경된다면 분리한다. 하나의 컴포넌트는 다른 컴포넌트에 의존한다. 컴포넌트를 정점으로, 의존성을 방향이 있는 간선으로 본다면 방향그래프로 나타낼 수 있다. 이 때 비순환이 되도.. 2021. 2. 10.
컴포넌트 결합 - ADP(의존성 비순환 원칙) - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 개요 컴포넌트 의존성 그래프에 순환이 있어서는 안 된다. 소스를 수정한 후, 테스트를 하고 뿌듯한 마음으로 퇴근을 하였다. 그런데 다음날 회사에 와서 보니 소스가 수정한대로 동작하지 않는다. 이게 뭔일이지 하고 원인을 추적해보니 다른사람이 고친 부분때문에 내 코드가 동작하지 않는다. 작은 프로젝트에서는 이런일이 일어날 가능성이 작고, 일어난다고 해도 금방 고칠 수 있다. 하지만 프로젝트가 크면 문제가 심각해진다. 이를 위한 해결책에 두 가지 방법이 있다. 첫번째는 주 단위 빌드이며, 두번째는 의존성 비순환 원칙(ADP)이다. - 주 단위 빌드 주 단위 빌드 과정은 다음과.. 2021. 2. 10.
컴포넌트 - 응집도(REP, CCP, CRP) - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - https://adriancitu.com/tag/the-reuse-release-equivalence-principle/ - 개요 우리는 프로그램을 개발할 때 어떤 클래스를 어떤 컴포넌트에 포함시킬것이가에 대해 진지하게 생각해보지 않는다. 사실은 엔지니어링 원칙을 고려해보면서 생각해보아야 하지만 몰라서 고려하지 않을 수도 있고, 귀찮아서 하지 않을 수도 있다. 컴포넌트 응집도에는 아래와 같이 세 가지의 원칙이 있다. REP: 재사용/릴리스 등가 원칙 CCP: 공통 폐쇄 원칙 CRP: 공통 재사용 원칙 - REP: 재사용/릴리즈 등가 원칙 재사용 단위는 릴리스 단위와 같다.. 2021. 2. 10.