CS/SW Engineering

모듈과 아키텍처

브리오 2024. 8. 11. 16:57

모듈이란 비슷하거나  연관성 있는 것들로 이루어진 메소드나 클래스의 집합입니다.

자동차로 예를 들자면 엔진을 이루고 있는 구성품들의 집합을 엔진이라고 하고 엔진을 모듈이라고 할 수 있습니다. 여기서 구성품들은 클래스나 메소드들을 가르킵니다. 결론은 재사용이 가능한 코드의 모음이라고 보면 됩니다. 모듈은 코드의 재사용 및 유지보수를 쉽게 하여줍니다. 그래서 우리는 프로그램을 만들때 모듈화하여 만들고 있습니다.


컴포넌트란는 기능의 최소 단위입니다.

우리가 프로그램을 만들때 재사용하기 위해서 모듈화하여 사용한다고 하였습니다.

재사용하기 위해선 독립적인 기능을 가져야합니다. 하지만 독립적으로 개발하여도 모듈간의 호환이 되지 않는 경우가 있습니다. 그렇다면 소프트웨어의 재사용이 어려워지게 됩니다. 그런 문제를 해결하기 위한 방법이 컴포넌트이고 컴포넌트는 소프트웨어의 재사용을 위한 일종의 개발 방법입니다.


 

모듈과 컴포넌트 둘다 하나의 기능을 가지고 소프트웨어의 재사용하기 위해 사용합니다. 의미가 비슷하지만 둘의 차이점이 있습니다. 모듈은 구조의 최소 단위, 정적인 구조를 가지고 컴포넌트는 런타임에 독립적으로 배포되고 실행 되는 단위입니다.

 

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

 

하나의 서버가 10개의 클라이언트에게 정보를 제공할 때, 모듈은 서버와 클라이언트 2개를 가지지만 컴포넌트는 11개가 됩니다.