모듈(Module)와 모듈화란?
모듈(Module)
-
모듈 : 소프트웨어 설계에서 기능단위로 분해하고 추상화 되어 재사용 및 공유 가능한 수준으로 만들어진 단위
-
모듈화 : 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법
일반적 모듈과 문제를 다룰 때 모듈화의 의미
1. 일반적으로 모듈 이란?
-
보다 작고 이해할 수 있는 단위로 나뉘어진 것
-
본체에서 분리되어 작은 부분으로 유기적으로 구성되어 있다가, 필요할 때 본체에 합류하여 그 기능을 수행할 수 있는 것
-
통상, 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체로 본다
2. 문제를 다룰 때 모듈화란?
-
모듈화는, 거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 과정
-
여기서, 작게 나누어진 각 부분을 모듈이라고 한다
- 각 모듈은 논리적 또는 기능적으로 분리되어 격리되고 독립적인 일을 수행
-
모듈의 특성
-
Unity (한가지 일만 수행)
-
Smallness (간단명료)
-
Simplicity (단순성)
-
Independency (독립성) 등
모듈화의 장점
-
프로그램의 효율적인 관리 및 성능 향상
-
전체적인 소프트웨어 이해의 용이성 증대 및 복잡성 감소
-
소프트웨어 시험, 통합, 수정 시 용이성 제공
-
기능의 분리가 가능, 인터페이스가 단순
-
오류의 범위를 최소화
-
모듈의 재사용 가능으로 개발과 유지보수가 용이
프로그래밍에서, 모듈 이란?
-
소프트웨어 묶음을 만들고, 코드를 네임스페이스로써 구분하는 메커니즘
-
자바 언어 -> 패키지는 여러 클래스들의 모음, 모듈은 여러 패키지들의 모음
-
기타 언어 -> 모듈은 기능(함수)별로 여럿을 하나로 정리/모으거나 분할하는 것
-
-
통상적으로 구조가, 여러 기능들을 하나로 모으고, 이들이 공유하는 데이터들로써 구성됨
-
패키지, 모듈 등은 파일 단위로 정의되어 import 방식이 대부분이다
프로그래밍에서, 모듈화, 캡슐화 비교
구조적 프로그래밍에서의 모듈화와 객체지향 프로그래밍에서의 캡슐화는 유사한 의미를 갖고있다.
그러나
-
캡슐화는 잘 설계된 모듈에서 나오는 특성을 주로 의미한다
-
복잡하고 불필요한 부분 등을 사용자에게 안보이게 함
-
외부세계와 인터페이스를 잘 할 수 있도록 표준화시킨 포장
-
참고자료