본문 바로가기
CS

[Python, CS] 모듈과 컴포넌트의 차이점

by KwonSoonBin 2022. 11. 18.

등장 배경

 소프트웨어의 소스코드가 방대해짐에 따라 관리하기가 어려워졌다 그 결과 코드의 구조화를 통해 정리정돈을 하게 되었고, 이러한 배경에서 모듈과 컴포넌트라는 코드 구조화 방식이 탄생했다. 

 

특징

 

모듈과 컴포넌트 둘다 하나의 기능을 가지고 소프트웨어의 재사용하기 위해 사용한다. 의미가 비슷하지만 이 둘은 차이점이 있다.

모듈은 구조의 최소 단위, 정적인 구조를 가지는 반면,  컴포넌트는 런타임에 독립적으로 배포되고 실행 되는 단위이다.

※ 런타임: 컴파일이 완료된 이후 사용자에 의해서 응용프로그램이 동작되어지는 때

 

ex)

Server-Client 시스템에서 하나의 서버가 3개의 클라이언트에게 정보를 제공하는 경우

실행 중인 소프트웨어는 서버 1개, 클라어언트 3개로 컴포넌트는 4개라 할 수 있다.

반면, 만들어진 산출물은 서버, 클라이언트이므로 모듈은 2개라 할 수 있다.

 

컴포넌트(Component)

"실행 중인 소프트웨어의 활동 단위 / 동작하는 모듈의 수 "

컴포넌트는 런타임 개체를 참조하고 가시성이 없는 단위이다. 실제로 운용 모델에서는 컴포넌트가 실행 가능한 바이너리 형식(0과 1의 집합)으로 전달된다고 한다. 따라서 컴포넌트는 실행 중인 소프트웨어의 활동 단위라 할 수 있다.

 

 

모듈(Module)

"만들어진 산출물의 구현 단위 / 실제 구현된 것"

모듈을 검색해보면 "가장 첫 번째, 그리고 가장 맨 앞에 위치하는 구현의 단위" 등의 애매한 정의가 나온다. 모듈은 코드를 구조화하는 방법에 대한 생각에서 나온 개념이다. 실질적으로 구현이 된 구현 단위와 산출물을 기준으로 삼는다. 따라서 모듈은 만들어진 산출물의 구현 단위라 할 수 있다.

 

참고 :

https://moneyraise123.tistory.com/2

 

댓글