스터디(59)
-
CQRS
보통 데이터를 조회 시에 여러 에그리거트에서 데이터를 가져와야 한다. 여러 애그리거트의 데이터가 필요하면 다양한 방안의 구현 방법을 고민해야 하는데, 식별자를 이용해서 애그리거트를 참조하는 방식을 사용하면 즉시 로딩과 같은 JPA 쿼리 관련 최적화 기능을 사용할 수 없다. 직접 참조하는 방식을 사용한다 하더라도, 같은 연관도 즉시/지연 로딩 등 다양한 방법으로 처리애햐 하고, DBMS가 제공하는 전용 기능이 필요하면 네이티브 쿼리를 사용해야 할 수도 있다. ORM 기법은 도메인 상태 변경 기능을 구현하는 데는 적합하지만, 데이터를 가져와 출력하는 기능울 구현하기에는 고려할게 많아서 구현을 복잡하게 한다. 상태 변경을 위한 모델과 조회를 위한 모델을 분리하면 위 문제를 해결할 수 있다. # CQRS 시스템..
2023.09.21 -
이벤트
## 시스템 간 강결합 문제 쇼핑몰에서 구매를 취소하면 환불처리를 해야한다. 보통 결제 시스템은 외부에 있으므로 Order 도메인에서 구매 취소에 관련된 서비스를 다음과 같이 파라미터로 주입할 것이다 위처럼 외부 시스템을 도메인에서 호출 시 3가지 문제가 발생할 수 있다. 1. 외부 서비스가 비정상일 경우 트랜젝션 처리를 어떻게 할까? - 롤백을 해야할까? 일단 커밋을 해야할까?, 아니면 상태만 변경한 후에 나중에 다시 시도를 해야할까? 2. 외부 시스템의 응답 시간이 길어지면 어떻게 할까? - 대기 시간만큼 응답시간이 길어져서 성능에 악영향을 주지 않을까? 3. 도메인 객체에 서비스를 전달하면 설계상 문제가 발생하지 않을까? - 도메인 로직과 외부 로직이 뒤섞이지 않을까? 위 문제가 발생하는 이유는 바..
2023.09.09 -
도메인 모델과 바운디드 컨텍스트
# 도메인 모델과 경계 - 도메인 모델을 만들 때 처음부터 완벽하게 단일 모델을 만들 수는 없음. - 한 도메인은 다시 여러 하위 도메인으로 구분됨. - 한 도메인을 논리적으로 같아 보여도 하위 도메인에 따라 다른 용어를 사용할 수 있음 - 하위 도메인마다 같은 용어라도 의미가 다르기 때문에 한 개의 모델로 모든 하위 도메인을 표현할 수 없음 - 올바른 도메인 모델을 개발하려면 하위 도메인 마다 모델을 다르게 만들어줘야 - 각 모델은 명시적으로 구분되는 경계를 가져야 함. - 바운디드 컨텍스트 : 구분되는 경계를 갖는 컨텍스트 # 바운디드 컨텍스트 - 모델의 경계를 결정 - 하나의 바운디드 컨텍스트는 논리적으로 한 개의 모델을 가짐 - 이상적으로는 하위 도메인과 바운디드 컨텍스트가 일대일이면 좋겠으나, ..
2023.09.02 -
모듈 12 : 엣지 서비스
- AWS 엣지 컴퓨팅 서비스는 필요에 따라 엔드포인트에 가깝게 데이터 처리 및 분석 기능을 제공 # Route 53 - DNS, 도메인 이름 등록 및 상태 확인 기능 제공 - EC2, ELB, S3, CloudWatch 등과 효율적으로 연결 # Route53 라우팅 정책 - 단순 라우팅 정책 : 도메인 관련하여 특정 리소스 하나에 사용. 웹서버 등 이용 - 장애 조치 라우팅 정책 : 액티브-패시브 장애 조치 구성하는 경우 사용 - 지리적 위치 라우팅 정책 : 사용자 위치 기준으로 트래픽을 라우팅하는 경우 사용 - 지리 근접 라우팅 정책 : 리소스 위치를 기반으로 트래픽을 라우팅하고, 선택적으로 한 위치 리소스에서 다른 리소스로 트래픽을 이동하려는 경우 사용 - 지연 시간 라우팅 정책 : 여러 AWS 리..
2023.08.28 -
모듈 11 : 서버리스
# 서버리스 # API Gateway - 애플리케이션을 위한 진입점 생성 - 수천 건의 동시 API 호출 처리 - 인터넷 연결 또는 내부 트래픽만 선택 - API 생성, 게시, 유지 관리, 모니터링, 보호 가능 - AWS 서비스와 기타 퍼블릭 또는 프라이빗 서비스 연결 가능 - 모바일 또는 웹앱 AWS 서비스 및 호스팅, RESTful, HTTP API 지원 # SQS - 메시지 큐 - 수십억 건의 메시지 처리 - 여러 이중와 가용 영역 사용 - 애플리케이션 구성 요소 느슨하게 결합 가능 - 비동기식 처리에 사용 - 실패한 단계에 대한 내결합성 제공 - 급증하는 수요 처리 기능 # SQS 대기열 유형 - 표준 대기열 : 최소 1회 메시지 전송 지원, 최선 정렬, 일반적으로 수신된 순서와 동일한 순서이나,..
2023.08.28 -
모듈 10 : 네트워킹 2
# VPC 엔드포인트 - VPC 엔드포인트는 VPC와 지원되는 AWS 서비스 간의 신뢰할 수 있는 경로를 제공 - NAT, VPN, 인터넷 게이트웨이 등 연결이 필요하지 않음 - VPC 인스턴스는 서비스의 리소스와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않음 - VPC를 사용하지 않으면 VPC는 인터넷 게이트웨이 및 NAT, 퍼블릭 IP 주소가 있어야 VPC 외부에서 서버리스 서비스에 엑세스 가능 # 게이트웨이 및 인터페이스 VPC 엔드포인트 ## 게이트웨이 엔드포인트 - 라우팅 테이블에 있는 경로의 지원 대상. 고객이 지정하는 게이트웨이 - 라우팅 테이블은 경로를 사용하여 각 엔드포인트를 통해 요청 전송 - AWS 서비스로 전송되는 트래픽 대상 - S3, DynamoDB 지원 - 무료 ## 인터페..
2023.08.28