설계(Design): 저수준의 구조 또는 결정사항 등을 의미
아키텍처(Architecture): 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬 때 사용하는 단어
필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하기 위함.
모든 소프트웨어 시스템은 이해관계자에게 행위(behavior) 와 구조(structure)를 제공한다.
소프트웨어는 유연하여야 한다. (비복비복변순무)
변경사항 적용 어려움은 범위(scope)에 비례 해야하며 형태(shape)와는 관련이 없어야한다.
즉, 아키텍처는 형태에 독립적 이여야한다.
시스템은 완전성과 변경용이성이 모두 중요하다. 아이젠하워 매트릭스에 따라 판단이 중요하다.

<aside> 💡 현업은 주로 3번*(긴급하지만 중요하지 않은 일)을 1번(긴급하고 중요한 일)*으로 착각하는 실수를 저지른다.
</aside>
패러다임: 구조적, 객체지향, 함수형
관심사: 함수, 컴포넌트 분리, 데이터 관리