728x90
src/
└── main/
└── kotlin/
└── com/
└── yourapp/
├── common/ or core/ or shared/
│ ├── mail/
│ │ ├── port/
│ │ │ └── MailService.kt
│ │ └── infrastructure/
│ │ └── MailServiceImpl.kt
├── user/
│ ├── controller/
│ ├── domain/
│ ├── service/
│ └── infrastructure/
└── otherdomain/
├── controller/
├── domain/
├── service/
└── infrastructure/
---
애플리케이션의 핵심 비즈니스 로직을 외부요소(ex:데이터베이스, 웹 프레임워크 등)로부터 분리하여 모듈화 하는것을 목표로 한다.
- controller
- 용도: 사용자의 요청을 받아 처리하고, 결과를 사용자에게 응답하는 역할을 합니다. 웹 어플리케이션에서는 REST API를 통해 클라이언트와 통신합니다.
- 포함 내용: REST 컨트롤러 클래스들이 위치합니다. 이들은 HTTP 요청을 받아 비즈니스 로직을 처리하는 서비스 계층의 메서드를 호출하고, HTTP 응답을 반환합니다.
- domain
- 용도: 애플리케이션의 핵심 비즈니스 로직과 비즈니스 모델을 포함합니다. 이 계층은 외부 요소로부터 독립적이어야 하며, 애플리케이션의 비즈니스 규칙을 정의합니다.
- 포함 내용: 도메인 모델값 객체), 도메인 서비스, 도메인 이벤트, 도메인 예외 등이 포함됩니다.
- service
- 용도: 애플리케이션의 외부와의 상호작용을 담당하는 인프라스트럭처 계층입니다. 데이터베이스 액세스, 외부 API 호출, 파일 시스템 작업 등을 처리합니다.
- 포함 내용: 데이터베이스 리포지토리 구현체(JPA 리포지토리 등), 외부 서비스를 위한 클라이언트, 메일 서비스 구현체, 파일 저장 구현체 등이 포함됩니다. service 계층의 포트 인터페이스에 대한 실제 구현을 제공합니다.
- infrastructure
- 용도: 도메인 모델의 인터페이스를 구현하는 엔티티 클래스를 포함합니다. 이 계층은 데이터베이스 액세스 로직(JPA 리포지토리 등), 외부 API 클라이언트, 파일 시스템 작업 등 인프라스트럭처와 관련된 구현체를 담당합니다.
- 포함 내용: 데이터베이스 리포지토리 구현체(JPA 리포지토리 등), 외부 서비스를 위한 클라이언트, 메일 서비스 구현체, 파일 저장 구현체 등이 포함됩니다. service 계층의 포트 인터페이스에 대한 실제 구현을 제공합니다.
728x90
'주절주절 > 정보' 카테고리의 다른 글
JPA 및 Spring Data JPA에서 find와 get 프리픽스 (1) | 2024.02.11 |
---|---|
from 메서드 to 메서드 (0) | 2023.08.06 |
읽어보면 좋은 url 정리중.. (0) | 2023.03.03 |
보면 정말 좋은 url 정리 중.. (0) | 2023.03.01 |
터미널 명령어 적는중 (0) | 2023.03.01 |
댓글