{"id":27170986,"url":"https://github.com/devsquad10/b2b-service-platform","last_synced_at":"2026-04-04T22:34:30.334Z","repository":{"id":282546504,"uuid":"947698013","full_name":"DevSquad10/b2b-service-platform","owner":"DevSquad10","description":"[스파르타] 10조 B2B 물류 시스템","archived":false,"fork":false,"pushed_at":"2025-04-07T14:44:35.000Z","size":899,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"dev","last_synced_at":"2025-04-07T15:42:04.031Z","etag":null,"topics":["docker","docker-compose","feignclient","gemini","msa","rabbitmq","slack","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","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/DevSquad10.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":"2025-03-13T05:24:47.000Z","updated_at":"2025-04-07T14:44:40.000Z","dependencies_parsed_at":"2025-03-30T10:24:41.925Z","dependency_job_id":"71a70fe9-17ed-475e-917c-406868363d3e","html_url":"https://github.com/DevSquad10/b2b-service-platform","commit_stats":null,"previous_names":["devsquad10/b2b-service-platform"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevSquad10%2Fb2b-service-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevSquad10%2Fb2b-service-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevSquad10%2Fb2b-service-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevSquad10%2Fb2b-service-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevSquad10","download_url":"https://codeload.github.com/DevSquad10/b2b-service-platform/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248000215,"owners_count":21031131,"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","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","docker-compose","feignclient","gemini","msa","rabbitmq","slack","spring-boot"],"created_at":"2025-04-09T08:22:03.764Z","updated_at":"2025-12-30T23:05:09.916Z","avatar_url":"https://github.com/DevSquad10.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📌 물류 관리 및 배송 시스템 (DevSquad10)\n\n![Image](https://github.com/user-attachments/assets/727bd681-d84b-4310-8b9e-080859fe3b39)\n\n## 📖 프로젝트 목적 개요\n\n### 대규모 AI 시스템 프로젝트\n\n**물류 관리 및 배송 시스템을 MSA(Microservices Architecture) 기반의 시스템을 설계하고 구현하면서 다양한 기술과 방법론을 적용해보는게 목표입니다.**\n\n### 주요 목표\n\n- \u003cb\u003eMSA 설계 및 구현\u003c/b\u003e\n    - 서비스 간 독립성을 유지하면서 유기적으로 연동되며는 마이크로서비스 아키텍처(MSA) 설계\n    - API 변경시 발생할 수 있는 문제를 최소화하기 위한 버전 관리\n\n\u003cbr\u003e\n\n- \u003cb\u003e협업 및 프로젝트 관리\u003c/b\u003e\n    - GitHub Issues와 Slack을 활용하여 팀원 간 원활한 소통 및 업무 분배\n    - API 요구사항 및 공유해야 할 정보는 Notion을 통해 문서화하여 체계적으로 관리\n    - 코드 리뷰 및 PR(Pull Request) 프로세스를 통해 코드 품질 유지 및 개선\n\n\u003cbr\u003e\n\n- \u003cb\u003e이벤트 기반 아키텍처 적용\u003c/b\u003e\n    - RabbitMQ를 활용한 비동기 메시징 시스템 도입\n    - 서비스 간 의존도를 줄이고 확장성을 높이기 위한 이벤트 기반 통신(Event-Driven Architecture) 적용\n\n\u003cbr\u003e\n\n- \u003cb\u003eAI 기술 적용 (Gemini API 활용)\u003c/b\u003e\n    - AI를 활용해 특정 기능을 자동화하고, 실제 프로젝트에 적용 경험 확보\n\n\u003cbr\u003e\n\n## 🎯 팀원 역할분담\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\n      \u003ca href=\"https://github.com/jjsh0208\" target=\"_blank\"\u003e\n        전승현\u0026lt;팀장\u0026gt;\n      \u003c/a\u003e\n    \u003c/th\u003e\n    \u003cth\u003e\n      \u003ca href=\"https://github.com/minji-git\" target=\"_blank\"\u003e\n        김민지\n      \u003c/a\u003e\n    \u003c/th\u003e\n    \u003cth\u003e\n      \u003ca href=\"https://github.com/josephuk77\" target=\"_blank\"\u003e\n        이승욱\n      \u003c/a\u003e\n    \u003c/th\u003e\n    \u003cth\u003e\n      \u003ca href=\"https://github.com/aerhergag00\" target=\"_blank\"\u003e\n        이지웅\n      \u003c/a\u003e\n    \u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cimg src=\"https://github.com/jjsh0208.png\" width=\"150\" alt=\"전승현 팀장\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg src=\"https://github.com/minji-git.png\" width=\"150\" alt=\"이채연\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg src=\"https://github.com/josephuk77.png\" width=\"150\" alt=\"이서우\"\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cimg src=\"https://github.com/aerhergag00.png\" width=\"150\" alt=\"윤창근\"\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n\n  \u003cth\u003eCompany \u003cbr\u003e Product \u003cbr\u003e Order  \u003cbr\u003e  \u003c!-- 승현 --\u003e\n  \u003cth\u003eShipping \u003cbr\u003e Shipping Agent\u003c/th\u003e \u003c!-- 민지 --\u003e\n  \u003cth\u003eUser \u003cbr\u003e Eureka \u003cbr\u003e Gateway \u003c/th\u003e \u003c!-- 승욱 --\u003e\n  \u003cth\u003eHub \u003cbr\u003e Message \u003cbr\u003e Gemini AI \u003c/th\u003e \u003c!-- 지웅 --\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr\u003e\n\n## 📅 프로젝트 진행 기간\n\n- 2025년 3월 11일 ~ 2025년 3월 26일\n\n## 🏗 서비스 구성\n\n### 💾 프로젝트 구조\n\n```\nb2b-project/                         # B2B 루트 프로젝트\n│── com.devsquad10.company/          # 업체 관련 서비스\n│   ├── src/main/java/com/devsquad10/company/\n│   │   ├── application/             # 애플리케이션 서비스 계층\n│   │   ├── domain/                  # 도메인 모델 및 엔티티\n│   │   ├── infrastructure/          # 데이터베이스, 외부 API 연동\n│   │   ├── presentation/            # REST API 및 컨트롤러\n│   ├── src/test/java/com/devsquad10/company/\n│\n│── com.devsquad10.eureka/           # 서비스 디스커버리 (Eureka)\n│   ├── src/main/java/com/devsquad10/eureka/\n│\n│── com.devsquad10.gateway/          # API Gateway (Spring Cloud Gateway)\n│   ├── src/main/java/com/devsquad10/gateway/\n│       ├── infrastructure/ \n│\n│── com.devsquad10.hub/              # 물류 허브 서비스\n│   ├── src/main/java/com/devsquad10/hub/\n│   │   ├── application/\n│   │   ├── domain/\n│   │   ├── infrastructure/\n│   │   ├── presentation/\n│\n│── com.devsquad10.message/          # 메시징 서비스 (slack)\n│   ├── src/main/java/com/devsquad10/message/\n│   │   ├── application/\n│   │   ├── domain/\n│   │   ├── infrastructure/\n│   │   ├── presentation/\n│\n│── com.devsquad10.order/            # 주문 서비스\n│   ├── src/main/java/com/devsquad10/order/\n│   │   ├── application/\n│   │   ├── domain/\n│   │   ├── infrastructure/\n│   │   ├── presentation/\n│\n│── com.devsquad10.product/          # 상품 서비스\n│   ├── src/main/java/com/devsquad10/product/\n│   │   ├── application/\n│   │   ├── domain/\n│   │   ├── infrastructure/\n│   │   ├── presentation/\n│\n│── com.devsquad10.shipping/         # 배송 서비스\n│   ├── src/main/java/com/devsquad10/shipping/\n│   │   ├── application/\n│   │   ├── domain/\n│   │   ├── infrastructure/\n│   │   ├── presentation/\n│\n│── com.devsquad10.user/             # 사용자 서비스\n│   ├── src/main/java/com/devsquad10/user/\n│   │   ├── application/\n│   │   ├── domain/\n│   │   ├── infrastructure/\n│   │   ├── presentation/\n│\n│\n│── docker-compose.yml                # Docker 설정 파일\n│── README.md                         # 프로젝트 설명 문서\n│── settings.gradle.kts               # Gradle 설정 파일\n\n```\n\n### 🚀 서비스 엔드포인트\n\n| 서비스명         | 설명                | 기본 URL                   | 포트    |\n|--------------|-------------------|--------------------------|-------|\n| **Eureka**   | 서비스 디스커버리         | `http://localhost:19091` | 19091 |\n| **Gateway**  | API Gateway       | `http://localhost:19092` | 19092 |\n| **Company**  | 업체 정보 관리 서비스      | `http://localhost:19093` | 19093 |\n| **Hub**      | 물류 허브 서비스         | `http://localhost:19094` | 19094 |\n| **Message**  | 메시징 서비스 ( Slack ) | `http://localhost:19095` | 19095 |\n| **Order**    | 주문 서비스            | `http://localhost:19096` | 19096 |\n| **Product**  | 상품 서비스            | `http://localhost:19097` | 19097 |\n| **Shipping** | 배송 서비스            | `http://localhost:19098` | 19098 |\n| **User**     | 사용자 서비스           | `http://localhost:19099` | 19099 |\n\n\u003cbr\u003e\n\n\n\n\n\u003cbr\u003e\n\n## ☁️ Architecture\n\n![Image](https://github.com/user-attachments/assets/0ddecc6a-7a5c-46d1-ad6e-16d3617cb1ce)\n\n\u003cbr\u003e\n\n## 📌 ERD\n\n![Image](https://github.com/user-attachments/assets/a3a97c94-3753-4384-a9e5-54b5b13ab4eb)\n\n\n \u003cbr\u003e\n\n## 🚨 Trouble Shooting\n\n[승현] saga pattern 무한 재시도\n방지- [wiki 보기](https://github.com/DevSquad10/b2b-service-platform/wiki/%5BTrouble-Shooting%5D-%5B%EC%8A%B9%ED%98%84%5D-saga-pattern-%EB%AC%B4%ED%95%9C-%EC%9E%AC%EC%8B%9C%EB%8F%84-%EB%B0%A9%EC%A7%80)\n\n[승현] RabbitMQ concurrency 설정과 비관적 락을 활용한 재고 감소 동시성\n제어 - [wiki 보기](https://github.com/DevSquad10/b2b-service-platform/wiki/%5BTrouble-Shooting%5D-%5B%EC%8A%B9%ED%98%84%5D-RabbitMQ-concurrency-%EC%84%A4%EC%A0%95%EA%B3%BC-%EB%B9%84%EA%B4%80%EC%A0%81-%EB%9D%BD%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%9E%AC%EA%B3%A0-%EA%B0%90%EC%86%8C-%EB%8F%99%EC%8B%9C%EC%84%B1-%EC%A0%9C%EC%96%B4)\n\n[승욱] SpringBoot server port\n오류 - [wiki 보기](https://github.com/DevSquad10/b2b-service-platform/wiki/%5BTrouble-Shooting%5D-%5B%EC%8A%B9%EC%9A%B1%5D-SpringBoot-server-port-%EC%98%A4%EB%A5%98)\n\n[민지] JPQL 날짜\n비교 - [wiki 보기](https://github.com/DevSquad10/b2b-service-platform/wiki/%5BTrouble-Shooting%5D-%5B%EB%AF%BC%EC%A7%80%5D-JPQL-%EB%82%A0%EC%A7%9C-%EB%B9%84%EA%B5%90)\n\n[지웅] 허브 간 계산 알고리즘 성능 최적화 -\n[wiki 보기](https://github.com/DevSquad10/b2b-service-platform/wiki/%5BTrouble-Shooting%5D-%5B%EC%A7%80%EC%9B%85%5D-%ED%97%88%EB%B8%8C-%EA%B0%84-%EA%B3%84%EC%82%B0-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94)\n\n## ⚙️ 적용 기술\n\n### *🔍 QueryDSL* ###\n\n\u003e 검색, 정렬 등 동적 쿼리 작성을 위해 사용하며, 타입 안전한 SQL 쿼리를 생성하기 위해 활용했습니다.\n\n### *🚀 Redis* ###\n\n\u003e 연속된 요청으로 인한 DB 병목을 해소하기 위해 캐싱 용도로 사용하여 빠른 데이터 접근을 지원합니다.\n\n### *📩 RabbitMQ 비동기 처리* ###\n\n\u003e MSA 도메인 간 비동기 이벤트 처리를 통해 서비스 간 결합도를 감소시키고 안정성을 향상시켰습니다.\n\n### *⏰ Scheduler 사용* ###\n\n\u003e 매일 오전 6시에 배송 담당자들에게 당일 배송 메시지 안내를 자동으로 보내기 위해 사용했습니다.\n\n### *🔒 비관적 락 구현* ###\n\n\u003e 재고 감소 , 배송 담당자 배정 할당 등 동시성 문제가 발생할 수 있는 중요한 트랜잭션에서 충돌을 방지하기 위해 사용했습니다.\n\n### *🔗 Feign Client* ###\n\n\u003e MSA 환경에서 다른 서비스의 API를 호출할 때 간편하게 HTTP 통신을 처리하기 위해 사용했습니다.\n\n### *🤖 Gemini AI* ###\n\n\u003e 슬랙 메시지 양식을 자동화하고, 배송 순서를 최적화하여 효율적인 물류 관리를 지원합니다.\n\n\u003cbr\u003e\n\n## 🛠 기술 스택\n\n## Backend\n\n- **Framework**: Spring Boot 3.x\n  \u003c!-- Spring Boot 최신 버전 사용 --\u003e\n- **Database Access**: Spring Data JPA , QueryDSL\n  \u003c!-- ORM 프레임워크로 데이터베이스와의 연동을 쉽게 처리 --\u003e\n- **Security**: Spring Security 6.x\n  \u003c!-- 인증과 인가를 위한 보안 모듈 --\u003e\n- **API Communication**: Feign Client\n- **Message Broker**: RabbitMQ\n- **Caching**: Redis\n- **Testing**: JMeter\n- **API Documentation**: Swagger (Springdoc OpenAPI)\n  \u003c!-- API 문서를 자동 생성해주는 Swagger 도구 --\u003e\n- **REST API**: RESTful API 설계\n  \u003c!-- REST 아키텍처 스타일에 따른 API 설계 --\u003e\n\n## Database\n\n- **Primary DB**: PostgreSQL\n  \u003c!-- 주 데이터베이스로 사용 --\u003e\n\n## Server\n\n- **Application Server**: Apache Tomcat 9.0\n  \u003c!-- 서블릿 컨테이너로 사용하는 Tomcat 서버 --\u003e\n\n## Authentication\n\n- **Token-Based Authentication**: JWT (JSON Web Token)\n  \u003c!-- 토큰 기반 인증 방식으로 JWT 사용 --\u003e\n\n## Devops\n\n- **배포 및 운영**: Docker, Docker-Compose\n\n## Etc\n\n- **외부 API 연동**\n  -\n        - **Gemini API** : 상품 발송 시한 예측 및 상품 설명 문구 추천을 위한 외부 AI API 연동.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevsquad10%2Fb2b-service-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevsquad10%2Fb2b-service-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevsquad10%2Fb2b-service-platform/lists"}