Skip to main content

모듈화란?

모듈화

프로그램을 기능 단위로 독립적인 부분으로 분리하는 과정이다. 이는 거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 것을 의미한다.

특징

모듈은 독립적으로 작동하는 프로그램, 함수, 또는 메소드일 수 있으며, 다른 요소들로부터 명확하게 구분되면서 독자적인 기능을 수행합니다. 각 모듈은 유일한 이름으로 식별될 수 있어야 하며, 다른 프로그램이나 모듈에서 호출해 사용할 수 있어야 합니다. 이들은 재사용 가능하고 독립적으로 컴파일될 수 있으며, 함수, 추상화된 자료, 객체, 메소드 등 다양한 형태로 존재할 수 있습니다.

장점

모듈화의 주요 장점으로는 프로그램의 복잡도를 줄이고 프로젝트의 흐름을 이해하기 쉽게 만들어 주며, 모듈 간의 독립성으로 인해 한 모듈의 변경이 다른 모듈에 미치는 영향을 최소화합니다. 이는 오류의 감소 및 파급효과를 최소화하며, 프로그램의 유지보수가 용이해지고 보다 효율적인 관리가 가능해집니다.

좋은 모듈의 특징

좋은 모듈은 모듈 간의 결합을 최소화하면서 모듈 내부의 구성 요소 간에는 높은 응집도를 유지해야 합니다. 이를 통해 모듈 간의 관련성을 최소화하고 서로간의 영향을 줄임으로써, "모든 모듈은 제대로 실행되고 변경이 용이하며 해석하기 쉬워야 한다" 라고 로버트 마틴은 강조합니다.

저는 모듈의 크기에 대해 고민을 해보았는데 제가 사용해본 결과 너무 작은 모듈은 모듈의 수를 증가시키고, 이로 인해 통신 횟수도 늘어나면서 시스템의 과부화와 복잡도를 높일 수 있습니다. 따라서, 적절한 크기의 모듈 설계가 필요하다고 생각합니다. 이를 통해 각 모듈이 효율적으로 기능할 수 있도록 하며, 시스템 전체의 성능을 최적화하는 데 기여할 수 있고 팀원간의 적절한 모듈 이해도를 가져서 프로젝트를 수월하게 만들 수 있습니다.