컴포넌트 원칙 (Component Principles)
Robert C. Martin 제안한 컴포넌트 원칙으로
총 6가지인데 컴포넌트 응집성(Cohesion), 결합(Coupling) 관점으로 나눌 수 있다.
📌 컴포넌트 응집성(Cohesion) 원칙
1) REP (Reuse/Release Equivalence Principle, 재사용/릴리스 등가 원칙)
2) CCP (Common Closure Principle, 공통 폐쇄 원칙)
3) CRP (Common Reuse Principle, 공통 재사용 원칙)
📌 컴포넌트 결합(Coupling) 원칙
1) ADP (Acyclic Dependencies Principle, 비순환 의존성 원칙)
2) SDP (Stable Dependencies Principle, 안정된 의존성 원칙)
3) SAP (Stable Abstractions Principle, 안정된 추상화 원칙)
📌 컴포넌트 응집성(Cohesion) 원칙
REP (Reuse/Release Equivalence Principle, 재사용/릴리스 등가 원칙)
• “재사용 단위는 릴리스 단위와 같아야 한다.”
• 컴포넌트는 재사용 가능한 단위일 뿐 아니라 버전 관리되고 릴리스 가능한 단위여야 한다.
CCP (Common Closure Principle, 공통 폐쇄 원칙)
• 같은 이유로 변경되는 클래스들은 한 컴포넌트에 모으고
다른 이유로 변경되는 클래스들은 분리하라.”
• 패키지에도 SRP(Single Responsibility Principle)를 적용하는 것.
• 변경 파급효과를 최소화하는 설계 원칙.
CRP (Common Reuse Principle, 공통 재사용 원칙)
• 함께 재사용되는 클래스만 같은 컴포넌트에 포함시켜라.
불필요한 의존성을 줄이고, 꼭 같이 쓰이는 것들만 묶어서 재사용성 높임
📌 컴포넌트 결합(Coupling) 원칙
ADP (Acyclic Dependencies Principle, 비순환 의존성 원칙)
• 컴포넌트 의존성 그래프에 순환(cycle)이 있어서는 안 된다.
순환 의존성이 생기면 빌드/배포가 꼬이고, 변경 시 영향 범위가 커짐.
• DIP(의존성 역전 원칙)를 활용해 추상화된 인터페이스를 중간에 두는 방법 사용하는 편
(❌) Component A → Component B → Component C → Component A
(⭕) Component A → Component B → Component C
SDP (Stable Dependencies Principle, 안정된 의존성 원칙)
• 안정성이 높은 컴포넌트에 의존하라.
• 자주 바뀌는 불안정한 컴포넌트가 안정된 핵심 컴포넌트에 의존해야 함
SAP (Stable Abstractions Principle, 안정된 추상화 원칙)
• 안정된 컴포넌트는 추상화 수준도 높아야 한다.
• 바꾸기 어려운 안정된 컴포넌트가 구체적(Concrete) 클래스만 많으면 확장 어려움.
따라서 안정된 컴포넌트일수록 추상화(Interface, Abstract class) 통해 유연성 확보
객체 지향 프로그래밍 5대 원칙 [SOLID]
객체지향 프로그래밍에는 「SOLID」 원칙이 있다. 유연하고 확장성이 있는 코드 재사용에 목적을 둔다. • SRP (Single Responsibility Principle, 단일책임) • OCP (Open-Closed Principle, 개방-폐쇄 원칙) • LSP (L
zoosso.tistory.com
'까망 동네 > 클린 코드' 카테고리의 다른 글
| [Clean Code] Comment Tags (4) | 2025.02.20 |
|---|---|
| [클린코드] 객체와 자료구조 (0) | 2022.07.19 |
| [클린코드] 형식 (Format) (0) | 2022.07.18 |
| [클린코드] 함수 Function (0) | 2022.07.18 |
| [클린코드] 주석 Comment (0) | 2022.07.18 |
댓글