Clean Architecture 2

Clean Architecture - 2장. 두 가지 가치에 대한 이야기

모든 소프트웨어는 이해관계자에게 서로 다른 두 가지 가치를 제공한다. 행위(Behavior)와 구조(Structure)이다. 행위 누군가가 프로그래머를 고용하는 이유는 아래와 같다. 수익 창출 비용 절약 이해관계자는 기능 명세서와 요구 사항 명세서를 고용된 프로그래머에게 제공한다. 프로그래머는 이러한 요구 사항들을 만족하도록 코드를 작성하며, 요구 사항을 위반할 때 디버깅을 진행한다. 구조 소프트웨어(software)는 부드러운(soft)과 제품(ware)의 합성어이다. 여기서 부드럽다는 변경하기 쉽다는 것을 뜻한다. 즉, 소프트웨어는 변경하기 쉬운 제품을 의미한다. 프로그래머는 변경하기 쉬운 제품을 만들기 위해 소프트웨어의 구조를 잘 만들고, 이 구조를 향상하거나 유지해야 한다. 더 높은 가치(행위 v..

편(編)/책 2021.11.03

Clean Architecture - 1장. 설계와 아키텍쳐

설계(Design)와 아키텍처(Architecture)는 아키텍트(architect) 관점에서 차이가 없다. 단, 아키텍처는 고수준, 설계는 저수준의 무언가를 가리킬 때 흔히 사용된다. 흔히 사용된다는 것이지 반드시 그렇다는 게 아니다. 하지만 설계와 아키텍처(이하 설아)는 개별로 존재할 수 없으며, 각각을 구분 짓는 경계도 명확하지 않다. 고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐이다. 설아의 목표와 품질 척도 설아의 목표는 다음과 같다. "필요한 시스템을 만들고, 유지보수하는 비용을 최소화하는 것이다." 설아의 품질 척도는 다음과 같다. "새로운 기능을 추가할 때마다 비용이 증가한다면, 나쁜 설계이다." 나쁜 설아를 하는 이유 코드는 나중에 정리하면 돼, 당장은 시장에 출시하는 게 먼저..

편(編)/책 2021.11.02