본문 바로가기
컴퓨터/Software Architecture

[Clean Architecture] 컴포넌트 응집도: 3가지 원칙

by mikasaAck 2023. 2. 26.
728x90

intro

어떤 클래스를 어떤 컴포넌트에 포함시켜야 할까?

컴포넌트 응집도 관련 3가지 원칙이 있다.

https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FY93C5%2FbtqWKjjLYmj%2FAAAAAAAAAAAAAAAAAAAAAIaoyATA0OkNeV3uu6bM-DypKFAMKMFMDEjWvQWCsUXN%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1769871599%26allow_ip%3D%26allow_referer%3D%26signature%3Dgjp5YBvRXj1%252F5Qbu5rjsVqfdOjo%253D

 

REP(Reuse/Release Equivalence Principle)

Reuse 단위는 Release 단위와 같다.

하나의 컴포넌트로 묶인 클래스와 모듈은 반드시 함께 릴리스할 수 있어야 한다.

이는 컴포넌트 단위로 릴리즈 하라는 의미로 이해해도 될까?

 

CCP(Common Closure Principle)

동일한 시점에 동일한 이유로 변경되는 것들을 하나의 컴포넌트로 묶어야 한다.

SOLID 원칙 중에 SRP(단일책임원칙), Open-Close 원칙의 포괄적인 내용이다.

  • 컴포넌트 단에서 변경의 이유는 하나여야 한다. 즉, 동일한 시점에 동일한 이유로 변경되는 클래스들은 하나의 컴포넌트에 속해야 한다. (SRP 원칙 확장)
  • 동일한 유형의 변경에 대해 닫혀있는 클래스들을 하나의 컴포넌트로 묶어라. (Open-Close 원칙 확장)

 

CRP(Common Reuse Principle)

같이 사용되지 않는 클래스들은 다른 컴포넌트로 분리해야 한다.

SOLID 원칙 중에 ISP(인터페이스 분리 원칙)의 포괄적인 내용이다.

 

TODO

1. REP와 CCP는 컴포넌트를 크게 만든다. CRP는 컴포넌트를 작게 만든다. 두 개의 상충하는 내용을 어떻게 균형을 잡아야 할까?

728x90
반응형