Skip to content

woorifisa-projects-4th/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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%