프로젝트 목록으로 돌아가기

Kimprun - 암호화폐 차익거래 플랫폼

업비트와 바이낸스 및 기타 거래소 간의 가격 차이를 실시간으로 분석하여 차익거래 기회를 제공하는 플랫폼입니다.

Web Development개인 프로젝트

프로젝트 개요

업비트와 바이낸스 등 4개 거래소 간의 가격 차이를 실시간으로 분석하여 차익거래 기회를 제공하는 고성능 플랫폼입니다. Spring Batch 8단계 Job Pipeline을 활용한 대량 데이터 ETL 처리, BlockingQueue와 멀티스레드 기반 비동기 아키텍처, WebSocket + STOMP를 통한 실시간 통신을 구현했습니다. 스케줄러 스레드풀 분리를 통해 격리된 스레드 환경에서 실시간 거래소 데이터 스케줄링을 최적화하여, 기존 7~10초 지연에서 1초로 성능을 대폭 향상시켰습니다. ELK Stack 연동 프로덕션 모니터링, API Rate Limiting, 다중 데이터베이스(PostgreSQL, MongoDB, Redis) 활용으로 엔터프라이즈급 시스템 안정성과 확장성을 확보했습니다.

주요 기능

  • 4개 거래소 실시간 데이터 수집 및 차익거래 기회 분석
  • WebSocket + STOMP 기반 실시간 채팅 및 시장 데이터 전송 (SessionConnectEvent/DisconnectEvent 관리)
  • Spring Batch 8단계 Job Pipeline을 활용한 CoinMarketCap 대량 데이터 ETL 동기화
  • Spring Batch Reader 비동기 멀티스레드 적용으로 40회 API 호출 작업 최적화 (40~80초 → 1~2초)
  • BlockingQueue + 전용 Thread를 활용한 채팅 메시지 비동기 저장 시스템
  • 멀티스레드 비동기 처리로 응답 속도 최적화 (@Async chatSaveExecutor)
  • 스케줄러 스레드풀 분리를 통한 실시간 데이터 스케줄링 최적화 (7~10초 → 1초 성능향상)
  • 거래소 공지사항 스크래핑 스케줄러 분리로 최신화 지연 개선 (60~180초 → 10~20초)
  • Redis 캐싱을 활용한 공지사항 비교 로직 최적화 - Database I/O 작업 대폭 감소 (하루 11,520회 → 20회)
  • AtomicInteger/AtomicLong 기반 Sliding Window Rate Limiting 적용 (1분당 30회 제한)
  • 다중 데이터베이스 활용 (PostgreSQL, MongoDB, Redis) 및 JPA Entity 최적화
  • Flyway를 활용한 자동 데이터베이스 스키마 마이그레이션 및 버전 관리
  • OAuth2 소셜 로그인 (Google, 카카오) 및 세션 기반 인증
  • ELK Stack 연동 프로덕션 모니터링 (Logstash TCP 5044 포트)

기술적 도전

  • Spring Batch 8단계 Job Pipeline을 활용한 CoinMarketCap 대량 데이터 ETL 처리
  • Spring Batch Reader에서 NIO 동기 실행 이슈 해결 - 비동기 멀티스레드 API 호출 적용
  • BlockingQueue(LinkedBlockingQueue) + 전용 Thread 기반 채팅 메시지 비동기 저장 시스템 구축
  • @PostConstruct/@PreDestroy를 활용한 안전한 스레드 라이프사이클 관리
  • WebSocket SessionConnectEvent/DisconnectEvent 기반 연결 상태 관리
  • 4개 거래소 API Rate Limiting 및 연결 장애 시 자동 재연결 시스템
  • AtomicInteger/AtomicLong을 활용한 Sliding Window Rate Limiting 구현 (1분당 30회 제한)
  • 실시간 채팅의 즉시 브로드캐스트와 CompletableFuture 비동기 DB 저장 분리
  • 스케줄러 스레드풀 분리로 동기 실행 방지 및 STOMP Fan-out 최적화 (세션별 데이터 전송 최적화)
  • 거래소 공지사항 스크래핑 스케줄러 스레드풀 분리 - 스케줄링 간섭 방지 및 최신화 성능 향상
  • Redis 캐시 기반 공지사항 중복 체크 로직 구현 - Database 부하 99.8% 감소 (11,520회/일 → 20회/일)
  • JPA Entity @Cacheable 최적화 및 QueryDSL, MyBatis 병행 성능 튜닝
  • Flyway 기반 운영 환경 데이터베이스 스키마 마이그레이션 자동화 및 버전 관리
  • 프로덕션 환경 LogstashTcpSocketAppender 연동 및 실시간 모니터링 (5044 포트)

시스템 아키텍처

Kimprun - 암호화폐 차익거래 플랫폼 아키텍처

클릭하여 확대 보기

데이터베이스 설계 (ERD)

Kimprun - 암호화폐 차익거래 플랫폼 ERD

클릭하여 확대 보기

Kimprun - 암호화폐 차익거래 플랫폼 프로젝트

담당 역할

💻 Frontend⚙️ Backend

기술 스택

Frontend

React 18Next.js 14WebSocketStomp

Backend

Java 17Spring Boot 3.1.4Spring Batch 5.0.4Spring Security 6.1.3WebSocket + STOMPPostgreSQLMongoDBRedisQueryDSLMyBatisFlywayOAuth2

Infrastructure

DockerKubernetesDocker ComposeHelm ChartsAWS S3AWS RDSAWS EC2CloudflareArgoCDPrometheusGrafanaELK StackGitHub ActionsSlack API