- MSA 기반의 구독 모아 보기 서비스
- 주제 : MSA 기반의 구독 상품 모아보기 서비스 (중계형 e-commerce 플랫폼)
- 기간 : 2022.10.25 ~ 2022.11.29
- 팀원 :
- API 문서 : 링크
💻 Framework | 🎉 서비스명 | 👓 서비스 개요 | 🧱 주요 기능 | 🔑 서비스 포트 번호 |
---|---|---|---|---|
Django | AuthService | 인증 | 로그인, 회원가입, JWT | 10000 |
Django | LookupService | 상품 조회 | 상품 페이지네이션 조회, Dashboard | 10001 |
Django | SellerService | 상품 관리 | 상품 등록, 수정, 삭제 | 10002 |
Django | SearchService | 검색 히스토리 | 최근 검색어, 추천 검색어 | 10003 |
Spring Boot | PaymentService | 결제, 구독 관리 | 구독 갱신, 자동 결제(Cron), 결제 정보 조회 | 10004 |
Node.js | ChattingService | 채팅 | 판매자-소비자 1대1 채팅, 채팅방 관리 | 10005 |
FastAPI | MailService | 메일 | 소비자 메일 전송 | 10006 |
- UserGroup은 소비자/판매자 두 그룹으로 구성됨
- 소비자는 APP으로 구독 상품을 조회 및 결제 가능
- 소비자는 최근 검색어, 추천 검색어 등의 서비스 제공 받음
- 소비자가 결제한 구독 상품은 매 기간마다 자동 결제되고 알림 메일이 발송됨
- 소비자는 판매자에게 1대1 채팅 연결을 통해 구독한 상품에 대해 문의 가능
- 판매자는 WEB으로 구독 상품 관리 및 판매 내역 Dashboard 확인 가능
- 판매자는 한 번에 여러 상품을 등록/수정 할 수 있음
- 판매자의 구독 상품 내용이 변경시 자동으로 변경 내역이 소비자에게 발송됨
- Django Pagination 선택 및 Redis Caching 적용기
- 조회수 구현하기 1 - 동시성 이슈 해결하기(부제 : ORM 부터 Transaction Isolation Level 까지)
- 조회수 구현하기 2 - Cookie를 활용하여 중복 접근 해결하기
- Query 프로파일링을 통한 성능 개선하기
- 검색 히스토리 서비스 구현하기 (NoSQL vs RDB, Singleton 적용기
- 동기 기반 메일 서비스 비동기로 구현하기(by. FastAPI, RabbitMQ, Celery
- Spring cron을 이용한 가상 자동 결제 구현, WebClient를 이용한 외부 api 호출
- Django simpleJWT 커스텀, spring에서의 JWT decode
- 한 주 단위 Sprint 기반 / 주 3회 Scrum 진행
- Git Issue로 기능 개요 및 세부 Schedule 작성
- Issue 바탕으로 TestCode 작성
- TestCode 바탕으로 비즈니스 로직 작성
- feature/<기능> : 기능 개발 Branch
- main : 개발 Merge Branch (+Code Review)
- production : 배포 Branch
Moagudok
├── _nginx // reverse proxing
├── _utils // DB & Infra Setting
├── Authservice // Django
├── ChattingService // Node.js
├── LookupService // Django
├── MailService // Fastapi
├── PaymentService // Spring boot
├── SearchService // Django
├── SellerService // Django
├── .gitignore
├── docker-compose.yaml // Build & Deployment
├── README.md
└── requirements.txt