모놀리식(monolithic) 프로그래밍과 모듈러(modular) 프로그래밍은 C 언어에서 프로그램을 구성하는 두 가지 대표적인 방식입니다. 이 글에서는 두 방식의 차이점과 각각의 장단점을 자세히 살펴보겠습니다.
모놀리식(Monolithic) 프로그래밍이란?
프로그램 전체를 하나의 함수(main 함수) 안에 모두 작성하는 방식을 모놀리식 프로그래밍이라고 합니다. 하지만 모든 로직을 단일 함수에 담아 작성하는 것은 좋은 프로그래밍 스타일이 아닙니다.
모놀리식 프로그래밍의 단점
- 프로그램이 매우 크고 복잡해 보여 가독성이 크게 떨어집니다.
- 디버깅, 테스트, 유지보수가 매우 어렵습니다.
모듈러(Modular) 프로그래밍이란?
프로그램을 여러 개의 기능 단위(모듈)로 나누어 작성하는 방식을 모듈러 프로그래밍이라고 합니다.
메인 프로그램을 여러 개의 서브 프로그램으로 분할하면, 각 서브 모듈을 독립적으로 코딩한 뒤 하나의 단위로 결합할 수 있습니다. 이렇게 개별적으로 만들어진 모듈을 함수(function)라고 부릅니다.
모듈러 프로그래밍의 장점
- 프로그램의 구조와 흐름을 쉽게 이해할 수 있습니다.
- 디버깅과 유지보수가 훨씬 수월해집니다.
- 개발 시간을 절약하여 프로그래머와 사용자 모두에게 유리합니다.
- 필요한 곳 어디서든 코드를 재사용할 수 있습니다.
모듈러 프로그래밍 예제
다음은 모듈러 프로그래밍의 개념을 보여주는 예시입니다.

하나의 문제를 관련된 하위 문제들로 분할하는 과정은 알고리즘을 점진적으로 세분화(refining)하는 과정과 유사합니다.
예제: 두 수에 대한 산술 연산 수행
두 숫자에 대해 산술 연산을 수행하는 작업은 다음과 같은 단계로 나눌 수 있습니다.
- 합(sum) 구하기
- 차(difference) 구하기
- 곱(product) 구하기
- 몫(quotient) 구하기
세 번째 단계의 세분화된 알고리즘
두 수의 곱을 구하는 세분화된 알고리즘은 다음과 같습니다.
- 두 개의 숫자 a, b를 입력받는다.
- 곱을 계산한다: c = a * b
- 결괏값 c를 출력한다.
구조 차트(Structure Chart)
구조 차트는 프로그램을 구성하는 모듈들 간의 관계를 계층적으로 표현한 다이어그램입니다. 모듈러 프로그래밍 설계 시 전체 구조를 한눈에 파악하고 모듈 간 호출 관계를 명확히 하는 데 매우 유용합니다.
