본문 바로가기

클린아키텍처5

클린 아키텍처 - 소프트웨어 구조와 설계의 원칙 02 5장 객체지향 프로그래밍 - 좋은 아키텍처를 만드는 일은 객체지향 설계 원칙을 이해하고 응요 하는데서 출발한다 OOP(object-oriented : OO)란? 다형성을 이용하여 전체 시스템의 모든 소스코드 의존성에 대한 절대적인 제어 권한을 획득할 수 있는 능력이다. OO를 사용하면 플러그인 아키텍처를 구성할 수 있고 이를 통해 고수준의 정책을 포함하는 모듈은 저수준의 세부사항을 포함 하는 모듈에 대해 독립성을 보장할수 있다. 2022. 6. 5.
클린 아키텍처 - 소프트웨어 구조와 설계의 원칙 02 4장 구조적 프로그래밍 데이스크트라에 의해 등장 증명 (proof) 데이스크트라는 유클리드 계층구조를 만드는 것을 비전으로 설정하고 프로그래머는 입증된 구조를 이용, 이들 구조를 코드와 결합하여 코드가 올바르다는 것을 증명하겠을 목표로 하였다. 연구 중에 goto문이 모듈을 더 작은 단위 재귀적 분해하는 과정에서 방해가 되는 경우와 그렇지 않은 경우를 발견하고 그중 방해가 되지 않는 좋은 경우인 if/then/else, do/while 같은 분기와 반복이라는 단순 제어 구조만 사용하는 모듈이라면 증명 가능한 단위까지 세분화될 것이라 생각했다 이는 2년 앞서 발견된 뵘, 야코 피니가 증명한 모든 프로그램은 순차, 분기, 반복의 제어구조와 동일했고 모듈의 증명을 가능하게 했다. 이로써 구조적 프로그래밍이 탄생하게.. 2022. 6. 5.
클린 아키텍처 - 소프트웨어 구조와 설계의 원칙 02 3장 프로그래밍 패러다임 개요 구조적 프로그래밍 최초로 적용된 패러다임 - 에츠러흐 비버 데이스크트라 "무분별한 점프(goto)는 프로그램에 해롭다" 구조적 프로그래밍은 제어흐름의 직접적인 전환에 에대해 규칙을 부과한다. goto -> if,then,else/do,while,until 객체지향 프로그래밍 알골언어의 함수 호출스택 프레임을 힙메모리 영역으로 옴기면 선언된 지역변수가 유지된다 발견. 이러한 과정에서 다형성을 발견. 객체지향 프로그래밍은 제어흐름의 간접적인 전환에 대해 규칙을 부과한다. 함수형 프로그래밍 수학의 람다계산법의 영향을 받음. LISP언어의 근간이 되는 람다계산법. 함수형 프로그래밍은 할당문에 대해 규칙을 부과한다. 프로그램의 패러다임에 대해... 구조적 프로그래밍에서는 goto 사용제한.. 2022. 1. 16.
클린 아키텍처 - 소프트웨어 구조와 설계의 원칙 01 2장 2. 두 가치에 대한 이야기 모든 소프트웨어 시스템은 이해관계자에게 행위와 구조라는 두 가지 가치를 제공하며 소프트웨어 개발자는 이 두가지 가치를 높게 유지해야 하는 책임을 진다. 소프트웨어의 첫번째 가치 - 행위(behavior, 기능) 이해관계자는 기계(시스템)으로 수익을 창출하기 위해 프로그래머를 고용한다. 프로그래머는 이해관계자의 요구사항을 코드로 작성한다. 이렇게 요구사항을 구현하고 버그를 수정 유지보수하는 일만이 프로그래머의 업무의 모든 것이 아니다!? 소프트웨어의 두번째 가치 - 아키텍처(structure 구조) 소프트웨어는 부드러워야하나 즉 변경이 쉬워야 한다 그래서 소프트! 웨어이다. 이해관계자의 변경사항을 간단하고 쉽게 적용 할수 있어야 하며 변경사항 적용의 어려움은 범위에는 비례하지만.. 2022. 1. 9.
클린 아키텍처 - 소프트웨어 구조와 설계의 원칙 01 1장 1. 설계와 아키텍처란? 설계(design)와 아키텍처(architecture) 차이? 둘 사이의 관계는 전혀 차이가 없다!! 저수준의 세부사항 고수준의 구조 모두 소프트웨어의 전체 설계의 구성요소일 뿐 개별로 존재할 수 없고, 둘의 경계는 뚜렷하지 않다. 아키텍처의 목표는? 필요한 시스템을 만들고 시스템을 유지 보수하는데 투입되는 인력비용을 최소화하는 데 있다. 만들때드는 비용만이 아니라 시스템의 수명이 다할 때까지 비용이 낮게 유지된다면 좋은 설계라고 말할 수 있다. 개발자가 주의해야 할 마음가짐 훌륭하고 깔끔하게 잘 설계된 코드가 중요하다는 사실을 늘 인지하고 있어야한다. 출시만을 위해 코드를 짜고 나중에 코드를 정리하면 된다고 "과신"하지마라. (끝없이 새로운 일이 온다 나중에 정리는 거의 불가능.. 2022. 1. 9.