mirror of
https://github.com/ktds-dg0501/kt-event-marketing.git
synced 2025-12-06 10:06:24 +00:00
174 lines
4.7 KiB
Markdown
174 lines
4.7 KiB
Markdown
패키지 구조 표준
|
|
|
|
레이어드 아키텍처 패키지 구조
|
|
|
|
├── {SERVICE}
|
|
│ ├── domain
|
|
│ ├── service
|
|
│ ├── controller
|
|
│ ├── dto
|
|
│ ├── repository
|
|
│ │ ├── jpa
|
|
│ │ └── entity
|
|
│ ├── config
|
|
└── common
|
|
├── dto
|
|
├── util
|
|
├── response
|
|
└── exception
|
|
|
|
Package명:
|
|
- com.{ORG}.{ROOT}.{SERVICE}
|
|
예) com.unicorn.lifesub.mysub, com.unicorn.lifesub.common
|
|
|
|
변수:
|
|
- ORG: 회사 또는 조직명
|
|
- ROOT: Root Project 명
|
|
- SERVICE: 서비스명으로 Root Project의 서브 프로젝트임
|
|
|
|
|
|
예시
|
|
|
|
com.unicorn.lifesub.member
|
|
├── MemberApplication.java
|
|
├── controller
|
|
│ └── MemberController.java
|
|
├── dto
|
|
│ ├── LoginRequest.java
|
|
│ ├── LogoutRequest.java
|
|
│ └── LogoutResponse.java
|
|
├── service
|
|
│ ├── MemberService.java
|
|
│ └── MemberServiceImpl.java
|
|
├── domain
|
|
│ └── Member.java
|
|
├── repository
|
|
│ ├── entity
|
|
│ │ └── MemberEntity.java
|
|
│ └── jpa
|
|
│ └── MemberRepository.java
|
|
└── config
|
|
├── SecurityConfig.java
|
|
├── DataLoader.java
|
|
├── SwaggerConfig.java
|
|
└── jwt
|
|
├── JwtAuthenticationFilter.java
|
|
├── JwtTokenProvider.java
|
|
└── CustomUserDetailsService.java
|
|
|
|
|
|
클린 아키텍처 패키지 구조
|
|
|
|
├── biz
|
|
│ ├── usecase
|
|
│ │ ├── in
|
|
│ │ ├── out
|
|
│ ├── service
|
|
│ └── domain
|
|
│ └── dto
|
|
├── infra
|
|
│ ├── controller
|
|
│ ├── dto
|
|
│ ├── gateway
|
|
│ │ ├── repository
|
|
│ │ └── entity
|
|
│ └── config
|
|
|
|
|
|
Package명:
|
|
- com.{ORG}.{ROOT}.{SERVICE}.biz
|
|
- com.{ORG}.{ROOT}.{SERVICE}.infra
|
|
예) com.unicorn.lifesub.mysub.biz, com.unicorn.lifesub.common
|
|
|
|
변수:
|
|
- ORG: 회사 또는 조직명
|
|
- ROOT: Root Project 명
|
|
- SERVICE: 서비스명으로 Root Project의 서브 프로젝트임
|
|
|
|
예시
|
|
|
|
|
|
com.unicorn.lifesub.mysub
|
|
├── biz
|
|
│ ├── dto
|
|
│ │ ├── CategoryResponse.java
|
|
│ │ ├── ServiceListResponse.java
|
|
│ │ ├── MySubResponse.java
|
|
│ │ ├── SubDetailResponse.java
|
|
│ │ └── TotalFeeResponse.java
|
|
│ ├── service
|
|
│ │ ├── FeeLevel.java
|
|
│ │ └── MySubscriptionService.java
|
|
│ ├── usecase
|
|
│ │ ├── in
|
|
│ │ │ ├── CancelSubscriptionUseCase.java
|
|
│ │ │ ├── CategoryUseCase.java
|
|
│ │ │ ├── MySubscriptionsUseCase.java
|
|
│ │ │ ├── SubscribeUseCase.java
|
|
│ │ │ ├── SubscriptionDetailUseCase.java
|
|
│ │ │ └── TotalFeeUseCase.java
|
|
│ │ └── out
|
|
│ │ ├── MySubscriptionReader.java
|
|
│ │ ├── MySubscriptionWriter.java
|
|
│ │ └── SubscriptionReader.java
|
|
│ └── domain
|
|
│ ├── Category.java
|
|
│ ├── MySubscription.java
|
|
│ └── Subscription.java
|
|
└── infra
|
|
├── MySubApplication.java
|
|
├── controller
|
|
│ ├── CategoryController.java
|
|
│ ├── MySubController.java
|
|
│ └── ServiceController.java
|
|
├── config
|
|
│ ├── DataLoader.java
|
|
│ ├── SecurityConfig.java
|
|
│ ├── SwaggerConfig.java
|
|
│ └── jwt
|
|
│ ├── JwtAuthenticationFilter.java
|
|
│ └── JwtTokenProvider.java
|
|
└── gateway
|
|
├── entity
|
|
│ ├── CategoryEntity.java
|
|
│ ├── MySubscriptionEntity.java
|
|
│ └── SubscriptionEntity.java
|
|
├── repository
|
|
│ ├── CategoryJpaRepository.java
|
|
│ ├── MySubscriptionJpaRepository.java
|
|
│ └── SubscriptionJpaRepository.java
|
|
├── MySubscriptionGateway.java
|
|
└── SubscriptionGateway.java
|
|
|
|
|
|
---
|
|
|
|
common 모듈 패키지 구조
|
|
|
|
├── common
|
|
├── dto
|
|
├── entity
|
|
├── config
|
|
├── util
|
|
└── exception
|
|
|
|
|
|
com.unicorn.lifesub.common
|
|
├── dto
|
|
│ ├── ApiResponse.java
|
|
│ ├── JwtTokenDTO.java
|
|
│ ├── JwtTokenRefreshDTO.java
|
|
│ └── JwtTokenVerifyDTO.java
|
|
├── config
|
|
│ └── JpaConfig.java
|
|
├── entity
|
|
│ └── BaseTimeEntity.java
|
|
├── aop
|
|
│ └── LoggingAspect.java
|
|
└── exception
|
|
├── ErrorCode.java
|
|
├── InfraException.java
|
|
└── BusinessException.java
|
|
|
|
|