Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어의 하향식 설계와 구조도(Structure Chart) 쉽게 이해하기

C 언어에서 함수(function)란 특정 작업을 수행하도록 명확하게 정의된 독립적인 코드 블록을 의미합니다. 프로그램을 여러 개의 함수로 나누어 작성하면 코드의 가독성과 유지보수성이 크게 향상됩니다.

C 언어에서 함수를 사용하는 장점

  • 재사용성(Reusability) — 한 번 작성한 함수는 여러 곳에서 반복적으로 호출하여 사용할 수 있습니다.
  • 프로그램 길이 단축 — 중복 코드를 제거하여 전체 소스 코드의 길이를 줄일 수 있습니다.
  • 오류 추적 용이 — 문제가 발생했을 때 어떤 함수에서 오류가 있는지 쉽게 찾아내고 수정할 수 있습니다.
  • 하향식 모듈화 프로그래밍 지원 — 큰 문제를 작은 단위로 나누어 체계적으로 개발할 수 있습니다.

하향식 설계(Top-Down Design)란?

하향식 설계는 복잡한 하나의 문제를 여러 개의 하위 문제(sub problem)로 분할하여 해결해 나가는 문제 해결 방법입니다. 즉, 큰 그림부터 출발하여 점점 더 세부적인 부분으로 내려가며 알고리즘을 다듬어 갑니다.

문제를 관련된 하위 문제들로 분할하는 과정은 곧 알고리즘을 정제(refining)하는 과정이라고 할 수 있습니다.

예시: 두 수에 대한 산술 연산

예를 들어 두 개의 숫자에 대해 산술 연산을 수행하는 문제를 생각해 볼 수 있습니다. 이 문제는 다음과 같은 하위 문제들로 분할됩니다.

  • 두 수의 합 구하기
  • 두 수의 차 구하기
  • 두 수의 곱 구하기
  • 두 수의 몫 구하기

첫 번째 단계인 '두 수의 합 구하기'를 정제한 알고리즘은 다음과 같습니다.

  • 두 개의 숫자 a, b를 입력받습니다.
  • 합을 계산합니다: c = a + b
  • 계산된 합을 출력합니다.

구조도(Structure Chart)란?

구조도는 하나의 문제를 구성하는 하위 문제들 사이의 관계를 시각적으로 보여주는 문서화 도구입니다. 구조도를 활용하면 프로그램 전체의 흐름과 모듈 간의 계층 관계를 한눈에 파악할 수 있습니다.

위의 산술 연산 예시를 구조도로 표현하면, 최상위 모듈인 '산술 연산' 아래에 '합', '차', '곱', '몫' 네 개의 하위 모듈이 계층적으로 연결되는 형태로 나타낼 수 있습니다. 이처럼 구조도는 하향식 설계 과정에서 프로그램의 전체 구조를 설계하고 문서화하는 데 매우 유용한 도구입니다.