IDE
IntelliJ
Language
Kotlin
Framework
Spring Boot 3.2.5, Gradle
Authentication
Spring Security, JSON Web Tokens, Opaque Token
Orm
Spring Data JPA
Database
MySQL
External
Nginx, Docker, Redis, Kubernetes, ELK
Monitoring
Prometheus, Grafana, Sentry
CI/CD
ArgoCD, Github Action
API Docs
Notion, Swagger
Other Tool
Jira, Discord, Postman, Figma
Class Naming Convention ✨
모듈
접미어
설명
Domain
UseCase
In Port 인터페이스
Repository
Out Port 인터페이스
- 비지니스 로직에서 해결하고자 하는 도메인 객체들
- 모든 모듈에서 사용하는 DTO, VO, Entity(JPA Enitty 아님) 객체의 모음
- 일단 포트 역할하는 인터페이스도 이 모듈에 담는다.
app
adapter
core
support
domain
사용가능한 모듈 여부
-
-
-
-
-
- 프로젝트와는 독립적으로 동작 할 수 있는 객체들을 모아두는 모듈
- TimeUtis 등
app
adapter
core
support
domain
사용가능한 모듈 여부
-
-
-
-
-
- 비지니스 로직을 관리하는 모듈
- 웹 통신 / DB 관련 객체는 가급적 사용을 피한다.
app
adapter
core
support
domain
사용가능한 모듈 여부
-
Runtime
-
O
O
- DB나 타 서비스 등 다른 서비스와 통신 하는 모듈
- JPA / Kafka Producer / Http 통신 등이 해당 된다.
app
adapter
core
support
domain
사용가능한 모듈 여부
-
-
-
O
O
- 서비스에 들어오는 요청을 처리하는 구현체
- Web Controller / Kafka Consumer 등이 해당 된다.
app
adapter
core
support
domain
사용가능한 모듈 여부
-
-
O
O
O