Skip to content

Repository files navigation

MSA 1st

추가 질문

  1. DDD에서 값 객체와 애그리거트를 적용해보았고, 추가적으로 해볼만한게 4레이어드아키텍처와 헥사고날아키텍처 정도라고 생각하는데 이에 대해 어떻게 생각하시는지 알고싶습니다.
    4레이어드는 굳이굳이? 라는 생각에 이번에도 그냥 사용했고 헥사고날은 개념만 아는 상태라 이걸 적용하면 어떤 장점이 있는지 현재 상태에서 어떻게 변경되는지를 모르겠습니다.
  2. 프로젝트 기존 코드에서는 오더생성 메세지큐 내부에서 페인클라이언트를 통해 프로덕트에게 통신을 보냈습니다. 그런데 이는 비동기통신 내부에서 동기통신을 보낸거라 뭔가 이상하다고 생각이 들어서 수정을 했는데 이렇게 보내는건 일반적으로 사용하는 방식인가요?
    (비동기 통신 내부에서 동기 통신을 하는것)
    추가로 이 때문에 페인클라이언트에서 폴백을 구현하고 여기서 보상트랜잭션 코드를 작성하였으나, 위와 같은 생각(비동기와 동기) 때문에 폴백에서는 에러를 던지고 메세지큐에서 받아 보상트랜잭션을 처리하는 것으로 하였습니다.
    이렇게 수정하는게 맞는것인지 수정안해도 상관없었던건지 모르겠습니다.
  3. 멀티모듈에서는 git 연결이 진짜 힘들던데 이거 어떻게하는걸까요..? 진짜 고생해서 했는데 아직 제대로된 방법을 못 찾겠습니다.

구현 패키지

Eureka Auth Order Product Gateway

Auth

  • 회원가입
  • 로그인
  • 권한 변경
  • 토큰 검증
  • 토큰 검증 (admin 권한 검증)
  • 기타
    값객체 (username)

Order

  • 주문 생성
    RabbitMQ
    보상 트랜잭션 (재고 감소로 인한 주문 실패 시)
  • 주문 상태 변경
  • 주문 조회
    레디스 캐싱
  • 기타
    값객체 (price, quantity)
    루트 애그리거트 (Order 엔티티)

Product

  • 모든 권한 admin
  • 상품 생성
    레디스 캐싱
  • 상품 단일 조회
  • 상품 목록 조회
    레디스 캐싱
  • 기타
    값객체 (price, quantity)
    루트 애그리거트 (Product 엔티티)

Gateway

  • 인증 필터
  • 인가 필터
  • 커스텀 로드밸런싱 필터
  • 서버 포트 필터


사용 기술

백엔드

  • JDK 17
  • SpringBoot 3.4.0
  • Spring Security
  • RabbitMQ
  • Resilience4j

데이터베이스

  • JPA
  • mySQL
  • Redis

인프라

  • Eureka
  • Docker
  • Docker Compose

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages