우리가 만드는 아키텍처는 우리가 무엇인지 소리쳐야 한다. 소리쳐야 하는 부분은 디렉터리 구조, 패키지에 담긴 소스파일이다. 그것이 무엇이라고 소리치는지 보자. 나는 헬스 케어 시스템이야 또는 재고 관리 시스템이야 라고 소리친다면 올바른 아키텍처지만, 만약 나는 스프링이야, 나는 ASP야 라고 소리친다면 이를 수정하는게 좋다.
아키텍처의 테마
애플리케이션 아키텍처는 유스케이스에 대해 소리쳐야 한다. 프레임워크에 대해 소리치고 있다면 유스케이스에 대해 소리치도록 바꿔보자. 프레임워크는 우리를 돕는 주체이지 우리가 맞춰야 하는 주체가 아니다.
아키텍처의 목적
좋은 아키텍처는 유스케이스를 그 중심에 두기 때문에, 프레임워크나 도구, 환경에 전혀 구애받지 않고 유스케이스를 지원하는 구조를 아무런 문제 없이 기술할 수 있다.
좋은 소프트웨어에서 언제든지 변경될 수 있는 것은 프레임워크와 데이터베이스, 웹 서버 등이다. 비즈니스 로직을 이와 분리되도록 작성하자.
테스트하기 쉬운 아키텍처
만약 테스트하기 위해 데이터베이스가 필요하거나, 웹 서버가 필요하다면 이는 수정해야하는 요소가 된다. 오직 객체를 가지고 테스트할 수 있도록 만들고, 프레임워크나 데이터베이스 등에 의존하지 않도록 해야 한다.