clean-architecture

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

행위와 구조

행위

프로그래머를 고용하는 이유는 이해관계자를 위해 기계가 수익을 창출하거나 비용을 절약하도록 만들기 위해서다.

프로그래머는 이해관계자가 기능 명세서나 요구사항 문서를 구체화할 수 있도록 돕는다.

아키텍처

소프트웨어의 두번째 가치는 단어와 관련이 있다.

소프트웨어는 부드러움을 지니도록 만들어졌다. 소프트웨어를 만든 이유는 기계의 행위를 쉽게 변경할 수 있도록 하기 위해서다.

소프트웨어는 반드시 부드러워야 한다 - 즉, 변경하기 쉬워야 한다.

이해관계자는 범위가 비슷한 일련의 변경사항을 제시할 뿐이지만, 개발자 입장에서는 복잡도가 지속적으로 증가하는 퍼즐 판 위에서 이해관계자가 계속해서 퍼즐 조각을 맞추라는 지시를 하는 것처럼 느껴진다.

더 높은 가치

소프트웨어 시스템이 동작하도록 만드는 것이 더 중요한가? 아니면 소프트웨어 시스템을 더 쉽게 변경할 수 있도록 하는 것이 더 중요한가?

아이젠하워 메트릭스

유명하다.

긴급한 문제가 아주 중요한 문제일 일은 드물고, 중요한 문제가 몹시 긴급한 경우도 거의 없다.

소프트웨어의 첫 번째 가치 - 행위

소프트웨어의 두 번째 가치 - 아키텍처

소프트웨어 개발자를 고용하는 이유는 이 딜레마를 해결하기 위해서이다.

기능의 긴급성이 아닌, 아키텍처의 중요성을 설득하는 일은 소프트웨어 개발팀이 마땅히 책임져야 한다.