Language Study/C

[C/C++] 07 - 03 함수와 Modular Programming

지미닝 2022. 11. 2. 23:49

✓ Structured Programming

모든 프로그램은 본질적으로 순차(Sequence), 선택(Selection), 반복(Repetition) 이라는 3가지의 제어 구조(Control Structure)의 조합으로 구성된다.

  • 코드에서 이러한 제어 구조가 명확히 드러날 때 코드 작성과 이해가 쉬워진다.
  • 실제 C 언어에서는 선택을 위한 if-else, switch, 반복을 위한 for, while, do-while등의 제어 구조문을 제공한다.
  • 그러나 기계어에서는 제어 흐름 변경을 위한 명령어로 단순 비교(simple test)와 Jump(=GoTo)를 이용한 구문 이동만을 제공한다.
  • 조기 프로그래밍 언어도 단순 비교와 GOTO만을 제공하여 3가지 제어 구조가 잘 드러나지 않는 복잡한 코드가 양산되었다.
    • Spaghetti Code – Unstructured Code, 다수의 GOTO 문이 사용되며 제어구조가 잘 드러나지 않는 복잡한 코드

Structured Programming이란?

  • Structured Programming이란, 컴퓨터 프로그램의 명확성, 품질 및 개발 시간을 향상시키는 것을 목표로 하는 프로그래밍 패러다임으로 스파게티 코드의 반대다.
  • C언어의 one of the key design principles 이다.

Modular Programming이란?

소프트웨어 디자인 테크닉이란, 프로그램을 독립적이고 상호 교환 가능한 모듈로 분리하는 것을 강조하는 것이다. 각 모듈에는 원하는 기능의 한 측면만 실행하는 데 필요한 모든 것이 포함된다.

Why? 왜 사용함?

  • 읽기 좋고 이해하기 좋다. 유지보수하기 좋다. (Improves Readability & Understandability, Improve Maintainability)
  • 재사용하기 좋다. (프로그램 내에서도, 프로그램과 프로그램 간에서도)


Top-Down Approach란?

  • 문제를 작고 작은 프로세스로 나누는 것. 프로세스가 더이상 분해되지 않을 때 중지한다. 즉, 복잡한 프로그램을 모듈의 계층 구조로 나눈다.
  • 최하위 프로세스를 위한 함수를 작성한다.
  • 최상위 모듈은 하위 모듈을 "호출"하여 실행을 제어한다.

✓ Some Essential Programming Guidelines

①Use good indentataion (들여쓰기 잘하자)

  • Closely Related to Structured Programming

②Write short functions

  • Closely Related to Modular Programming

③Use descriptive names for variables and functions

 

① 코드를 전반적으로 이해하기 쉬워짐.

C 언어에서 Tab문자는 의미론적으로 공백과 동일함.

 

② 쓰기 쉽고 읽기 쉽고 테스트하기 쉽다.

③ 보편적인 변수/함수 이름 규칙

  • 설명적이어야 한다
  • 외부의 독자에게 모호하거나 생소한 약어를 사용하지 말자
  • 단어 내에 문자를 삭제해서 약어를 사용하지 말자