Skip to content

crypto-pay-kr/crepe_backend_v2

Repository files navigation

국가 관리형 스테이블 코인 시스템 (CREPE)

코드 LINCENSE는 팀 CREPE에게 존재합니다. 추후 별도의 상의 없이 상업적 이용시에 법적 문제를 제기할 수 있음을 알려드립니다.

코드 문의: fivesidedish@gmail.com

비즈니스 개요 문서

https://file.notion.so/f/f/b40aaa3a-ae67-42cc-85a7-ac481fb59d77/4df9bc80-1db4-4a80-8b1d-aa8202a73dd6/pdf_%ED%81%AC%EB%A0%88%ED%8E%98_%EC%B5%9C%EC%A2%85%EB%B0%9C%ED%91%9C%EC%9E%90%EB%A3%8C.pdf?table=block&id=21d1d6a9-425e-80cf-9ae2-f03993f17611&spaceId=b40aaa3a-ae67-42cc-85a7-ac481fb59d77&expirationTimestamp=1750845600000&signature=4VnMdv-UNyy9dZl1jb3NWuAiX8fuWX_gzljFZ1q5aBw&downloadName=pdf_%ED%81%AC%EB%A0%88%ED%8E%98_%EC%B5%9C%EC%A2%85%EB%B0%9C%ED%91%9C%EC%9E%90%EB%A3%8C.pdf

프로젝트 개요

국가에서 관리하는 원화 및 국채, 암호화폐를 기반으로 한 스테이블 코인 발행 및 운영 시스템입니다. 전체적인 금융 생태계를 디지털화하여 결제, 이체, 예금토큰 관리, 바우처 시스템 등을 통합적으로 제공합니다.

image

image

주요 기능

🏦 스테이블 코인 발행 및 관리

  • 다양한 담보 자산 기반 : 원화, 국채, 주요 암호화폐를 담보로 한 스테이블 코인 발행
  • 포트폴리오 구성 : 최소 2개 이상의 다양한 자산으로 포트폴리오 구성을 통한 안정성 확보
  • 실시간 가격 관리 : 시장 상황에 따른 동적 가격 조정 및 관리
  • 토큰 재발행 : 포트폴리오 재구성을 통한 토큰 재발행 시스템

💳 결제 및 이체 시스템

  • 다중 결제 방식 : 일반 코인 결제 및 바우처 결제 지원
  • 실시간 환율 적용 : 주문 시점의 실시간 환율을 적용한 정확한 결제
  • 안전한 거래 : 낙관적 락을 통한 동시성 제어 및 거래 안전성 보장
  • 거래 내역 관리 : 상세한 결제 및 취소 내역 추적

🔄 환전 시스템

  • 양방향 환전 : 코인 ↔ 스테이블 토큰 간 실시간 양방향 환전
  • 포트폴리오 기반 환율 : 은행의 포트폴리오 구성에 따른 동적 환율 계산
  • 안전한 환전 처리 : 잔액 검증, 포트폴리오 한도 검증을 통한 안전한 환전
  • 환전 내역 추적 : 상세한 환전 기록 및 환율 정보 저장

🏪 주문 관리 시스템

  • 실시간 주문 처리 : 가맹점의 실시간 주문 접수, 승인, 거절, 완료 처리
  • 유연한 주문 상태 관리 : WAITING → ACCEPTED → READY → COMPLETED 단계별 관리
  • 자동화된 정산 : 스케줄러를 통한 자동 정산 시스템

💰 예금토큰 및 상품 관리

  • 다양한 상품 유형 : 적금(INSTALLMENT), 바우처(VOUCHER) 등 다양한 금융상품
  • 맞춤형 가입 조건 : 연령, 지역, 직업 등을 고려한 세분화된 가입 자격 조건
  • 우대 금리 시스템 : 조건에 따른 차등화된 우대 금리 적용
  • 실시간 잔액 관리 : 예금 및 인출에 따른 실시간 잔액 업데이트

🎫 바우처 시스템

  • 업종별 바우처 : 카페, 편의점, 음식점 등 업종별 전용 바우처 발행
  • 유효성 검증 : 바우처 잔액, 유효기간, 사용 가능 업종 자동 검증
  • 통합 결제 : 바우처와 일반 결제의 통합 관리

