Skip to content

프로젝트 구조

DongJun-Lee edited this page Sep 13, 2023 · 1 revision

패키지 구조

지속 가능한 소프트웨어 설계를 위해 포트와 어댑터 아키텍처를 위한 패키지 구조를 세팅하였습니다.

│
└── com
    └── coupon
        │── ui
        │   └── CouponController 
        │
        │── infrastructure   
        │   └── persistence
        │       └── CouponPersistenceAdapter 
        │
        │── domain
        │   │── Coupon
        │   └── Money   
        │
        └── application
            │── service
            │    │── CouponCommandService
            │    └── CouponQueryService  
            │
            └── port
                │── in
                │   │── GetCouponListQuery
                │   └── IssueCouponUseCase
                │
                └── out
                    │── LoadCouponListPort
                    └── UpdateCouponStatePort

모델 매핑 전략

웹 계층, 애플리케이션 계층, 영속성 계층간 모델 매핑 전략 선택 가이드 입니다.

매핑 전략

  • 매핑하지 않기 전략
  • 완전 매핑 전략
  • 양방향 매핑 전략
  • 단뱡향 매핑 전략

변경 유스케이스

웹 계층 <-> 애플리케이션 계층

유스케이스간의 결합을 제거하기 위해 완전 매핑 전략을 첫 번째 선택지로 둔다.

애플리케이션 계층 <-> 영속성 계층

매핑 오버헤드를 줄이고 빠르게 코드를 짜기 위해서 매핑하지 않기 전략을 첫 번째 선택지로 둔다.

  • 하지만 애플리케이션 계층에서 영속성 문제를 다뤄야 하게 되면 양방향 매핑 전략으로 변경한다.

쿼리 케이스

웹 계층 <-> 애플리케이션 계층

매핑 오버헤드를 줄이고 빠르게 코드를 짜기 위해 매핑하지 않기 전략을 첫 번째 선택지로 둔다.

  • 하지만 애플리케이션 계층에서 웹 문제를 다뤄야 하게 되면 양반향 매핑 전략으로 변경한다.

애플리케이션 계층 <-> 영속성 계층

매핑 오버헤드를 줄이고 빠르게 코드를 짜기 위해 매핑하지 않기 전략을 첫 번째 선택지로 둔다.

  • 하지만 애플리케이션 계층에서 영속성 문제를 다뤄야 하게 되면 양반향 매핑 전략으로 변경한다.