목차 1. 도메인 이벤트 2. 스프링 ApplicationEvent 3. 이벤트 소싱(Event Sourcing) 4. CQRS(명령 및 쿼리 책임 분리) 1. 도메인 이벤트 느슨한 결합과 강한 결합 외부 서비스가 정상이 아닐 경우 트랜잭션 처리를 어떻게 해야 할지 애매 외부 서비스 성능에 직접적인 영향을 받는 문제가 있다. 도메인 객체에 서비스를 전달하면 추가로 설계상 문제가 나타날 수 있다. 도메인 객체에 서비스를 전달할 떄 또 다른 문제는 기능을 추가할 때 발생한다. 비동기 이벤트를 사용하면 두 시스템 간의 결합을 크게 낮출 수 있다. 이벤트 이벤트가 발생한다는 것은 상태가 변경됐다는 것을 의미한다. 도메인 모델에서도 UI 컴포넌트와 유사하게 도메인의 상태 변경을 이벤트로 표현할 수 있다. 보통 '..
목차 1. 계층형 아키텍처 2. DTO(Data Transfer Object) 3. 의존 역전 원칙 4. 전략적 설계 - ANTICORRUPTION LAYER 1. 계층형 아키텍처 도메인 주도 설계의 아키텍처가 별도로 정의되어 있는 것은 아니지만 계층형 아키텍처, 클린 아키텍처, 헥사고날 아키텍처 처럼 도메인을 보호하는 아키텍처의 개념이 중요하다. 계층형 아키텍처의 비즈니스 로직은 도메인 모델에서 수행되도록 한다. Entity, Value Object 는 물론이고 비즈니스 로직이 Application Service 로 넘어가지 않도록 하는 Domain Service도 도메인 모델에 속한다. 1) Presentation Layer 사용자가 시스템을 사용할 수 있는 (화면) 흐름을 제공하고 제어 사용자가의 ..
목차 1. 전술적 설계 - ENTITY와 VALUE OBJECT 2. 전술적 설계 - AGGREGATE와 REPOSITORY 3. 전술적 설계 - SERVICE 1. 전술적 설계 - ENTITY와 VALUE OBJECT 도출한 도메인 모델은 Entity와 Value Object로 구현될 수 있다. 1) Entity 식별자를 갖는다. 객체의 상태 중 해당 객체의 고유한 성질을 표현할 수 있는 상태들을 식별자라고 부른다. 식별자는 엔티티 객체마다 고유해서 각 엔티티는 서로 다른 식별자를 갖는다. 식별자 생성 특정 규칙에 따라 생성 UUID 사용 값을 직접 입력 일련번호 사용(시퀀스나 DB의 자동 증가 칼럼 사용) 도메인 모델에 set 메서드 넣지 않기 changeShippingInfo() vs setShip..
목차 1. 전략적 설계 - UBIQUITOUS LANGUAGE 2. 전략적 설계 - BOUNDED CONTEXT 3. 이벤트 스토밍(Event Storming) 1. 전략적 설계 - UBIQUITOUS LANGUAGE 유비쿼터스 언어(Ubiquitous Language)는 언제 어디서나 사용되는 언어란 뜻이다. 회의, 기획, 디자인, 개발 등 프로젝트 내부의 언제 어디서나 사용되기 위해 정의된 언어이다. 도메인에서 사용하는 용어를 프로젝트 내의 사람들이 모두 다르게 표현하면 번역 비용이 발생하고 코드에 사용된 언어와 다르거나 코드에 반영하지 않으면 그 코드는 개발자에게 코드의 의미를 해석해야 하는 부담을 준다. 따라서, 용어가 정의 될 때마다 용어 사전에 이를 기록하고 명확하게 정의 함으로써 추후 또는 ..
- Total
- Today
- Yesterday
- 폴링 발행기 패턴
- 스프링 예외 추상화
- http
- HTTP 헤더
- Spring
- Spring Boot
- clean code
- mockito
- JPA
- 이벤트 스토밍
- 스프링 카프카 컨슈머
- Git
- kafka
- Spring Data JPA
- 트랜잭셔널 아웃박스 패턴
- 학습 테스트
- ATDD
- Ubiquitous Language
- 마이크로서비스 패턴
- spring rest docs
- named query
- 육각형 아키텍처
- 계층형 아키텍처
- java8
- 도메인 모델링
- TDD
- Stream
- 클린코드
- H2
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |