
표현 영역과 응용 영역 표현 영역은 사용자의 요청을 해석합니다. 사용자에의해 웹 브라우저로부터 받은 요청은 표현 영역에 전달되며 이 표현 영역은 URL, 파라미터, 쿠키, 헤더 등의 정보를 이용해서 사용자가 실행하고자 하는 기능을 판별합니다. 응용 영역은 사용자가 원하는 기능을 제공하는 영역입니다. 응용 영역은 표현 영역으로부터 데이터를 받아 사용자가 원하는 기능을 실행합니다. 응용 서비스의 역할 응용 서비스는 사용자가 요청한 기능을 실행합니다. 응용 서비스는 사용자의 요청을 처리하기 위해 리포지터리에서 도메인 객체를 가저와 사용합니다. 응용 서비스의 로직이 복잡하다면 도메인 로직의 일부를 구현하고 있을 가능성이 높으며 이로 인해 코드 중복, 로직 분산으로 인한 낮은 응집도를 가질 수 있습니다. 또한 응..

도메인 주도 개발 시작하기라는 책에서 CQRS 패턴에 대해 잠깐 얘기가 나오는데 이를 조금 더 알고 싶어 정리하게 되었습니다. 정리한 내용은 필자의 생각을 토대로 진행되었으므로 틀린 부분이 있을 수 있습니다. CQRS 패턴 CQRS는 명령과 조회의 책임을 분리하자는 것입니다. 명령과 조회가 무엇을 의미하는 건지 살펴볼 필요가 있을거 같습니다. 🤔 명령이란 무엇인가? 명령이란 애플리케이션에서 데이터를 저장(Create), 수정(Update), 삭제(Delete)를 하는 행위를 말합니다. 조금 더 쉽게 얘기해 보자면 어떠한 명령을 통해 객체의 상태가 변한다면 명령이라 생각할 수 있을거 같습니다. 🤔 조회란 무엇인가? 조회란 데이터 베이스 등에서 값을 읽어오는 행위를 말합니다. 🤔 왜 분리가 필요할까? 예전에..

JPA를 이용한 리포지터리 구현 애그리게이트를 어떤 저장소에 저장하느냐에 따라 리포지터리를 구현하는 방법이 다릅니다. 해당 파트에서는 자바의 ORM 표준인 JPA를 이용해서 리포지터리와 애그리게이트를 구현합니다. 💡 모듈 위치 리포지터리 인터페이스는 애그리게이트와 함께 도메인 영역에 속하며 리포지터리를 구현한 구현 클래스는 인프라 영역에 속합니다. 팀 표준에 따라 리포지터리 구현 클래스를 domain.impl과 같은 패키지에 위치시킬 수 잇지만 이것은 인터페이스와 구현체를 분리하기 위한 타협안이지 좋은 설계가 아니라고 합니다. 💡 리포지터리의 기본 기능 구현 인터페이스는 애그리게이트 루트를 기준으로 작성하며 애그리게이트를 조회하는 기능의 이름을 지을 때 특별한 규칙은 없지만 보통 findBy(프로퍼티 값..
- Total
- Today
- Yesterday
- redis 대기열 구현
- 서비스 기반 아키텍처
- spring boot poi excel download
- 레이어드 아키텍처란
- redis sorted set
- spring boot redisson 분산락 구현
- spring boot 엑셀 다운로드
- space based architecture
- 공간 기반 아키텍처
- redis sorted set으로 대기열 구현
- transactional outbox pattern
- spring boot redisson sorted set
- service based architecture
- JDK Dynamic Proxy와 CGLIB의 차이
- java ThreadLocal
- pipe and filter architecture
- spring boot redisson destributed lock
- polling publisher spring boot
- spring boot excel download paging
- 자바 백엔드 개발자 추천 도서
- 트랜잭셔널 아웃박스 패턴 스프링부트
- pipeline architecture
- spring boot redis 대기열 구현
- @ControllerAdvice
- transactional outbox pattern spring boot
- java userThread와 DaemonThread
- spring boot excel download oom
- microkernel architecture
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 람다 표현식
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |