모듈 구현이란?
소프트웨어를 기능 단위로 분해하여 개별적으로 구현하는 것을 말한다.
효과적인 모듈화를 하려면 어떻게 해야 할까?🤔
결합도를 낮추고, 응집도를 높여 모듈의 독립성을 강화한다.
결합도
모듈과 모듈 간의 관련성/의존성 정도를 나타낸다. 그렇기 때문에 결합도가 낮을수록 좋다.
- 자료(데이터) 결합도(Data Coupling) : 값 전달
- 스탬프 결합도(Stamp Coupling) : 배열 등 전달
- 제어 결합도(Control Coupling) : 제어 요소 전달
- 외부 결합도(External Coupling) : 다른 모듈 변수 사용
- 공통 결합도(Common Coupling) : 전역변수 사용
- 내용 결합도(Content Coupling) : 다른 모듈 기능 이용
✔️ 암기 방법(결합도는 점점 높아짐)
데(테)스형 제(쟤) 외(왜)저래 나보고 공유 닮았내(녜)
응집도
모듈 내부에서 구성요소 간에 밀접한 관계를 맺고 있는 정도를 나타낸다. 그렇기 때문에 응집도가 높을수록 좋다.
- 우연적 응집도 : 연관관계 없음
- 논리적 응집도 : 유사한 성격
- 시간적 응집도 : 같은 시간 기능 수행
- 절차적 응집도 : 순차적 수행
- 통신적 응집도 : 동일한 입력, 출력
- 순차적 응집도 : 출력값을 입력값으로 사용
- 기능적 응집도 : 단일한 목적 수행
✔️ 암기 방법(응집도는 점점 높아짐)
우리가 논(놀)던 시절 통통한 순대 기가 막혔지
'Study > Computer Science' 카테고리의 다른 글
| [디자인 패턴] GoF(Gang of Fours) 디자인 패턴 종류와 특징 (0) | 2024.07.24 |
|---|---|
| [자료구조] 시간 복잡도, 공간 복잡도 (0) | 2024.07.18 |
| [네트워크] 서브넷 계산 (0) | 2024.07.12 |
| [Database] 키(Key)의 개념 및 종류 (0) | 2024.06.26 |
| [Database] 정규화 (0) | 2024.05.15 |