Skip to content

Project Structure

KIM ROKWON edited this page May 14, 2024 · 2 revisions

멀티 모듈 구조로 외부 시스템과의 느슨한 연결에 집중하여 패키지를 분리.
환경설정 정보는 git submodule로 pivate 레포지토리에서 따로 관리하고 build시 fetch하도록 설정.

├── adevspoon-api     ### API 모듈 ###
│    ├── common  # 전역적으로 사용되는 컴포넌트  
│    ├── config  # 전역적으로 적용되는 설정
│    └── <API 그룹>
│        ├── controller
│        ├── dto
│        └── service 
│
├── adevspoon-common  ### 공통 모듈 ### (exception, enum,dto) 
├── adevspoon-domain  ### 도메인 모듈 ###     
│    ├── common  # 도메인 전역적으로 사용되는 컴포넌트
│    ├── config  # 도메인 전역적으로 적용되는 설정
│    └── <도메인> 
│        ├── domain
│        ├── dto
│        ├── exception
│        ├── repository
│        └── service
│
└── adevspoon-infrastructure  ### 외부 시스템 모듈 ### 
     ├── common  # 인프라 전역적으로 사용되는 컴포넌트
     ├── config  # 인프라 전역적으로 적용되는 설정
     └── <외부 시스템>  # Oauth, Storage 등 
         ├── dto
         ├── exception
         ├── service # interface와 구현체를 분리하여 외부 시스템의 변경에 유연하게 대응
         └──         # client, config, util 등 필요에따라 패키지 분리 
Clone this wiki locally