[21장] 소리치는 아키텍처
[아키텍처의 테마]
이바 야콥슨(Ivar Jacobson) - Object Oriented Software Engineering : Use Case Driven Approach
소프트웨어 아키텍처는 시스템의 유스케이스를 지원하는 구조라고 지적했다.
소프트웨어 애플리케이션의 아키텍처도 애플리케이션의 유스케이스에 대해 소리쳐야 한다.
아키텍처는 프레임워크에 대한 것이 아니다. 아키텍처를 프레임워크로부터 제공받아서는 절대 안 된다. 프레임워크는 사용하는 도구일 뿐, 아키텍처가 준수해야 할 대상이 아니다.
[아키텍처의 목적]
좋은 아키텍처는 유스케이스를 그 중심에 두기 때문에, 프레임워크나 도구, 환경에 전혀 구애받지 않고 유스케이스를 지원하는 구조를 아무런 문제 없이 기술할 수 있다.
프레임워크는 열어 둬야 할 선택사항이다. 뿐만 아니라 결정을 쉽게 번복할 수 있도록해야 한다. 좋은 아키텍처는 유스케이스에 중점을 두며, 지엽적인 관심사에 대한 결합은 분리시킨다.
[하지만 웹은?]
웹은 전달 메커니즘(입출력 장치)이며, 애플리케이션 아키텍처에서도 그와 같이 다뤄야 한다. 애플리케이션이 웹을 통해 전달된다는 사실은 세부사항이며, 시스템 구조를 지배해서는 절대 안 된다.
[프레임워크는 도구일 뿐, 삶의 방식은 아니다]
프레임워크는 매우 강력하고 상당히 유용할 수 있다.
눈이 아플 정도로 면밀하게 프레임워크를 살펴보자. 그리고 비판적으로 보자. 그래, 프레임워크는 도움이 되겠지만, 비용은 얼마나 드는가? 프레임워크를 어떻게 사용할지, 그리고 프레임워크를 사용하지 않으려면 어떻게 해야할지를 스스로에게 물어보라. 어떻게 하면 아키텍처를 유스케이스에 중점을 둔 채 그대로 보존할 수 있을지를 생각하라.
[테스트하기 쉬운 아키텍처]
아키텍처가 유스케이스를 최우선으로 한다면, 그리고 프레임워크와는 적당한 거리를 둔다면, 프레임워크를 전혀 준비하지 않더라도 필요한 유스케이스 전부에 대해 단위 테스트를 할 수 있어야 한다. 데이터베이스가 반드시 연결되어 있어아먄 테스트를 돌릴 수 있어서도 안 된다.
[결론]
아키텍처는 시스템을 이야기해야 하며, 시스템에 적용한 프레임워크에 대해 이야기해서는 안 된다. 새로 합류한 프로그래머는 시스템이 어떻게 전달될지 알지 못한 상태에서도 시스템의 모든 유스케이스를 이해할 수 있어야 한다.
'SW' 카테고리의 다른 글
클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) - 5부 : 아키텍처 (23장) (0) | 2020.03.17 |
---|---|
클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) - 5부 : 아키텍처 (22장) (0) | 2020.03.16 |
클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) - 5부 : 아키텍처 (20장) (0) | 2020.03.14 |
클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) - 5부 : 아키텍처 (19장) (0) | 2020.03.13 |
클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) - 5부 : 아키텍처 (18장) (0) | 2020.03.12 |
댓글