팀프로젝트/RPA를 활용한 환율 변동 추이 분석 및 예측 시스템

기능 정의서

모로노이 2025. 10. 18. 13:05
프로젝트명
RPA를 활용한 환율변동 추이 분석 시스템
작성일 2025년 10월 18일
작성팀
미래환율팀 (백인호, 최홍석, 이지석, 이주영, 이병철)

 

 

1. 자동화 기능 (RPA / CI/CD)

RPA Tool을 이용한 자동화 요구사항을 CI/CD 파이프라인으로 구현합니다.

기능명 데이터 수집 및 전처리 자동화
설명 매일 지정된 시간에 환율 및 경제 지표 데이터를 자동으로 수집하고 전처리합니다.
구현 기술 GitHub Actions
프로세스 1. GitHub Actions 스케줄러가 매일 1회(예: 오후 1시) 워크플로우를 트리거합니다.
2. Python 스크립트(collector.py)를 실행하여 외부 API/사이트에서 데이터를 수집합니다.
3. 수집된 데이터를 Kafka 토픽으로 전송합니다.
출력 MongoDB에 저장된 최신 원본 데이터
 
기능명 모델 재학습 및 배포 자동화
설명 신규 데이터가 적재되면 예측 모델을 자동으로 재학습하고, 최신 모델을 서버에 배포합니다.
구현 기술 GitHub Actions, Docker
프로세스 1. (Trigger) 완료 또는 주기적 스케줄에 따라 실행됩니다.
2. Docker 이미지를 (최신 데이터 및 코드로) 새로 빌드합니다.
3. AWS EC2의 Docker 컨테이너를 재시작하여 FastAPI 서버를 최신 버전으로 업데이트합니다.
출력 최신 예측 모델이 반영된 API 서버

 

2. 데이터 관리 기능 (Database / Cache)

수집된 데이터를 저장하고 효율적으로 처리합니다.

기능명 데이터 마트 구성 (저장) 
설명 수집된 원본 데이터 및 전처리된 데이터를 영구 저장하고 관리합니다.
구현 기술 MongoDB
입력 Kafka 컨슈머로부터 전달받은 JSON 형태의 데이터
프로세스 1. 수집 스크립트가 보낸 데이터를 Kafka가 수신합니다.
2. Kafka 컨슈머가 데이터를 MongoDB 내의 적절한 컬렉션에 적재합니다.
출력 MongoDB Atlas에 저장된 시계열 데이터
기능명 예측 데이터 캐싱
설명 모델 예측 결과 및 자주 조회되는 데이터를 캐시에 저장하여 API 응답 속도를 향상시킵니다.
구현 기술 Redis
입력 모델 예측 결과 (JSON 또는 직렬화된 데이터)
프로세스 1. API 요청 시, 먼저 Redis에서 데이터 조회를 시도합니다.
2. (Cache Hit) Redis에서 즉시 데이터를 반환합니다.
3. (Cache Miss) MongoDB 조회 및 모델 실행 후, 결과를 Redis에 저장하고 반환합니다.
출력 캐시된 예측 데이터

 

3. 환율 예측 모델 기능 (ML / DL)

데이터를 분석하고 미래 환율을 예측합니다.

기능명 데이터 EDA 및 전처리
설명 MongoDB의 원본 데이터를 모델 학습에 적합한 형태로 가공합니다.
구현 기술 Pandas, NumPy
프로세스 1. 결측치 처리 (ffill 방식).
2. 월별/분기별 데이터를 일별 데이터로 변환.
3. 파생 변수(예: 금리차) 생성.
4. 데이터 정규화/표준화.
출력 모델 학습용 데이터셋 (e.g., torch.Tensor)
기능명 환율 예측 모델링
설명 4개 통화(USD, EUR, JPY, CNY) 에 대한 미래 환율을 예측하는 딥러닝/머신러닝 모델을 구현합니다.
구현 기술 PyTorch, TensorFlow, Scikit-learn, Optuna
프로세스 1. (주력 모델) Attention-LSTM 모델을 PyTorch 또는 TensorFlow로 구현합니다.
2. (비교 모델) XGBoost, LSTM 모델을 Scikit-learn 등으로 구현합니다.
3. Rolling Window 방식으로 시계열 교차 검증을 수행합니다.
4. Optuna를 사용하여 모델의 하이퍼파라미터를 최적화합니다.
출력 학습된 모델 파일 (.pt, .h5, .pkl) 및 성능 지표

 

