좋은 아키텍처는,,, 시스템을 쉽게 이해하고, 쉽게 개발하며, 쉽게 유지보수하고, 쉽게 배포하게 해준다.
아키텍처의 주된 목적은
시스템의 생명주기를
지원
하는 것
이다.SW 시스템의 생명주기
개발
- 개발하기 힘든 시스템이라면 수명이 길지도 않고 건강하지도 않을 것이다.
- 좋은 아키텍처는 개발팀들이 시스템을 쉽게 개발할 수 있도록 뒷받침해야만 한다.
배포
- 배포 비용이 높을수록 시스템의 유용성은 떨어진다.
- 좋은 아키텍처는 시스템을 단 한번에 쉽게 배포할 수 있도록 만드는 데 그 목표를 두어야 한다.
운영
- 운영에서 겪는 대다수의 어려움은 단순히 하드웨어를 더 투입해서 해결할 수 있다.
- 좋은 아키텍처는 개발자에게 시스템을 운영하는데 필요한 요구(시스템의 운영 방식)도 알려준다
- 시스템을 이해하기 쉬워져서 개발과 유지보수에 큰 도움이 됨
유지보수
- 탐사와 이로 인한 위험부담 비용이 추가됨 → 비용이 가장 많이 드는 부분
- 좋은 아키텍처는 이 비용을 크게 줄일 수 있다.
- 미래에 추가될 기능에 대한 길을 밝혀두고
- 의도치 않은 장애가 발생할 위험을 크게 줄일 수 있다.
선택사항 열어 두기
- SW의 두 종류의 가치
- 구조적 가치 ★
- 행위적 가치
- SW의 두 가지 구성 요소
- 정책 ★
- 세부사항
- 아키텍트의 목표는 시스템에서 정책을 가장 핵심적인 요소로 식별하고,
- 동시에 세부사항은 정책에 무관하게 만들 수 있는 형태의 시스템을 구축하는데 있다.
마틴 아저씨 이야기
- 광고우편
- 물리적 주소 할당
결론
- 좋은 아키텍트는
세부사항
과정책
이 결합되지 않도록 엄격히 분리한다.
- 세부사항에 대한 결정을 가능한 한 오랫동안 미룰 수 있는 방향으로 정책을 설계한다.