본문내용
1. 딥러닝을 이용한 미래 경제동향 파악
1.1. 요약문
이 프로젝트의 최종적인 목표는 과거, 현재 주식데이터의 정보를 가져와 딥러닝 기술을 이용해서 미래 주가예측 결과를 보여주며 주식 이외에 다양한 금융 정보를 한눈에 알아볼 수 있는 웹사이트를 구현하는 것이다. 주식 시장에 관심 가지고 있었는데, 매번 달라지는 주식 시장에서 어느 것이 오르고 어느 것이 내릴지 예측을 할 수 없었다. 그래서 딥러닝을 이용해서 주가예측을 할 수 있다면 더욱 편하게 주식투자를 할 수 있다고 판단해서 만들게 되었다. 날마다 갑작스러운 변동으로 100% 정확성을 가지고 있다고 확신할 수 없지만, 높은 확률로 예측을 할 수 있다고 볼 수 있다. 그리고 주가예측과 더불어서, 각 금융사의 금융 상품들을 나열하며, 미리 적금을 계산하여 얼마나 벌 수 있는지 가늠할 수 있게 웹사이트에 추가하였다.
1.2. 서론
1.2.1. 추진 배경 및 목적
현대 사회에서의 빈익빈 부익부 현상은 너무나도 극명하게 차이가 나고 있으며, 대한민국의 경제성장률도 점차 낮아지는 추세이다. 이러한 현실 속에서 필요한 것은 돈이라 생각을 하였다. 돈은 사람이 살아가는데 필요한 것을 거래하기 위한 재화이자, 부의 가치를 나타내는 지표이다. 이러한 돈을 관리 하기 위해서 금융을 공부하기 시작하였고, 그중에 하나로 주식, 펀드이다. 이전부터 낮아지고 있었던 금리가 이번 코로나19 사태로 더욱 낮아져서 일반적인 예, 적금 같은 안정적인 투자 방법으로는 기대한 만큼의 이익이 나지 않기 때문에 주식과 펀드 투자가 더욱 중요해졌지만, 아무런 정보도 없이 무작정 시작한다면, 오히려 내 자산을 잃을 수도 있다. 그래서 주식, 펀드 투자 공부를 하면서도 어느 상품이 이익을 낼 수 있는지에 대해서 정보를 얻어야 한다. 하지만, 주식과 펀드 시장이 해당 시장 혹은 기업의 사소한 이슈부터 해외시장, 심지어 이번 코로나19 같은 자연재해도 시장에 큰 영향을 주기 때문에 일반적인 투자자들은 예측하기가 어렵다. 그래서 주가예측을 할 수 있다면, 100% 정확하진 않더라도 어느 정도 파악할 수 있다고 생각을 했다.
1.2.2. 개발 목표와 내용
1.2.2.1. 프로젝트 개발 목표
프로젝트 개발 목표는 다음과 같다.
첫째, 딥러닝 기술을 사용한 주가예측 DB를 구축하는 것이다. 과거와 현재 주식 데이터를 수집하여 딥러닝 기술을 적용하여 미래 주가를 예측하는 데이터베이스를 구축하는 것이 주된 목표이다.
둘째, 구축된 주가예측 DB를 활용하여 금융 관련 웹사이트를 제작하는 것이다. 주가예측 결과를 한눈에 볼 수 있도록 웹사이트로 구현하고, 주식 외에도 다양한 금융 정보를 제공하는 것이 목표이다.
셋째, 예금, 적금, CMA 등의 금융 상품을 미리 계산할 수 있는 계산기를 개발하는 것이다. 이를 통해 사용자들이 다양한 금융 상품의 수익을 손쉽게 확인할 수 있도록 하는 것이 목표이다.
넷째, 딥러닝과 관련된 새로운 툴과 언어에 대한 학습을 진행하는 것이다. 프로젝트를 수행하면서 최신 딥러닝 기술을 익히고, 웹 개발을 위한 HTML5, JSON, JS, CSS 등의 언어에 대해 학습하는 것이 목표이다.
다섯째, 금융 상품 및 주식 데이터 크롤링에 대한 학습과 구현을 진행하는 것이다. 프로젝트 수행을 위해 필요한 데이터를 직접 수집하고 가공하는 방법을 익히는 것이 목표이다.
1.2.2.2. 프로젝트 개발 내용
프로젝트의 주요 개발 내용은 다음과 같다.
첫째, LSTM 모델 생성이다. LSTM은 순환신경망(RNN)의 한 종류로, 경사 하강을 통해 효율적으로 학습한다. 학습 결과의 재현성을 높이기 위해 시드를 설정하고, 하이퍼파라미터를 튜닝하였다. 또한 데이터의 정규화를 통해 학습에 방해가 되는 값들을 조정하였다. 가격 형태 데이터와 거래량 형태 데이터를 각각 정규화하고, 학습용 데이터와 테스트용 데이터를 생성하였다. 이후 LSTM 모델을 생성하고 다중 층(multi-layer)을 쌓아 Stacked RNNs를 구성하였다.
둘째, 주식 데이터 크롤링을 수행하였다. LSTM 모델 학습을 위해서는 주식 데이터가 필수적이므로, 포털 사이트의 주식 정보 페이지에서 시가, 고가, 저가, 종가, 조정종가, 거래량 데이터를 추출하였다. 이렇게 수집한 데이터를 CSV 파일 형태로 저장하였다.
셋째, 주식 예측치와 웹 연동 작업을 진행하였다. 앞서 LSTM 모델로 예측한 결과를 웹 페이지와 연동하기 위해 Flask 웹 프레임워크를 활용하였다. Flask를 기반으로 서버를 생성하고, 학습 모델 파일을 서버 폴더에 위치시켜 연동을 완성하였다.
넷째, 게시판과 계산기 기능을 구현하였다. 금융감독원에서 공시된 은행 예금, 적금 데이터를 내려받아 JSON 형태로 DB에 저장하였다. 이를 활용해 단리, 월 복리, 연 복리 계산기를 제공함으로써 사용자가 예·적금 수익을 직접 계산해볼 수 있도록 하였다. 게시판 기능에서는 로그인한 회원만 정보를 등록할 수 있도록 하였다.
다섯째, 회원가입 및 로그인 기능을 구현하였다. 로그인하지 않아도 사이트 이용은 가능하지만, 예·적금 게시판에 정보를 등록하려면 로그인이 필요하도록 하였다.
이와 같은 다양한 기능들을 개발하여, 사용자들이 주식 예측 정보와 금융 상품 정보를 한 곳에서 확인하고 활용할 수 있도록 하였다.
1.3. 관련연구
1.3.1. 기존 개발 연구 동향
기존 개발 연구 동향을 살펴보면, 주식예측에 관한 연구들이 다양한 모델을 가지고 진행되어 왔다. 먼저 '주가는 수요와 공급의 원리에 따라 결정되며 수급의 결과는 그래프로 나타난다'는 이론을 바탕으로 하는 기술적 주가 분석은 그래프 분석을 통해 미래주가를 예측한다. 하지만 이 분석은 변수가 작용하면 예측률이 현저히 떨어진다는 한계가 있다. 또한 빅 데이터 주가 분석은 주가 데이터 외에 해당 종목에 대한 뉴스, 사람들의 검색 등을 활용해서 주가예측을 하는 모델이다. 그러나 이 분석 역시 변수가 작용하면 한계점이 드러나는데, 누군가가 임의로 빅 데이터를 조절할 수...