demo-hexagonal
- demo-app (JDK 17 + Kotlin + Spring Boot 2 + Spring MVC + Spring Data JPA)
- demo-reactive (JDK 17 + Spring Boot 2 + Spring WebFlux + Spring Data MongoDB Reactive)
1. demo-app
1.1. 프로젝트 구성
demo-app 프로젝트는 멀티 모듈로 구성되어있습니다.
- core
- 헥사고날 아키텍처의 application core 영역에 해당
- 프로젝트의 핵심적인 비즈니스 로직이 들어있습니다
- domain, port를 포함하고 있으며, 모든 클래스는 public 접근제한자로 설정되어 있습니다.
- infrastructure
- 헥사고날 아키텍처의
adapter - out
영역에 해당 - datasource에 관련된 모듈이 들어갑니다.
- persistence adapter, JpaRepository, ORM Entity 가 포함되어있습니다.
- 헥사고날 아키텍처의
- server
- 헥사고날 아키텍처의
adapter - in
영역에 해당 - controller를 포함하고 있으며, 모든 클래스는 internal 접근제한자로 설정되어 있습니다.
- 헥사고날 아키텍처의
- util
- core, server, infrastructure 모듈에서 공통적으로 사용할 유틸이 들어있습니다.
1.2. Tech Stacks
- JDK 17
- Kotlin 1.6.21
- Build Tools
- Gradle
- Kotlin DSL
- Spring MVC
- Tomcat
- Spring Boot 2
- Spring Data JPA
- MariaDB 10.8.3
- OpenAPI Specification
- Swagger v3
- springdoc-openapi ui 1.6.13
- Swagger v3
1.3. demo-app
demo 웹 애플리케이션의 실행 진입점은 server - demo-app
모듈의 DemoAppApplication 입니다.
demo-app은 아래와 같이 :util:common-util
, :core:demo-core
, :infrastructure:datastore-mariadb
모듈을 포함합니다.
1.4. demo-all-in-one-app
demo-app을 하나의 모듈로 만든 웹 애플리케이션
adapter + core + domain 을 하나의 프로젝트 내에 구성했습니다.
2. demo-reactive-app
2.1. 프로젝트 구성
demo-reactive-app 프로젝트도는 멀티 모듈로 구성되어있습니다.
- core
- 헥사고날 아키텍처의 application core 영역에 해당
- 프로젝트의 핵심적인 비즈니스 로직이 들어있습니다
- domain, port를 포함하고 있으며, 모든 클래스는 public 접근제한자로 설정되어 있습니다.
- infrastructure
- 헥사고날 아키텍처의
adapter - out
영역에 해당 - datasource에 관련된 모듈이 들어갑니다.
- persistence adapter, JpaRepository, ORM Entity 가 포함되어있습니다.
- 헥사고날 아키텍처의
- server
- 헥사고날 아키텍처의
adapter - in
영역에 해당 - controller를 포함하고 있으며, 모든 클래스는 internal 접근제한자로 설정되어 있습니다.
- 헥사고날 아키텍처의
- util
- core, server, infrastructure 모듈에서 공통적으로 사용할 유틸이 들어있습니다.
2.2. Tech Stacks
- JDK 17
- Kotlin 1.6.21
- Build Tools
- Gradle
- Kotlin DSL
- Spring WebFlux
- Netty
- Coroutines
- Spring Boot 2
- Spring Data MongoDB Reactive
- MongoDB 6.0.4
- OpenAPI Specification
- Swagger v3
- springdoc-openapi-kotlin 1.6.14
- springdoc-openapi-webflux-ui 1.6.14
- Swagger v3
2.3. demo-reactive-app
demo 웹 애플리케이션의 실행 진입점은 server - demo-reactive-app
모듈의 DemoReactiveAppApplication 입니다.
demo-reactive-app은 아래와 같이 :util:common-util
, :core:demo-reactivecore
, :infrastructure:datastore-mongodb-reactive
모듈을 포함합니다.