✓ 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문자는 의미론적으로 공백과 동일함.
② 쓰기 쉽고 읽기 쉽고 테스트하기 쉽다.
③ 보편적인 변수/함수 이름 규칙
- 설명적이어야 한다
- 외부의 독자에게 모호하거나 생소한 약어를 사용하지 말자
- 단어 내에 문자를 삭제해서 약어를 사용하지 말자

'Language Study > C' 카테고리의 다른 글
[C/C++] 08 - 02 배열, 문자열과 포인터 (0) | 2022.11.21 |
---|---|
[C/C++] 08 - 01 POINTER 기초 (0) | 2022.11.09 |
[C/C++] 07 - 02 STANDARD LIBRARY 함수의사용 (0) | 2022.11.02 |
[C/C++] 07 - 01 함수와변수,함수인자심화학습 (0) | 2022.10.25 |
[C/C++] 04 - 함수 기초 - 함수 선언과 변수 유효 범위 (1) | 2022.10.03 |