[정보처리기사] 모듈에 대해서 알아보자

2025. 2. 16. 13:00정보처리기사

728x90
반응형

 

 안녕하세요. 진득 코딩입니다.

 

 프로그래밍을 하게 되면 모듈화를 한다거나 모듈마다 무엇을 한다는 등 모듈이라는 단어에 대해 많이 듣게 됩니다.

 

 이번 시간에는 정보처리기사 시험을 대비한 모듈에 대한 개념 정리를 해보도록 하겠습니다.

 

 모듈(Module)

 

  • 모듈은 모듈화를 통해 분리된 시스템의 각 기능으로, 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등을 의미합니다.

  • 모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립됨을 의미합니다.

  • 모듈의 독립성은 결합도(Coupling)와 응집도(Cohesion)에 의해 측정됩니다.

결합도(Coupling)

 

  • 결합도는 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계입니다.

  • 결합도가 약할수록 품질이 높고, 강할수록 품질이 낮습니다.

  • 결합도의 종류와 강도

자료 결합도
(데이터 결합도)
스탬프 결합도 제어 결합도 외부 결합도 공통 결합도 내용 결합도

 

  • 자료 결합도가 가장 결합도가 약하고 내용 결합도로 갈수록 결합도가 점점 강해집니다.


 ** 결합도의 종류 외우는 방법

 "테()형 쟤() 왜() 저래, 유랑 가 닮았데."

 

결합도의 종류

 

종류 내용
 자료 결합도
 (Data Coupling)
 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도
 스탬프(검인) 결합도
 (Stamp Coupling)
 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 규조가 전달될 때의 결합도
 제어 결합도
 (Control Coupling)
 - 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호나 제어 요소를 전달하는 결합도
 - 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 하위 모듈이 상위 모듈에게 처리 명령을 내리는 권리 전도 현상이 발생하게 됨
 외부 결합도
 (External Coupling)
 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도
 공통(공유) 결합도
 (Common Coupling)
 - 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
 - 파라미터가 아닌 모듈 밖에 선언된 전역 변수를 사용하여 전역 변수를 갱신하는 방식으로 상호작용하는 때의 결합도
 내용 결합도
 (Content Coupling)
 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도

 

응집도(Cohesion)

 

  • 응집도는 모듈의 내부 요소들이 서로 관련되어 있는 정도입니다.

  • 응집도가 강할수록 품질이 높고, 약할수록 품질이 낮습니다.

  • 응집도의 종류와 강도

우연적 응집도 논리적 응집도 시간적 응집도 절차적 응집도 교환(통신)적
응집도
순차적 응집도 기능적 응집도

 

  • 우연적 응집도가 가장 응집도가 강하고 기능적 응집도로 갈수록 응집도가 점점 약해집니다.


 ** 응집도의 종류 외우는 방법

 "리 놀()던 시절에 먹던 통한 가 막히게 맛있었지"

 

응집도 종류

 

종류 내용
 우연적 응집도
 (coincidental Cohesion)
 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도
 논리적 응집도
 (Logical Cohesion)
 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
 시간적 응집도
 (Temporal Cohesion)
 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
 절차적 응집도
 (Procedural Cohesion)
 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
 교환(통신)적 응집도
 (Communication Cohesion)
 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도
 순차적 응집도
 (Sequential Cohesion)
 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
 기능적 응집도
 (Functional Cohesion)
 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도

 

팬인(Fan-In) / 팬아웃(Fan-Out)

 

  • 팬인은 어떤 모듈을 제어하는 모듈의 수입니다.

  • 팬아웃은 어떤 모듈에 의해 제어되는 모듈의 수를 의미합니다.

팬인/팬아웃

 

  • 위 그림에서 A기준으로 A로 들어오는 화살표가 없고 나가는 화살표는 3개가 있습니다.

  • 그래서 A의 팬인은 0이고, A의 팬아웃은 3입니다.

  • 같은 방식으로 구해보면 팬인은 A는 0, B, C, D, E, G, H는 1, F는 3입니다.

  • 팬아웃은 E, G, H는 0, C, D는 1, B, F는 2, A는 3입니다.

N-S 차트(Nassi-Schneiderman Chart)

 

  • N-S 차트는 논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법입니다.

  • 박스 다이어그램, Chapin Chart라고도 합니다.

  • GOTO나 화살표를 사용하지 않습니다.

 

  • N-S차트는 연속, 선택 및 다중 선택, 반복의 3가지 제어 논리 구조로 표현합니다.

  • N-S차트를 사용하면 위와 같이 도형들을 시각적으로 명확히 식별하는 데 적합합니다.
728x90
반응형
LIST