[클린아키텍처] 4장. 구조적 프로그래밍
4장. 구조적 프로그래밍 p.29~36
인상적이었던 부분
과학적 증명과 수학적 증명
수학적 증명은 참을 입증할 수 있지만, 과학적 증명은 거짓임을 입증한다. 과학적 증명은 참을 입증할 수 없다. => 이런 생각을 안해봤는데, 그런 것 같다는 생각이 들었음..
소프트웨어는 수학적인 시도가 아니라 과학과 같다. 올바르지 않음을 증명하는데 실패함으로써 올바름을 보여주기 때문.
테스트 코드를 생각하보면 거짓을 증명하려고 시도한다. (참이라고 해도 그것은 참이 증명된 것이 아님. 반례가 있을 수 있으니)
거짓임을 증명하려는 테스트가 실패한다면, 이 기능들은 목표에 부합할 만큼은 충분히 참이라고 여기게 된다.
=> “테스트에 대해 아무리 검증을 해도 반례가 있을 수도 있지 않냐?” 라고 누가 질문을 하게 된다면 답변은 ..
소프트웨어는 과학입니다 +_+ 로 시작하여 풀어낼 수 있을 듯..
goto문
goto 문은 프로그램의 흐름을 바꾸는 기본적인 명령이다. - goto 문:: wiki
goto문은 모듈을 더 작언 단위로 분해하는데 방해가 된다.
goto문의 좋은 사용 방식은 분기/반복 일 뿐.
=> goto문은 구조적 프로그래밍의 특징인 줄 알았다. c언어에서 goto문을 봤었던 것 같은 이유 때문에..
그런데 goto문을 사용하지 않는게 구조적 프로그래밍이라니…
순차/분기/반복
모든 프로그램을 순차/분기/반복 이라는 세 가지 구조만으로 표현할 수 있다.
=> 생각 안해봤는데.. 그런 것 같다.