모든 소프트웨어 시스템은 두가지 가치를 제공한다 - 행위와 구조
- 행위 - 소프트웨어에 담긴 이해관계자의 요구사항
- 이 행위를 구현하는 것이 프로그래머가 해야하는 전부가 아님
- 구조 - 아키텍처
- 확장성이 중요하다.
- 변경하기 쉬워야 한다
- 시스템의 형태와 요구사항의 형태가 맞아야한다.
가치 높은 소프트웨어의 우선순위
- 긴급하고 중요함
- 긴급하지않고 중요함
- 긴급하고 중요하지 않음
- 긴급하지않고 중요하지도 않음
소프트웨어 아키텍처가 후순위가 되면 개발 비용도 증가하며, 시스템을 변경하는 일에 문제가 생길 가능성이 높아진다.
→ 아키텍처를 중요시하라.