도메인 주도 개발(3)
-
리포지터리와 모델 구현
매핑 구현 - 애그리거트와 JPA 매핑을 위한 기본 규칙 - 애그리거트 루트는 엔티티이므로 @Entitiy로 매핑 설정 - 벨류는 @Embeddedable로 매핑 설정 - 벨류 타입 프로퍼티는 @Embedded로 매핑 설정 - 타 애그리거트는 ID로 참조 AttributeConverter - int, long, String, LocalDate 같은 타입은 DB 테이블에 한 개의 컬럼에 매핑됨. - 이와 비슷하게 벨로타입의 프로퍼티를 한 개의 컬럼에 매핑해야할 때도 있음. - AttributeConverter을 통해 벨류 타입과 칼럼 데이터 간의 변환 처리 가능 - 벨류 컬렉션을 별도 테이블로 매핑시에는 @ElementCollection과 @CollectionTable을 함께 사용 - List에 자체 인덱..
2023.07.28 -
도메인 주도 개발 시작하기
네 개의 영역 표현 영역 사용자 요청을 받아 응용 영역에 전달, 응용 영역의 처리 결과를 다시 사용자에게 전달 응용 영역 시스템이 사용자에게 제공해야할 기능을 구현 응용 서비스는 로직을 직접 수행하기보다는 도메인 모델에 로직 수행을 위임 도메인 모델 도메인 핵심 로직을 구현 인프라스트럭처 영역 구현 기술에 대한 것을 다룸 DB 연동, 메시징 큐 송수신 계층 구조 아키텍처 계층 구조는 상위 계층에서 하위 계층으로 의존만 존재 하위 계층은 상위 계층에 의존하지 않음 구현의 편리함을 위해 계층 구조를 유연하게 적용하기도 함 인프라 스트럭처에 의존하면 test와 기능 확장에 어려움을 가짐 : DIP로 해결 DIP 상위 모듈은 하위 모듈에 의존해서는 안 됨. 변하지 않는 것에 의존 -> 추상화에 의존 -> 인터페..
2023.07.11 -
[도메인 주도 개발 시작하기 - 최범균 저] 한 장 요약
도메일 모델 시작하기 도메인에 따라 용어의 의미가 결정 여러 하위 도메인을 하나의 다이어그램에 모델링 하면 안 됨 각 하위 도메인마다 별도 모델을 만들어야 아키텍처 구성 표현 영역 : 사용자 요청 처리/사용자에게 정보 제공 HTTP 요청을 응용영역이 필요로 하는 형식으로 변환헤서 전달 응용 영역 : 사용자가 요청한 기능 실행 : 업무 로직을 직접 구현하지 않음 응용 서비스를 로직을 직접 수행하지 않고, 도메인 모델에 로직 수행을 위임 도메인 영역 : 시스템이 제공할 도메인 규칙 구현 도메인 핵심 로직 구현 인프라스트럭처 영역 : DB나 메시징 시스템 같은 외부 시스템 연동 처리 상위 계층에서 하위 계층으로의 의존만 존재 DIP 적용시 하위 기능을 추상화한 인터페이스는 고수준 모듈 관점에서 도출 도메인 영..
2023.01.13