👥 사용자 및 은행 관리

  • 다층 사용자 관리 : 일반 사용자, 가맹점, 은행, 관리자 역할별 관리
  • 은행 등록 및 승인 : 은행 등록 신청부터 관리자 승인까지의 완전한 워크플로우
  • 계좌 관리 : 사용자별, 은행별, 토큰별 세분화된 계좌 관리
  • 실시간 알림 : SSE를 통한 실시간 상태 변경 알림

기술 스택

서버구조

image

Backend

  • Java 17 & Spring Boot 3.x
  • Spring Security : JWT 기반 인증 및 권한 관리
  • Spring Data JPA : 데이터 접근 계층
  • MySQL : 메인 데이터베이스
  • Redis : 캐싱 및 세션 관리

외부 연동

  • Upbit API : 실시간 암호화폐 시세 조회
  • 이메일 서비스 : 사용자 인증 및 알림

보안 및 안정성

  • JWT 토큰 : 안전한 사용자 인증
  • 낙관적 락 : 동시성 제어
  • 트랜잭션 관리 : 데이터 일관성 보장
  • 예외 처리 : 체계적인 오류 관리

주요 엔티티 구조

핵심 엔티티

  • BankToken : 은행이 발행하는 스테이블 코인
  • Portfolio : 토큰의 담보 자산 구성
  • Account : 사용자/은행별 계좌
  • Product : 은행 금융상품
  • Subscribe : 상품 가입 정보
  • Order : 주문 정보
  • PayHistory : 결제 내역
  • ExchangeHistory : 환전 내역

이력 관리

  • TokenHistory : 토큰 발행/재발행 이력
  • PortfolioHistory : 포트폴리오 변경 이력
  • TransactionHistory : 모든 거래 이력
  • SubscribeHistory : 예금 거래 이력
  • ExchangeHistory : 코인-토큰 간 환전 이력

워크플로우

1. 스테이블 코인 발행 과정

  1. 은행 등록 → 관리자 승인
  2. 토큰 발행 요청 → 포트폴리오 구성 및 검증
  3. 관리자 승인 → 토큰 활성화
  4. 계좌 생성 → 거래 시작

2. 결제 처리 과정

  1. 주문 생성 → 실시간 환율 적용
  2. 결제 요청 → 잔액 확인 및 차감
  3. 거래 기록 → PayHistory 및 TransactionHistory 생성
  4. 정산 처리 → 스케줄러를 통한 자동 정산

3. 환전 처리 과정

  1. 환전 요청 → 코인-토큰 간 양방향 환전 신청
  2. 잔액 및 한도 검증 → 사용자 잔액, 은행 보유량, 포트폴리오 한도 확인
  3. 환율 계산 → 포트폴리오 기반 실시간 환율 적용
  4. 자금 이동 → 안전한 계좌 간 자산 이체
  5. 환전 기록 → ExchangeHistory를 통한 상세 환전 내역 저장

4. 상품 가입 과정

  1. 상품 조회 → 가입 조건 확인
  2. 가입 신청 → 자격 검증
  3. 계좌 개설 → Subscribe 생성
  4. 예금 관리 → 실시간 잔액 업데이트

보안 특징

  • 다중 인증 시스템 : 사용자 유형별 차별화된 인증
  • 권한 기반 접근 제어 : 세분화된 API 접근 권한
  • 거래 무결성 : 트랜잭션과 락을 통한 데이터 일관성
  • 실시간 모니터링 : 시스템 상태 및 거래 현황 모니터링

확장성

  • 모듈화된 구조 : 도메인별 독립적인 모듈 설계
  • 수평 확장 지원 : Redis 클러스터링 및 DB 샤딩 준비
  • API 버저닝 : 하위 호환성을 고려한 API 설계
  • 이벤트 기반 아키텍처 : 느슨한 결합을 통한 확장성 확보

이 시스템은 안전하고 확장 가능한 디지털 금융 인프라를 제공하여, 국가 차원의 스테이블 코인 생태계 구축을 지원합니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages