728x90
Coupling이란 서로 다른 모듈이 다른 모듈에게 의존하는 정도를 따지는 것이다. 낮아야 좋다!
한 모듈이 변경 되었을 때 다른 모듈도 전부 변경해야 한다면 매우 불편할 것이다...
1️⃣ Data Coupling
Data Coupling에는 두 조건이 있다.
1. 두 모듈은 호출할 때 인자로 소통한다.
2. 인자는 구조체가 아닌 기본 데이터로 형성된다.
2️⃣ Stamp Coupling
구조체로 정보를 전달한다. 결합도를 낮추려면 구조체가 아닌 필요한 정보만 전달하면 된다.
3️⃣ Control Coupling
모듈끼리 전달하며 사용하는 데이터가 실제 데이터가 아닌 제어 요소로만 사용되는 형태다.
간단하게 예를 들어, if문을 조절하는 flag 변수를 서로 주고 받는 상황이다.
if문 안에 있는 두 기능을 아예 나누어 사용하면 coupling이 낮아진다.
4️⃣ Common Coupling
두 모듈이 전역변수를 공용으로 사용한다.
5️⃣ Content Coupling
한 모듈이 실행되는 도중에 다른 모듈의 기능을 사용하는 형태다.
고급 언어(Java 등)에서는 찾아보기 힘들고 어셈블리 언어에서 종종 나온다...
728x90
'공부 > 소프트웨어공학' 카테고리의 다른 글
[디자인패턴] 싱글톤(Singleton) 패턴이란? (0) | 2024.11.08 |
---|---|
[소프트웨어공학] SOLID 원칙에 대하여 (0) | 2024.05.13 |
[소프트웨어공학] Cohesion(응집도)란? (0) | 2024.04.19 |
[소프트웨어공학] Lean Startup이란 (0) | 2024.04.06 |
[소프트웨어공학] 테스팅 환경 (E2E, Integration, Unit) (0) | 2024.03.29 |