주식 뉴스 분석 프로젝트 <Flask><1>


Flask 주제부터는 저장되어있는 분석 데이터와 해당 날짜의 실제 주식거래금액을 같이 출력하는 웹 서버를 제작할 예정이다.

 


개발환경

  • OS: ubuntu 20.04
  • 언어: python 3.8.10
  • python 의존성
    1. yfinance==0.1.74 # 실제 주식 가격을 가져오기 위한 모듈
    2. Flask==2.2.2 # 웹 서버 프레임워크
    3. gunicorn==20.1.0 # WSGI
    4. python-dotenv==0.21.0 # .env 파일 읽기 위해
    5. pytz==2022.2.1 # KST(대한민국 표준시) 시간대를 불러오기 위해
    6. pymongo==4.2.0 # mongodb 연결을 위한 모듈
    7. pyflakes==2.5.0 # 코드 검사용 모듈
    8. PyJWT==2.4.0 # jwt 토큰을 위한 모듈(현재는 사용하지 않음)

 

프로젝트 구조

폴더

  • root(.): 프로젝트 설명에 관한 파일들이 존재
    .gitignore, LICENSE, README.md 존재
  • stockserver: 프로젝트 폴더, 사실상 루트 폴더
    main.py(실행 파일), .env(환경 변수 파일), requirements.txt(의존성 목록)이 존재
    • stockserver/middleware: 미들웨어를 넣는 폴더
      현재는 cors를 헤더를 넣어주는 기능만 존재
    • stockserver/my_module: 로직이 길어지는 기능들을 빼서 따로 작성한 모듈들
      logger, mongodb, yfin(주식 가격), 날짜 모듈이 존재
    • stockserver/pages: blueprint 라우팅 페이지 폴더
      /stock/* 에 해당하는 라우팅 페이지만 존재
    • stockserver/templates: 렌더링에 필요한 html 파일들
      현재는 dayStatistics.html와 stockIndex.html 두 개만 사용 중

프로젝트 폴더 구조



EndPoint

프록시 서버의 stock 경로 아래의 http 요청을 전달받는다.

현재 유효한 경로는 2개로, 인덱스 페이지와, 결과를 보여주는 페이지 2개이다.

  • /stock/index: 인덱스 페이지를 출력
  • GET
  • 가져올 주식의 이름과 기간을 설정 가능함
  • 현재 버전에서 기간 설정은 시작일을 설정하면 데이터를 POST로 전송
  • 반환 값은 30일간의 데이터가 반환됨
  • /stock/day: 결과를 보여주는 페이지
  • POST
  • /stock/index 페이지에서 전달받은 데이터를 바탕으로
  • 저장 결과 및 주식 정보를 html과 함께 반환함

 


다음 글

작성한 flask서버를 service로 등록하는 글을 작성할 예정이다.

 


flask server GitHub 주소
https://github.com/mannamman/namthplaygroundStockFlask/tree/deploy

 

 

# 2022-10-05 수정