모듈(Module)
- 크기와 상관없이 클래스나 패키지, 라이브러리 등 프로그램을 구성하는 임의의 요소
- 프로그램을 구성하는 시스템을 기능 단위로 독립적인 부분으로 분리한 것
- 단순히 규모가 큰 것을 작게 여러 개로 나눈 조각이 아니라, 하나 이상의 논리적인 기능을 수행하기 위한 명령어들의 집합
응집도(Cohesion)
- 모듈에 포함된 내부 요소들이 하나의 책임/ 목적을 위해 연결되어 있는 연관된 정도
- 응집도가 높으면, 변경 대상과 범위가 명확해지는 장점이 있어서 코드를 수정하기 쉬워진다.
- 높은 응집도 : A 모듈 안에 a 라는 기능을 위해 모여있고 긴밀하게 연결되어 협력하고 있다.
- 낮은 응집도 : A 모듈이 아닌 곳에 a 기능들이 흩어져 있다던가 또는 A 모듈에 a 기능 외에 b, c, d 기능들도 섞여서 복잡하게 구현되어 있다.
결합도(Coupling)
- 모듈이 다른 모듈에 의존하는 정도의 척도
- 높은 결합도 : 유지보수를 위해 b 기능을 수정하려면 b 기능이 모여있는 B 모듈을 수정해야 한다. 그러나 b 기능이 다른 모듈들(A, D, E, F, I, E)과 연관되어 있다면, 다른 모듈의 소스도 확인해야 한다. 경우에 따라 다른 모듈들까지 수정해야 할 수도 있으므로, 유지보수 작업이 더욱 복잡하고 어려워질 수 있다.
- 낮은 결합도 : A 모듈은 다른 모듈들을 참조하는 부분이 거의 없다.
좋은 소프트웨어
- 모듈의 독립성이 높다.
- 낮은 결합도를 가지고 있다.
- 높은 응집도를 유지한다.
'안드로이드 > Android' 카테고리의 다른 글
[Android] 프로그램(Program), 프로세스(Process), 스레드(Thread) (0) | 2024.12.11 |
---|---|
[Android] 빌드, MultiDex (0) | 2024.11.30 |
[Android] 이미지 최적화(로드 개선) (0) | 2024.11.12 |