Transaction Data Generator는 현실성 있는 금융 트랜잭션 데이터를 자동으로 생성하는 서비스입니다.
실제 사용자 데이터를 확보하기 어려운 상황에서도, 소득 분위와 소비 성향을 반영한 시뮬레이션 데이터를 생성하여 다음과 같은 활용이 가능합니다.
이 프로젝트의 주요 목적은 다음과 같습니다.
- 현실적인 입출금 데이터를 모의 생성하여 학습, 연구, 실험에 누구나 활용할 수 있는 환경 제공
- 연령대, 소득 분위, 소비 성향 등 사용자 프로필에 따른 차별화된 소비 패턴 반영
- 시간대별, 요일별, 카테고리별로 구체적인 소비 특징을 갖춘 데이터 생산
본 프로젝트는 멀티모듈 아키텍처로 구성되어 있습니다:
- core
- 트랜잭션 생성 로직 및 공통 유틸리티
- api
- REST API 제공 (트랜잭션 생성 요청/조회)
- Elasticsearch 연동을 통한 검색/분석 기능
- simulator
- 대량 트랜잭션 시뮬레이션 실행
- Kafka를 통해 이벤트 기반 데이터 전송
1. 현실적인 트랜잭션 데이터 생성
- 사용자 프로필(연령대, 소득 수준, 소비 성향 등)에 따라 입출금 기록 생성
2. 고정 지출 및 입금 이벤트 지원
- 급여, 통신비, 주거비, 연금 등 정기적으로 발생하는 지출/입금 자동 반영
3. 소비 성향 기반 패턴 시뮬레이션
- 소비지향형, 저축지향형, 무계획형 등 다양한 라이프스타일을 반영하여 현실적인 소비 패턴 제공
4. 시간 · 요일 · 카테고리별 특성 반영
- 특정 시간대, 특정 요일에 집중되는 소비 습관을 반영
5. 대용량 데이터 처리와 확장성
- 수천 명 사용자, 수백만 건의 트랜잭션 데이터를 생성·분석할 수 있는 확장 가능한 아키텍처로 설계
6. 데이터 분석 및 시각화 연계
- Elasticsearch 기반 검색·분석 지원
- 히트맵, 추세 그래프 등 시각화 도구와 연계해 분석 결과 제공
7. 트랜잭션 생성데이터 제공
- CSV 및 JSON 형식으로 데이터 제공, 외부 데이터셋으로 활용 가능
- Java 21+
- Docker & Docker Compose
git clone https://github.com/SIMPAYLOG/finance-data-generator.git
cd finance-data-generator
./gradlew clean build -x test
docker compose -f docker-compose-demo.yml up -d --build