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 |
모듈 | 접미어 | 설명 |
---|---|---|
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 |