Post

구조적 프로그래밍

4. 구조적 프로그래밍

증명

Goto 문의 좋은 사용 방식은 if/then/else와 do/while과 같은 분기와 반복이라는 단순한 제어 구조

이러한 제어 구조는 순차 실행과 결합했을 때 좋다.

모든 프로그램은 순차, 분기, 반복으로 표현 가능하다는 사실을 증명

해로운 성명서

성명서로 인해 goto문과 논쟁

goto가 패배

기능적 분해

대규모 시스템을 모듈/컴포넌트/기능들로 세분화 가능

엄밀한 증명은 없었다

수학정 증명 불가능

그래서 과학적 방법 사용

과학이 구출

과학 이론과 법칙은 올바름을 절대 증명할 수 없음

반증은 가능하지만, 증명은 불가능

테스트

테스트는 버그가 있음을 보여줄 뿐, 버그가 없음을 보여줄 순 없다.

구조적 프로그래밍은 프로그램을 증명 가능한 세부 기능 집합으로 재귀적으로 분해할 것을 강요

거짓임을 증명하려는 테스트가 실패한다면, 이 기능들은 목표에 부합할 만큼은 충분히 참이라고 여긴다.

결론

구조적 프로그래밍이 오늘날까지 가치있는 이유는 프로그래밍에서 반증 가능한 단위를 만들어 낼 수 있는 능력때문이다.

아키텍처 관점에서는 기능적 분해를 최고의 실천법으로 여긴다.

참조

  1. 클린 아키텍처(Clean Architecture)
This post is licensed under CC BY 4.0 by the author.