아키텍처의 매력은 구조에 있다. 구조란 패러다임을 지배하고 소프트웨어 개발의 논의를 지배하는 무언가로서, 컴포넌트, 클래스, 함수, 모듈, 계층, 서비스가 그 예다.

소프트웨어 아키텍처는 특정한 모습을 지니지 않는다. 어떤 모습으로 시각화할지는 선택일 뿐, 정해져 있지 않다.

소프트웨어는 마치 꿈을 구성하는 재료와 같지만, 실행되는 곳은 물리적인 세계다.

<aside> 💡 그대여, 사랑의 기괴함이란 이런 것이지요. 의지는 무한한데 실행은 제한적이죠. 욕망은 한량없으나 행동은 한계에 굴복하겠죠. -윌리엄 셰익스피어

</aside>

물리적인 세계란 우리, 기업, 경제가 살아가는 곳이다.

<aside> 💡 아키텍처는 시스템을 구체화하는 중요한 설계 결정을 표현하며, 그 결정의 중요도는 변경에 드는 비용으로 측정된다. -그래디 부치

</aside>

시간, 비용, 노력은 규모라는 것을 이해할 수 있게 해준다. 이 척도는 아키텍처의 좋고 나쁨을 결정할 수 있는 방법을 설명해준다.

좋은 아키텍처는 사용자, 개발자, 소유자의 요구를 특정 시점에도 반드시 충족시켜줄 뿐만 아니라, 시간이 흐르더라도 계속 충족시켜 준다.

<aside> 💡 좋은 아키텍처가 비싸다는 생각이 든다면, 나쁜 아키텍처를 시도해 보라 -브라이언 푸트와 조셉 요더

</aside>

우리가 가야할 길은 깔끔한(clean)길이다. 이 길은 소프트웨어가 지닌 ‘부드러움(softness)’을 인지하고 이 부드러움을 시스템에서 최우선으로 보존하는 것을 목표로 한다.

우리의 약점보다는 강점을 활용하고 무언가를 만들고 또 발견한다. 질문을 던지고 실험을 한다.

아키텍처는 종착지가 아니라 여정에 더 가까우며, 고정된 산출물이 아니라 계속된 탐구 과정에 더 가까움을 이해해야 좋은 아키텍처가 만들어진다.

<aside> 💡 아키텍처는 구현과 측정을 통해 증명해야 하는 가설이다. -톰 길브

</aside>