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)  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)