{"id":14969008,"url":"https://github.com/pastjung/architecture-msa-ddd","last_synced_at":"2026-02-15T21:03:50.178Z","repository":{"id":254852366,"uuid":"845402586","full_name":"pastjung/Architecture-MSA-DDD","owner":"pastjung","description":"[ 아키텍처 공부 ] MSA \u0026 DDD 패턴을 적용한 프로젝트 예시 ( 기간 : 2024.08.19 ~ 2024.08.23 )","archived":false,"fork":false,"pushed_at":"2024-09-10T10:03:18.000Z","size":63,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-12T10:32:17.889Z","etag":null,"topics":["docker-compose","fastapi","mariadb","springboot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pastjung.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-21T07:19:57.000Z","updated_at":"2024-09-10T10:03:21.000Z","dependencies_parsed_at":"2025-02-11T10:33:45.754Z","dependency_job_id":"25b9b0f0-6887-438f-9693-816167943fb9","html_url":"https://github.com/pastjung/Architecture-MSA-DDD","commit_stats":null,"previous_names":["pastjung/architecture-msa-ddd"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pastjung/Architecture-MSA-DDD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pastjung%2FArchitecture-MSA-DDD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pastjung%2FArchitecture-MSA-DDD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pastjung%2FArchitecture-MSA-DDD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pastjung%2FArchitecture-MSA-DDD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pastjung","download_url":"https://codeload.github.com/pastjung/Architecture-MSA-DDD/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pastjung%2FArchitecture-MSA-DDD/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011061,"owners_count":26084865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","fastapi","mariadb","springboot"],"created_at":"2024-09-24T13:40:56.402Z","updated_at":"2025-10-12T10:32:34.298Z","avatar_url":"https://github.com/pastjung.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MSA \u0026 DDD 디자인 패턴\n\n\u003e Initial written at August 21, 2024 \u003cbr/\u003e\n\u003e last updated at: August 21, 2024\n\n\n## Current: ver. 1.0.0\u003cbr/\u003e\n\u003e* ver 1.0.0.\n\u003e   * FastAPI Container 추가\n\u003e* ver 1.0.1.\n\u003e   * SpringBoot Container 추가\n\u003e* ver 1.0.2.\n\u003e   * FastAPI 설정 추가 ( Swagger, CORS 등 )\n\u003e* ver 1.0.3.\n\u003e   * FastAPI + MariaDB 연동 \u0026 MariDB 데이터베이스, 테이블 자동 생성\n\n\n# 1. 프로그램 (프로젝트) 설명\n\n- 본 프로젝트는 MSA(마이크로서비스 아키텍처)와 DDD(도메인 주도 설계) 원칙을 따르는 방식으로 프로젝트 설계하는 방법을 공부하는 프로젝트 입니다.\n\n\n# 2. Prerequisite\n\n- 본 프로젝트는 Docker를 사용하므로 `.env.template` 파일을 참고하여 `.env` 파일에 환경 변수값을 작성해주세요.\n    ```\n    # 예시\n    FASTAPI_HOST_PORT=8001\n    FASTAPI_SERVER_PORT=8000\n\n    SPRINGBOOT_HOST_PORT=8081\n    SPRINGBOOT_SERVER_PORT=8080\n\n    MARIADB_HOST_PORT=3307\n    MARIADB_SERVER_PORT=3306\n    MARIADB_ID=root\n    MARIADB_ROOT_PASSWORD=12345678\n    MAREADB_DATABASE=sample\n    ```\n- `FASTAPI_HOST_PORT`와 fastapi-service/`entrypoint.sh` 의 포트 번호를 일치시켜주세요\n    ```\n    uvicorn service.main:app --host 0.0.0.0 --port 8000 --reload \\\n    ```\n- `SPRINGBOOT_SERVER_PORT`와 springboot-servie/src/main/resources/`application.properties` 파일의 `server.port`를 일치시켜 주세요\n    ```\n    server.port=xxxx\n    ```\n\n\n# 3. 구동 방법\n\n## 3.1. 프로젝트 실행\n\n본 프로젝트는 Docker Compose를 사용하므로 이를 실행시켜주세요.\n\n```shell\n(sudo) docker compose up\n```\n\n# 4. 디렉토리 및 파일 설명\n```\n    /project-root\n    │\n    ├── data/\n    │   ├── elasticsearch-data/ (optional for persistent MongoDB storage)\n    │   ├── mongodb-data/ (optional for persistent MongoDB storage)\n    │   └── mariadb-data/ (optional for persistent MariaDB storage)\n    │\n    ├── fastapi-service/\n    │   ├── dockerfile\n    │   ├── entrypoint.sh\n    │   ├── requirements.txt\n    │   ├── venv/\n    │   ├── app/\n    │   │   ├── main.py\n    │   │   ├── models/\n    │   │   │   ├── users_schemas/\n    │   │   │   │   ├── request.py\n    │   │   │   │   └── response.py\n    │   │   │   └── users.py\n    │   │   ├── routers/\n    │   │   │   └── users_routers.py\n    │   │   └── crud/\n    │   │       └── users_crud.py\n    │   └── config/\n    │       ├── config.ini\n    │       └── database.py\n    │\n    ├── springboot-service/\n    │   ├── Dockerfile\n    │   ├── build.gradle\n    │   ├── settings.gradle\n    │   ├── gradlew\n    │   ├── gradle/\n    │   └── src/\n    │       ├── main/\n    │       │   ├── java/\n    │       │   │   └── com/\n    │       │   │       └── example/\n    │       │   │           └── auth/\n    │       │   │               ├── controller/\n    │       │   │               │   └── AuthController.java\n    │       │   │               ├── model/\n    │       │   │               │   └── User.java\n    │       │   │               ├── repository/\n    │       │   │               │   └── UserRepository.java\n    │       │   │               ├── service/\n    │       │   │               │   └── AuthService.java\n    │       │   │               └── SpringbootServiceApplication.java\n    │       │   └── resources/\n    │       │       ├── application.properties\n    │       │       └── application.yml\n    │       └── test/\n    │           └── java/\n    │               └── com/\n    │                   └── example/\n    │                       └── auth/\n    │                           └── AuthServiceTests.java\n    │\n    ├── .gitignore\n    ├── docker-compose.yml\n    ├── .env\n    ├── .env.template\n    └── README.md\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpastjung%2Farchitecture-msa-ddd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpastjung%2Farchitecture-msa-ddd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpastjung%2Farchitecture-msa-ddd/lists"}