클린 아키텍처 3장 : 패러다임 개요
각 패러다임(구조적, 객체지향, 함수형 프로그래밍)은 프로그래머에게 권한을 박탈한다.
어떠한 프로그래밍 방법을 사용한다고 하면 개발자에게 가져다 줄 이득을 생각하지만 어떤 것을 제한하는지를 생각해보게 되었다.
클린 아키텍처 4장 : 구조적 프로그래밍
다익스트라는 증명이라는 수학적 증명을 이용해 프로그래밍을 발전시키고자 했다.
이 증명을 할 때 goto문이 방해된다는 것을 알게 되었다.
뵘과 야코피니는 순차, 분기, 반복 세 가지 구조만으로 표현할 수 있다는 사실을 증명했다.
순차, 분기, 반복이라는 프로그래밍의 기초가 어떻게 발견되고 사용되어왔는지 알게 되었다.
수학은 증명 가능한 서술이 참임을 입증하는 원리
과학은 증명 가능한 서술이 거짓임을 입증하는 원리
테스트를 통해 프로그래밍이 잘못되었음을 알 수 있지만 프로그래밍이 항상 옳다는 것을 증명할 수 없다.
즉, 소프트 웨어는 수학적인 구조라기보다 과학과 같다는 것을 알게 되었다.
구조적 프로그래밍이 가치 있는 이유는 반증 가능한 단위를 만들어 낼 수 있기 때문이다.
테스트 코드가 필요한 이유가 생각보다 근본적인 이유일 수 있겠다는 생각을 하게 되었다.
'TIL' 카테고리의 다른 글
2022/02/02 TIL (0) | 2022.02.03 |
---|---|
2022/02/01 TIL (0) | 2022.02.02 |
2022/01/30 TIL (0) | 2022.01.31 |
2022/01/29 TIL (0) | 2022.01.30 |
2022/01/28 TIL (0) | 2022.01.29 |