[DDD] 애그리거트
이전 글에서 도메인 모델과 도메인 주도 개발을 위한 아키텍처를 알아봤다. 이번 글에서는 도메인 모델을 잘 이해할 수 있도록 만들어주는 aggregate(애그리거트)에 대해 알아본다. Aggregate 애그리거트는 관련된 객체를 하나로 묶는 역할을 한다. 애그리거트로 묶어서 보면 모...
이전 글에서 도메인 모델과 도메인 주도 개발을 위한 아키텍처를 알아봤다. 이번 글에서는 도메인 모델을 잘 이해할 수 있도록 만들어주는 aggregate(애그리거트)에 대해 알아본다. Aggregate 애그리거트는 관련된 객체를 하나로 묶는 역할을 한다. 애그리거트로 묶어서 보면 모...
도메인 주도 개발 시작하기(최범균 저) 책을 읽고 정리한 내용입니다. DDD란 ?? Domain Driven Design은 도메인 패턴을 중심으로 설계하는 방식을 말한다. 아키텍처 설계를 도메인 모델과 도메인 로직에 초점을 맞추는 것이다. Ubiquitous language(보편적...
대규모 트래픽 발생 시 지연에 대비하는 방법 서비스에서 사용자 수가 급격히 증가하는 이벤트가 있을 때, 대규모 트래픽을 효율적으로 처리하는 것이 중요하다. MSA로 구성된 서비스에서 지연 발생 시 장애 전파를 막기 위해서는 발생한 장애가 다른 micro service에 영향을 주지...
매개변수가 유효한지 검사하라 대부분의 메서드와 생성자는 매개변수가 특정 조건을 만족해야 원하는 동작을 할 수 있다. 매개변수에 대한 제약 조건은 메서드가 실행되기 전에 검증이 되어야 한다. 메서드가 동작하기 전에 오류를 잡아야 오류 발생 지점을 쉽게 찾을 수 있다. 만약 null이...
테스트 환경 spring boot: 2.1.4.RELEASE jdk: 1.8 spring-kafka: 2.2.5.RELEASE 지금까지 Kafka consumer를 구성할 때 정말 간단한 설정만 하고, 사용했었다. spring-kafka를 이용해 @KafkaListener로 con...
예외 처리 개발을 하다보면 예외처리에 대한 고민을 많이 하게된다. 어느 부분에서는 예외를 명시해서 던지기만 하고 어느 부분에서는 예외를 원하는 방식으로 처리한다. 프로그램의 가독성과 유지보수성, 신뢰성을 위한 올바른 예외처리를 알아본다. 예외처리에 대해 Effective java ...
업무 중 kafka consumer를 사용해서 데이터를 처리하는 부분이 필요했다. 팀원들과의 고민은 consumer 구현 위치를 어떤 repository에 둘 것인가에 대한 것이었다. 여러 선택지와 각각의 장단점을 고려해보면서 이번 기회에 kafka를 제대로 정리하면 좋겠다고 생각...
maven central은 여러가지 dependency를 저장해 놓은 패키지 저장소이다. 프로젝트에 필요한 의존성을 import 하여 사용할 수 있다. MSA 환경에서 Maven repository의 필요성 MSA 환경에서는 DTO(Data Transfer Object)를 공유하게...
알림 시스템 구조 [MSA 2] AWS SQS를 이용한 알림 시스템 설계 및 구현 알림 시스템은 위와 같이 구성되어 있다. 여러 micro service에서 이벤트가 발생하게 되면 SNS나 SQS에 메세지를 publish하게 된다. Notification service는 SQS에 ...
프로젝트를 설계할 때는 알림 시스템을 간단하게 생각하고 설계했었다. 하지만 알림을 구현하기 시작하면서 재 설계의 필요성을 느꼈다. 알림 시스템의 요구사항 알림 템플릿 먼저 알림 시스템의 템플릿을 알아보자. 배송이 시작되었습니다. [알림 메세지] https://mypage [연관된 ...
새 버전의 콘텐츠를 사용할 수 있습니다.