2023.07.31 - [프로젝트/회비관리 메신저 서비스 (07.28~)] - 회비 관리 메신저 서비스 - 와이어프레임, ERD, API, 브런치
ERD, 와이어 프레임, API 링크는 기존 포스팅에서 볼 수 있다.
현재 ERD는 위와 같고 Wallet은 @Inheritance(strategy = InheritanceType.JOINED) 을 사용한 슈퍼타입이고 GroupWallet, PersonalWallet 과는 서브타입 관계이다.
User는 하나의 PersonalWallet을 개설할 수 있고 여러개의 GroupWallet을 개설할 수 있다.
참여한 GroupWallet은 UserGroupWallet 으로 확인할 수 있다.
Transaction(거래) 에는 wallet <-> wallet 사이의 모든 거래가 기록된다.
거래는 4가지 경우를 생각할 수 있다.
- PersonalWallet -> PersonalWallet
- PersonalWallet -> GroupWallet
- GroupWallet -> PersonalWallet
- GroupWallet -> GroupWallet
GroupWallet에서 송금을 한다면 GroupWallet 에 권한이 있는 어떤 유저가 송금을 했는지 GroupSpendDetail에 insert 된다.
Transaction은 transferType을 가지고 있고 2가지 타입이 있다.
- SEND
- RECEIVE
송금을 하면 Transaction에는 SEND와 RECEIVE 2개의 row가 insert된다.
- A가 B에게 5만원 SEND
- B가 A로부터 5만원 RECEIVE
송금시 고려해야할 상황은 다음과 같다.
- 적절한 User인가 - wallet 주인이거나 groupWallet 이라면 authority가 적절한 구성원이여야 한다.
- 송금 가능한 금액을 보유하고 있는가
예약시 고려할 상황은 다음과 같다.
- 동시간대 예약의 경우 우선 순위
- 예약 성공/실패시 알맞는 update
진행
가장 큰 도메인은 user, channel, wallet 이다.
나는 reservation을 제외한 wallet 을 구성했고 다른 팀원분들이 user, channel 를 구성했다.
큰 도메인은 어느 정도 구성되었고 채팅도 거의 구현됐다.
이번주 MVP는 적당한 클라이언트 기능 수행까지 목표로 나는 오늘부터 React 작업에 들어간다.
클라이언트 작업이 빠르게 마칠수록 MSA, 대용량 트래픽, 동시성 등 챌린징 포인트에 빨리 도달할 수 있다.
클라이언트 작업은 오늘 내일로 마치는 것을 목표로 하고 시간이 과하게 든다 판단되면 다른 대안들을 선택하고자 한다.
'Side Project > Wallet-Messenger-Service' 카테고리의 다른 글
Nosql MongoDB를 알아보자 (0) | 2023.09.08 |
---|---|
Message service 아키텍처 (0) | 2023.08.27 |
회비 관리 메신저 서비스 - 와이어프레임, ERD, API, 브런치 (0) | 2023.07.31 |
메신저 서비스 프로젝트 ERD, API 설계 (0) | 2023.07.31 |