좋은 코드로 좋은 아키텍처를 정의하는 원칙. 함수와 데이터 구조를 클래스로 배치하는 방법으로 이 클래스를 서로 결합하는 방법변경에 유연하도록 한다.이해하기 쉽도록 한다.많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트의 기반이 되도록한다.각 소프트웨어 모듈은 변경의 이
시스템의 구성요소로 배포할 수 있는 가장 작은 단위잘 설계된 컴포넌트라면 반드시 독립적으로 배포, 개발 가능해야 한다.REP(Reuse/Release Equivalence Principle) : 재사용/릴리스 등가 원칙CCP(Common Closure Principle
아키텍처? > 시스템을 구축했던 사람들이 만들어낸 시스템의 형태. 시스템을 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의사소통하는 방식에 따라서 모양이 정해진다. 시스템이 쉽게 개발, 배포, 운영, 유지보수되도록 만들어진다. 좋은 아
소프트웨어 아키텍처는 선을 긋는 기술이며, 이러한 선을 경계라고 부른다.경계는 소프트웨어 요소를 서로 분리하고, 경계 한편에 있는 요소가 반대편에 있는 요소를 알지 못하도록 막는다.관련이 있는 것과 없는 것 사이에 선을 긋는다.business rule이 알아야 할 것은
엄밀하게 말하면 업무 규칙은 사업적으로 수익을 더거나 비용을 줄일 수 있는 규칙 또는 절차다.업무 규칙은 보통 데이터를 요구하고 이러한 데이터를 업무 데이터라고 정의할 수 있다.핵심 규칙과 핵심 데이터는 본질적으로 결합되어 있기 때문에 Entity 객체로 만들 수 있다
아키텍처의 목표는 소프트웨어를 계층으로 분리함으로써 관심사의 분리를 달성하는 것이다.프레임워크 독립성테스트 용이성UI 독립성데이터베이스 독립성모든 외부 에이전시에 대한 독립성그림에서 각각의 원은 서로 다른 영역을 표현한다. 안으로 들어갈수록 고수준 소프트웨어가 된다.이
험블 객체 패턴은 디자인 패턴으로, 테스트하기 어려운 행위와 테스트하기 쉬운 행위를 단위 테스트 작성자가 분리하기 쉽게 하는 방법으로 고안되었다.테스트하기 어려운 행위를 험블 객체로 옮긴다.험블 객체 패턴을 사용하여 두 부류의 행위를 분리하여 프레젠터와 뷰라는 서로 다