아키텍처
- 아키텍처란 시스템을 구축했던 사람들이 만들어낸 시스템의 형태이다.
(시스템을 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의사소통하는 방식)
- 아키텍처는 시스템의 동작 여부와는 거의 관련이 없다.
- 아키텍처의 주된 목적은 시스템의 생명주기를 지원하는 것이다.
- 좋은 아키텍처는 시스템을 쉽게 이해하고, 쉽게 개발하며, 쉽게 유지보수하고, 또 쉽게 배포하게 해준다.
- 아키텍처의 궁극적인 목표는 시스템의 수명과 관련된 비용은 최소화하고, 프로그래머의 생산성은 최대화하는 데 있다.
- 소프트웨어 아키텍처는 시스템을 단 한 번에 쉽게 배포할 수 있도록 만드는 데 목표를 두어야 한다.
- 시스템에서 정책(비즈니스 로직)을 가장 핵심적인 요소로 식별하고, 동시에 세부사항은 정책에 무관하게 만들 수 있는 형태의 시스템을 구축하는 데 있다.
<aside>
💡
결론적으로 좋은 아키텍처는 시스템의 유스케이스, 운영, 개발, 배포를 지원해야 한다.
</aside>
유스케이스
- 시스템의 결합 분리 모드는 시간이 지나면서 바뀌기 쉬우며, 뛰어난 아키텍처는 이러한 변경을 예측하여 큰 무리 없이 반영할 수 있도록 만들어야 한다.