4. API 서버 기능 (Backend)

모델의 예측 결과를 프론트엔드로 전달합니다.

기능명 환율 예측 API
설명 프론트엔드에 통화별 예측 데이터(실제값, 예측값)를 REST API로 제공합니다.
구현 기술 FastAPI
프로세스 1. 프론트엔드로부터 currency 파라미터를 수신합니다.
2. 캐싱 기능을 통해 Redis에서 데이터를 조회합니다.
3. 조회된 데이터를 JSON 형식으로 반환합니다.
출력 환율 시계열 데이터 (JSON)
기능명 AI 활용 부가 기능 (실시간 채팅)
설명 AI Tool 활용 기능의 일환으로, 로그인한 사용자 간 실시간 채팅 기능을 제공합니다.
구현 기술 FastAPI의 WebSocket
프로세스 1. 클라이언트와 WebSocket 연결을 수립합니다.
2. 수신된 메시지를 해당 채팅방의 모든 연결된 클라이언트에게 브로드캐스트합니다.
출력 실시간 채팅 메시지

 

5. 웹 대시보드 기능 (Frontend)

사용자에게 예측 결과를 시각화하여 제공합니다.

기능명 인터랙티브 차트 시각화
설명 환율 데이터와 기술적 분석 지표를 인터랙티브 차트로 시각화합니다.
구현 기술 React, Plotly (가이드라인 명시)
입력 API로부터 받은 JSON 데이터
필수 기능 1. 실제 환율, 예측 환율을 차트에 플로팅.
2. 5일, 20일, 60일, 120일 이동평균선(SMA) ON/OFF 기능.
3. 지수이동평균(EMA) ON/OFF 기능.
4. EMA alpha 값 사용자 입력 기능 (기본값 0.1).
5. 툴팁 등 Plotly 기본 인터랙션 제공.
기능명 대시보드 UI/UX
설명 사용자가 환율 정보를 쉽게 탐색할 수 있는 전체 UI를 제공합니다.
구현 기술 React, shadcn/ui, React Query, Zustand
필수 기능 1. (레이아웃) shadcn/ui를 사용한 일관된 디자인 시스템 적용.
2. (탐색) 통화(USD, EUR, JPY, CNY) 및 모델 선택 기능.
3. (상태 관리) React Query로 API 데이터를 관리(캐싱, refetching)하고, Zustand로 UI 관련 상태(예: 토글)를 관리 (인증) 회원가입/로그인 UI.

 

6. 배포 및 인프라 기능 (Infra / Networking)

개발된 시스템을 외부 사용자가 접속할 수 있도록 배포합니다. 

기능명 웹 서버 구성 및 배포
설명 백엔드 API 서버와 프론트엔드 앱을 클라우드 환경에 배포하고 외부 요청을 처리합니다.
구현 기술 Docker, AWS EC2, Elastic IP, IAM, Nginx (Reverse Proxy)
프로세스 1. (인프라) AWS EC2 인스턴스에 Docker 환경을 구성합니다.
2. (네트워크) Elastic IP로 고정 IP를 할당하고, Nginx를 리버스 프록시로 설정합니다.
3. Nginx는 도메인 요청을 수신하여 FastAPI (백엔드) 컨테이너와 React (프론트엔드) 정적 파일로 라우팅합니다.
4. (보안) IAM을 통해 팀원의 EC2 접근 권한을 관리합니다.
출력 외부 접속이 가능한 서비스 URL