소개

설계와 아키텍처의 차이

설계(Design): 저수준의 구조 또는 결정사항 등을 의미

아키텍처(Architecture): 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬 때 사용하는 단어

아키텍처 목표

필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하기 위함.

가치

모든 소프트웨어 시스템은 이해관계자에게 행위(behavior)구조(structure)를 제공한다.

소프트웨어는 유연하여야 한다. (비복비복변순무)

변경사항 적용 어려움은 범위(scope)에 비례 해야하며 형태(shape)와는 관련이 없어야한다.

즉, 아키텍처는 형태에 독립적 이여야한다.

기능과 아키텍처의 관계

시스템은 완전성과 변경용이성이 모두 중요하다. 아이젠하워 매트릭스에 따라 판단이 중요하다.

Untitled

<aside> 💡 현업은 주로 3번*(긴급하지만 중요하지 않은 일)을 1번(긴급하고 중요한 일)*으로 착각하는 실수를 저지른다.

</aside>

패러다임과 아키텍처 관심사

패러다임: 구조적, 객체지향, 함수형

관심사: 함수, 컴포넌트 분리, 데이터 관리

구조적 프로그래밍