src/
├── api/
│ ├── __init__.py
│ ├── routes/ # FastAPI 라우트 정의
│ │ ├── collection_routes.py # 콜렉션 관련 엔드포인트
│ │ ├── user_routes.py # 사용자 관련 엔드포인트
│ │ └── sync_routes.py # 동기화 관련 엔드포인트
│ └── schemas/ # Pydantic을 통한 요청/응답 스키마 정의
│ ├── collection_schema.py
│ ├── user_schema.py
│ └── sync_schema.py
├── application/
│ ├── __init__.py
│ ├── services/ # 각 유스케이스에 따른 서비스 정의
│ │ ├── collection_service.py
│ │ ├── user_service.py
│ │ └── sync_service.py
│ └── commands/ # 요청이나 명령을 처리하는 핸들러들 (CQRS 패턴을 사용할 경우)
│ ├── create_collection.py
│ ├── retrieve_user_info.py
│ └── sync_data.py
├── domain/
│ ├── __init__.py
│ ├── models/ # 도메인 모델(엔티티, VO)
│ │ ├── collection.py # 단일, 복합 콜렉션에 관한 도메인 모델
│ │ ├── user.py # 사용자 도메인 모델
│ │ └── sync.py # 동기화 관련 도메인 모델
│ ├── services/ # 순수 도메인 서비스 (비즈니스 규칙)
│ │ ├── collection_service.py
│ │ ├── user_service.py
│ │ └── sync_service.py
│ └── exceptions/ # 도메인과 관련된 예외 처리
│ ├── invalid_identifier_exception.py
│ └── collection_not_found_exception.py
├── infrastructure/
│ ├── __init__.py
│ ├── persistence/ # 데이터베이스 관련 처리
│ │ ├── collection_repository.py
│ │ ├── user_repository.py
│ │ └── sync_repository.py
│ ├── external_apis/ # 외부 API 호출
│ │ ├── cms_api.py
│ │ └── agent_api.py
│ └── config/ # 환경 설정 및 의존성 관리
│ ├── database.py # MongoDB 연결 설정
│ └── app_settings.py
├── core/ # 공통 유틸리티 및 설정
│ ├── __init__.py
│ ├── utils/ # 유틸리티 함수
│ │ ├── logger.py # 로깅 기능
│ │ └── time_utils.py # 시간 관련 유틸
│ └── config.py # 전역 설정 파일
└── shared_kernel/ # 도메인 간에 공유되는 핵심 개념
├── __init__.py
├── events.py # 도메인 이벤트 처리 (CQRS, 이벤트 소싱 시)
├── value_objects.py # VO (밸류 오브젝트)
└── exceptions.py # 공통 예외 처리