목록클린 아키텍처 (11)
블로그명..?
구조적 프로그래밍 개요 1968년 에츠허르 비버 데이크스트라가 발견 데이크스트라는 무분별한 점프(goto 문장)는 프로그램 구조에 해롭다는 사실을 제시 데이크스트라는 점프들을 if/then/else와 do/while/untill과 같이 더 익숙한 구조로 대체했다. 구조적 프로그래밍은 제어흐름 직접적인 전환에 대해 규칙을 부과한다. 구조적 프로그래밍 모든 프로그램은 인간의 두뇌로 감당하기에는 너무 많은 세부사항을 담고 있었다. 아주 작은 세부사항이라도 간과하면 프로그램이 동작하는 것처럼 보이더라도 결국엔 예상 외의 방식으로 실패하곤 했다. 데이크스트라는 증명(proof)이라는 수학적인 원리를 적용하여 이 문제를 해결하고자 했다. 그것은 공리, 정리, 따름정리, 보조정리로 구성되는 유클리드 계층구조를 만드는..
구조적 프로그래밍 최초로 적용된 패러다임(최초로 만들어진 패러다임은 아니다) 1968년 에츠허르 비버 데이크스트라가 발견 데이크스트라는 무분별한 점프(goto 문장)는 프로그램 구조에 해롭다는 사실을 제시 데이크스트라는 점프들을 if/then/else와 do/while/untill과 같이 더 익숙한 구조로 대체했다. 구조적 프로그래밍은 제어흐름 직접적인 전환에 대해 규칙을 부과한다. 객체 지향 프로그래밍 1966년, 올레 요한 달과 크리스텐 니가드에 의해 등장 ALGOL언어의 함수 호출 스택 프레임을 힙(Heap)으로 옮기면, 함수 호출이 반환된 이후에도 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있었음을 발견 이러한 함수가 클래스의 생성자가 되었고, 지역 변수는 인스턴스 변수, 중첩 함수는 메서드..
모든 소프트웨어 시스템은 이해관계자에게 서로 다른 두 가지 가치를 제공하는데, 행위(behavior)와 구조(structure)가 바로 그것이다. 소프트웨어 개발자는 두 가지를 모두 반드시 높게 유지해야 하는 책임을 진다. 행위 소프트웨어의 첫 번째 가치를 바로 행위(behavior)다. 프로그래머를 고용하는 이유는 이해관계자를 위해 기계가 수익을 창출하거나 비용을 절약하도록 만들기 위해서다. 그리고 이해관계자의 기계가 이러한 요구사항을 만족하도록 코드를 작성한다. 그리고 기계가 이러한 요구사항을 위반하면, 프로그래머는 디버거를 열고 문제를 고친다. 많은 프로그래머가 이러한 활동이 자신이 해야 할 일의 전부라고 생각한다. 이들은 요구사항을 기계에 구현하고 버그를 수정하는 일이 자신의 직업이라고 믿는다. ..