Skip to content

ybh89/ddd-with-mybatis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Mybatis 환경에서 DDD 데모 프로젝트

##프로젝트 개요

  • mybatis 환경에서 DDD를 구현하기 위한 여러가지 패턴의 아이디어를 데모로 구현한다.
  • 아이디어가 있다면 버전 패키지를 만들고 구현해볼 수 있다.

##기술 스택

  • Java 11
  • h2 in-memory
  • mybatis
  • Spring Data JDBC
  • Spring Boot 2.6.1
  • Gradle Project
  • Lombok
  • RestAssured

###데모 도메인 소개

  • Maker(제조사), Brand(브랜드), Series(시리즈)로 구성
  • 제조사->브랜드->시리즈 로 단반향으로 구현
  • 제조사->브랜드 는 일대다 관계
  • 브랜드->시리즈 는 일대다 관계
  • 제조사, 브랜드는 수정은 가능하나 삭제될 수 없다. 시리즈만 삭제 가능.

###V1

  • 도메인 모델 패턴으로 비지니스 로직은 도메인에 있다고 가정(실제 비즈니스로직은 없지만..)
  • 서비스에서 각 도메인에 해당하는 Repository 로 저장하고 수정고 삭제한다.
  • 수정될때, 업데이트될 제조사나 브랜드나 시리즈는 식별자(id)가 들어온다.
  • 수정될때, 추가될 브랜드나 시리즈는 식별자(id)가 없다.
  • 수정될때, 삭제될 시리즈는 기존 브랜드에는 존재하나 요청한 브랜드에는 존재하지 않는다.

###V2

  • V1에서 서비스에서 실제 데이터를 어디에 어떻게 저장할지, 수정할지, 삭제할지 결정하기 때문에 해당 책임을 AggregateRepository에 위임한다.
  • Aggregate 단위로 추가, 수정, 삭제, 조회 되야한다.
  • V1에서는 이미 추가, 조회는 Aggregate 단위로 구현되어 있음.
  • 비즈니스가 추가되면 Aggregate root인 Maker를 통해 수행되야한다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages