아키텍처
건물의 청사진
주택이야!!!
우리의 애플리케이션 아키텍처는 뭐라고 소리치는가?
헬스케어시스템
이야!! vs 스프링&하이버네이트
야!!!최상위 소스 파일, 폴더구조까지 포함해서
아키텍처의 테마
아키텍처는 프레임워크에 대한 것이 아니다
아키텍처를 프레임워크로부터 제공받아서는 절대 안 된다.
프레임워크는 사용하는 도구일 뿐, 아키텍처가 준수해야 할 대상이 아니다.
프레임워크 중심이 되면, 유스케이스가 중심 아키텍처는 절대 나올 수 없다.
아키텍처의 목적
좋은 아키텍처는
- 유스케이스에 중점을 두며, 지엽적인 관심사에 대한 결합은 분리시킨다.
하지만 웹은?
- 웹은 아키텍처일까? ㄴㄴ!
- 아키텍처는 시스템이 어떻게 전달될지에 대해 가능한 아무것도 몰라야 한다!
- 애플리케이션이 웹을 통해 전달된다는 사실은 세부사항이며, 시스템 구조를 지배해서는 절대 안된다.
- 시스템을 여러 방향으로 전달할 수 있어야 한다 (앱, 콘솔 등...)
프레임워크는 도구일 뿐, 삶의 방식은 아니다
스프링이 다 해줄거야!!!!!!! → X
프레임워크를 사용하지 않으려면 어떻게 해야 할지를 스스로에게 물어보자.
프레임워크가 아키텍처의 중심을 차지하는 일을 막을 수 있는 전략을 개발하자
테스트하기 쉬운 아키텍처
프레임워크와 적당한 거리를 두고, 유스케이스를 최우선으로 한다면
프레임워크를 전혀 준비하지 않더라도 필요한 유스케이스 전부에 대해 단위테스트를 할 수 있어야 한다.
유스케이스 객체가 엔티티 객체를 조작해야 한다.
결론
아키텍처는 시스템을 이야기 해야 한다. (적용한 프레임 워크 X)
소스 저장소를 첨 봤을 때 →
“오 헬스케어 시스템이군”
이어야 댐새로 합류한 프로그래머가 시스템의 모든 유스케이스를 이해할 수 있어야 한다.