콘텐츠로 이동

시스템 구조

시스템 전체 구조도

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. 관리자 기능

  • 도메인별 독립적인 관리
  • 수당 비율 설정
  • 통계 및 현황 조회

보안 고려사항

  1. 인증 및 인가

  2. JWT 기반 토큰 관리

  3. 권한별 접근 제어
  4. 토큰 만료 및 갱신

  5. 데이터 보안

  6. 민감 정보 암호화

  7. 트랜잭션 로깅
  8. 접근 기록 관리

  9. 결제 보안

  10. TRON 트랜잭션 검증
  11. 이중 결제 방지
  12. 결제 내역 추적