|
지금까지 여러분이 작성한 프로그램들은 비교적 간단한 것으로, 한 개의 main() 함수로만 구성되었다. 그러나 문제가 약간만 복잡해져도 main() 함수는 상응해서 크고 복잡해질 것이고, 이 함수를 혼자서 작성하고 수정, 보완하는데는 상당한 어려움이 따를 것이다. 사실, 여러분이 유용하게 사용하고 있는 마이크로소프트사의 오피스와 같은 상용 응용 소프트웨어는 수십명, 혹은 수백명이 동원되어 개발된 것이다. 여러분의 컴퓨터를 생각해보자. 컴퓨터 본체 안을 들여다보면, 여러 개의 부품들로 구성되는 것을 알 수 있다: CPU, 메모리, 보조 메모리, 그래픽 카드, 사운드 카드 등. 여러분은 이러한 부품들을 조립하여 한 대의 컴퓨터를 만들 수도 있다. 또한, 여러분은 부품을 교환하든지 추가하여 컴퓨터의 성능을 손쉽게 높일 수 있다. 가령, CPU를 교환한다든지, 메모리나 보조 메모리를 교환 혹은 추가하여 컴퓨터의 성능을 높인다. 또한, 컴퓨터에 문제점이 발생한 경우에도 간단히 손상된 부품만을 교환함으로써 그 문제점을 해결할 수도 있다.
컴퓨터의 성능향상이나 문제점을 간단히 부품만을 교체함으로써 해결할 수 있는데, 이것은 컴퓨터가 한 덩어리로 구성되어 있지 않고, 여러 개의 부품들로 구성되어 있기 때문에 가능한 것이다. 만약에, 컴퓨터가 부품들이 아닌 한 덩어리로 구성되어 있다면, 컴퓨터의 문제점을 해결하거나 성능을 향상시키는 작업은 전문가가 아니고서는 엄두도 낼 수 없을 것이다. 또한, 컴퓨터를 통째로 버리고 새로 교체해야 하는 경우가 빈번히 발생할 것이다.
부품은 보통 한 가지의 기능을 수행하고, 외부와의
인터페이스를 갖는 구성 요소로서 정의할 수 있다. 외부와의 인터페이스는 입력과 출력으로 구분된다. 가령, CPU의 기능은 명령어를
처리하는 것이고, 그 외부와의 인터페이스로 입력은 명령어와 데이터이고 출력은 명령어 처리 결과이다.
이와 같은 방식으로 부품들을 서로 연결하여 컴퓨터를 조립할 수 있다.
일반적으로 규모가 크고 복잡한 프로그램은 더 작은 크기의 여러 개의 모듈로 나누어서 작성하고 이들을 통합하여 전체 프로그램을 완성하는 방식으로 개발한다. 여기서 모듈(module)은 프로그램에서 한 가지의 논리적 기능을 수행하는 프로그램의 일부분으로, 컴퓨터에서 한 개의 부품에 해당된다고 볼 수 있다. 즉, 모듈은 기능과 외부 인터페이스로 입력과 출력으로 정의된다.
다음은 주어진 크고 복잡한 문제로부터 C 프로그램을 작성하는 과정을 보여준다. 이 경우 C 프로그램은 main() 함수를 포함하여 여러 개의 함수들로 구성된다. C 프로그램에서 함수는 미리 정의되어 있거나 그렇지 않을 수 있다. 미리 정의된 함수의 예는 printf()나 scanf()처럼 여러분이 이미 사용해 오고 있는 입, 출력 함수들이다. 여러분은 필요에 따라 이러한 함수들을 불러서 사용할 수 있다. 사용자가 필요로 하는 함수가 미리 정의되어 있지 않은 경우에는, 사용자가 직접 정의해야 한다. 9주차 강의에서는 먼저, 미리 정의된 함수들 중에서 유용하게 사용할 수 있는 수학 라이브러리 함수에 대해서 알아보고, 다음에 사용자가 함수를 직접 정의해서 사용하는 방법에 대해서 알아본다.
|
|
|
|