Module   모듈

(2023-04-25)

Modularity, 모듈성, 모듈화


1. 일반적으로, 모듈 이란?

  ㅇ 보다 작고 이해할 수 있는 단위로 나뉘어진 것

  ㅇ 본체(本體)에서 분리되어, 
     - 작은 부분으로 유기적으로(기능별로) 구성되어 있다가,
     - 필요할 때 마다, 본체에 합류하여 그 기능을 수행할 수 있는 것

  ㅇ 통상, 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체로 봄
     - 例) 각기 다른 여러 모듈 단위로 조립하여 전체를 완성 (모듈 조립)
     - 例) 표준화된 부품 (조립식 부품)


2. 문제를 다룰 때 모듈화 하는 이유는?

  ㅇ 모듈화는, 거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 과정
     - 여기서, 작게 나누어진 각 부분을 모듈이라고 함
        . 각 모듈은 논리적 또는 기능적으로 분리되어 격리되고 독립적인 일을 수행

  ㅇ 모듈화 과정의 잇점
     - 기본적인 것을 엮어서 복잡한 형상으로 짜맞추고, 
     - 이를 요약하여(간추리어) 이름을 짓는 등,
     - 더 높은 수준으로 만들어가면서 (추상화),
     - 큰 눈으로 시스템을 구조적으로 바로볼 수 있게 함


3. 모듈의 특성

  ㅇ Unity (한가지 일만 수행)
  ㅇ Smallness (간단명료)
  ㅇ Simplicity (단순성)
  ㅇ Independency (독립성) 등


4. 모듈화 장점

  ㅇ 수정 용이
  ㅇ 재사용성 용이
  ㅇ 유지관리 쉬움

  ※ 이때, 모듈간 호환성 고려 필요 => 표준화가 중요


5. [전산]  프로그래밍에서, 모듈 이란?소프트웨어 묶음을 만들고, 코드네임스페이스로써 구분하는 메커니즘
     - 언어별 例)
        . 자바 언어 : 패키지는 여러 클래스들의 모음이고, 모듈은 여러 패키지들의 모음
           .. (자바 : 모듈 > 패키지 > 클래스)
        . 기타 언어 : 모듈은 기능(함수)별로 여럿을 하나로 정리/모으거나 분할하는 것
           .. 통상, 다른 프로그램의 일부가 될 수 있는 유용한 내용들을 모아놓은 파일로써,
           .. 필요할 때 마다, 가져다 쓸 수 있도록 (재사용) 하기 위한 것
           .. [참고] ☞ 자바스크립트 모듈 참조

  ㅇ 모듈화 원칙
     - 개별 기능별로 하나의 완결된 구조를 가져야 함
     - 각 모듈별로 독립성을 가져야 함
     - 각 모듈은 반드시 입구,출구가 있어야 함

  ㅇ 모듈화 특징
     - 구조 : 여러 기능들을 하나로 모으고, 이들이 함께 공유하는 데이터들로써 구성됨
     - 용법 : 패키지,모듈 등을 파일 단위로 정의하여두고, 이를 가져오는(import) 방식이 대부분임
     - 장점 : 큰 기능(어플리케이션)을 작은 기능 단위로 나누어 관리 가능
        . 유지보수 용이, 코드의 가독성이 좋아지는 등

  ㅇ 모듈화의 평가 (분할된 모듈 간의 독립성 평가)
     - 결합도 (Coupling)
     - 응집력 (Cohesion)


6. [전산]  프로그래밍에서, 모듈화,캡슐화 비교

  ㅇ `구조적 프로그래밍 기법에서의 모듈화`와 `객체지향 프로그래밍 기법에서의 캡슐화`는
      유사한 의미를 갖으나, 
     - 모듈화는, 기능별로 구분되어 완결된 구조를 지니게 한 것을 의미하나,
     - 캡슐화는, 보다 잘 설계된 모듈에서 나오는 특성을 주로 의미함
        . 복잡하고 불필요한 부분 등을 사용자에게 안보이게 함
        . 외부세계와 인터페이스를 잘 할 수 있도록 표준화시킨 포장

공통/유사어 (ㅁ~ㅂ)
   1. 마스크 (mask)   2. 모듈 (module)   3. 모듈러스 (modulus)   4. 모드 (mode)   5. 모멘트 (moment)   6. 밀도 (density)   7. 방향성 (directional)   8. 버퍼 (buffer)   9. 본딩 (bonding)   10. 부하 (load)   11. 분해능 (resolving power)   12. 불확정성 (uncertainty)   13. 비 (比, specific)   14. 비교 (같음/닮음/다름)  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"