시스템 구조
시스템 전체 구조도
graph TB
subgraph Client[클라이언트]
W[Web Application]
M[Mobile Application]
end
subgraph API[API Gateway]
Auth[인증/인가]
Rate[Rate Limiter]
end
subgraph Services[서비스 레이어]
US[사용자 서비스]
DS[도메인 서비스]
OS[주문 서비스]
RS[추천인 서비스]
RWS[수당 서비스]
end
subgraph Storage[데이터 스토리지]
DB[(MongoDB)]
Cache[(Redis)]
end
subgraph External[외부 시스템]
BC[TRON Blockchain]
PS[결제 시스템]
end
%% 클라이언트와 API 연결
W --> Auth
M --> Auth
Auth --> Rate
%% API와 서비스 연결
Rate --> US
Rate --> DS
Rate --> OS
Rate --> RS
Rate --> RWS
%% 서비스간 연결
US <--> RS
OS <--> RWS
DS <--> US
RS <--> RWS
%% 서비스와 스토리지 연결
US <--> DB
DS <--> DB
OS <--> DB
RS <--> DB
RWS <--> DB
US <--> Cache
OS <--> Cache
RS <--> Cache
%% 외부 시스템 연결
OS <--> BC
OS <--> PS
%% 스타일 정의
classDef primary fill:#f9f,stroke:#333,stroke-width:2px
classDef secondary fill:#bbf,stroke:#333,stroke-width:2px
classDef storage fill:#bfb,stroke:#333,stroke-width:2px
classDef external fill:#fbb,stroke:#333,stroke-width:2px
class Client,API primary
class Services secondary
class Storage storage
class External external
%% 설명 추가
style W fill:#f9f,stroke:#333,stroke-width:2px
style M fill:#f9f,stroke:#333,stroke-width:2px
style Auth fill:#bbf,stroke:#333,stroke-width:2px
style Rate fill:#bbf,stroke:#333,stroke-width:2px
시스템 구성 요소 설명
클라이언트 레이어
- Web Application: 웹 기반 사용자 인터페이스
- Mobile Application: 모바일 앱 인터페이스
API Gateway
- 인증/인가: JWT 기반 사용자 인증 및 권한 관리
- Rate Limiter: API 요청 제한 및 트래픽 관리
서비스 레이어
- 사용자 서비스: 회원 관리 및 인증
- 도메인 서비스: 도메인별 설정 및 관리
- 주문 서비스: 상품 주문 및 결제 처리
- 추천인 서비스: 추천 관계 및 트리 관리
- 수당 서비스: 수당 계산 및 지급 관리
데이터 스토리지
- MongoDB: 주 데이터베이스
- Redis: 캐시 및 세션 관리
외부 시스템
- TRON Blockchain: 블록체인 기반 거래 처리
- 결제 시스템: 외부 결제 시스템 연동
전체 Flow
sequenceDiagram
participant U as 사용자
participant A as 인증 시스템
participant R as 추천인 시스템
participant O as 주문 시스템
participant P as 결제 시스템
participant RW as 수당 시스템
%% 1. 회원가입/로그인
U->>A: 회원가입/로그인 요청
A->>A: symId, domain 확인
A-->>U: JWT 토큰 발급
%% 2. 추천인 등록
U->>R: 추천인 등록 요청
R->>R: 추천인 유효성 검증
R->>R: 추천 트리 구성
R-->>U: 추천인 등록 완료
%% 3. 상품 구매
U->>O: 상품 구매 요청
O->>P: 결제 처리
P-->>O: 결제 완료
O->>O: 주문 생성
O-->>U: 주문 완료
%% 4. 수당 지급
O->>RW: 구매 완료 알림
RW->>R: 추천인 트리 조회
RW->>RW: 단계별 수당 계산
loop 추천인 단계별
RW->>RW: 수당 지급
end
%% 5. 구매 내역 확인
U->>O: 구매 내역 조회
O-->>U: 구매 내역 반환
주요 기능별 Use Case
1. 인증 시스템
graph TD
A[사용자] --> B[회원가입]
A --> C[로그인]
B --> D[JWT 토큰 발급]
C --> D
D --> E[토큰 갱신]
D --> F[로그아웃]
2. 추천인 시스템
graph TD
A[사용자] --> B[추천인 등록]
A --> C[추천 트리 조회]
B --> D[추천인 검증]
D --> E[추천 관계 설정]
C --> F[하위 추천인 목록]
C --> G[추천 수당 현황]
3. 주문 및 결제 시스템
graph TD
A[사용자] --> B[상품 선택]
B --> C[주문 생성]
C --> D[결제 처리]
D --> E[주문 완료]
E --> F[구매 내역 조회]
4. 수당 시스템
graph TD
A[주문 완료] --> B[추천인 트리 조회]
B --> C[단계별 수당 계산]
C --> D[수당 지급]
D --> E[수당 내역 조회]
도메인 구조
graph TD
A[도메인] --> B[사용자 관리]
A --> C[주문 관리]
A --> D[수당 관리]
B --> B1[일반 사용자]
B --> B2[도메인 관리자]
B --> B3[최종 관리자]
C --> C1[주문 생성]
C --> C2[결제 처리]
C --> C3[주문 내역]
D --> D1[수당 비율 설정]
D --> D2[수당 지급]
D --> D3[수당 통계]
데이터 흐름
graph LR
A[사용자 가입] --> B[추천인 등록]
B --> C[상품 구매]
C --> D[수당 지급]
D --> E[수당 정산]
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
style C fill:#bfb,stroke:#333,stroke-width:2px
style D fill:#fbf,stroke:#333,stroke-width:2px
style E fill:#fbb,stroke:#333,stroke-width:2px
주요 프로세스 설명
1. 회원가입 및 로그인
- symId와 domain으로 사용자 식별
- JWT 기반 인증 시스템
- Access Token과 Refresh Token 발급
2. 추천인 시스템
- 1회에 한해 추천인 등록 가능
- 최대 30단계까지 추천 트리 구성
- 실시간 추천 관계 추적
3. 상품 구매 프로세스
- 상품 선택 및 주문 생성
- TRON 기반 결제 처리
- 주문 상태 실시간 추적
4. 수당 지급 시스템
- 구매 완료 시 자동 수당 계산
- 단계별 차등 수당 지급
- 실시간 수당 내역 조회
5. 관리자 기능
- 도메인별 독립적인 관리
- 수당 비율 설정
- 통계 및 현황 조회
보안 고려사항
-
인증 및 인가
-
JWT 기반 토큰 관리
- 권한별 접근 제어
-
토큰 만료 및 갱신
-
데이터 보안
-
민감 정보 암호화
- 트랜잭션 로깅
-
접근 기록 관리
-
결제 보안
- TRON 트랜잭션 검증
- 이중 결제 방지
- 결제 내역 추적