프로그래밍 패러다임
설계 원칙
컴포넌트 원칙
아키텍처
- 업무 규칙
엔티티
- 핵심 규칙과 핵심 데이터는 본질적으로 결합되어 있기 때문에 객체로 만들 좋은 후보가 된다.
- 이러한 유형의 객체를 엔티티라고 한다.
- 데이터베이스, 사용자 인터페이스, 서드파티 프레임워크에 대한 고려사항들로 인해 오염되어서는 안 된다.
- 엔티티는 순전한 업무에 대한 것이며, 이외의 것은 없다.
유스케이스
- 엔티티 내의 핵심 업무 규칙과는 반대로, 애플리케이션에 특화된 업무 규칙을 설명한다.
- 엔티티 내부의 핵심 업무 규칙을 어떻게, 그리고 언제 호출할지를 명시하는 규칙을 담는다.
- 사용자와 엔티티 사이의 상호작용을 규정한다.
- 시스템에서 데이터가 들어오고 나가는 방식은 유스케이스와는 무관하다.
- 엔티티와 같은 고수준 개념은 유스케이스와 같은 저수준 개념에 대해 아무것도 알지 못한다.
요청 및 응답 모델
- 유스케이스는 단순한 요청 데이터 구조를 입력으로 받아들이고, 단순한 응답 데이터 구조를 출력으로 반환한다.
- 엔티티 객체를 가리키는 참조를 요청 및 응답 데이터 구조에 포함하지 않아야 한다.