Side Projects/공모주 알리미

[공모주 알리미 개발] 1. 개요

hzoooo 2021. 8. 26. 23:28

10/08 (금) 어느정도 공모주 알리미 개발이 진행된 상황에서 수정하는 개요

공모주 알리미는 아래와 같은 과정으로 파이썬으로 구현하려고 한다.

  • 총 5개의 데이터 프레임 리스트를 크롤링을 통해 전달받는다.
  • 총 5개의 리스트를 크롤링을 통해 전달받는다. 
    • 오늘 날짜 기준으로 청약 하루 전, 당일, 마감일인 종목들을 크롤링 : 3개의 리스트 데이터 프레임 리스트
    • 오늘 날짜 기준으로 상장 하루전, 당일인 종목들을 크롤링 : 2개의 리스트 데이터 프레임 리스트

 

  • 2개의 정보를 메세지 형태로 전달 : 청약/상장 관련 정보
    • Slack 은 구현하기 간편하지만, 많은 사람들이 사용하지 않음 -> 후순위
    • Line 도 구현하기 쉽다고 추천받았지만, 역시 많은 사람들이 사용하지 않음 -> 더더욱 후순위
    • 카카오톡 은 메세지를 보내는데 너무 제약이 많지만 모든 사람들이 사용함 -> 어렵더라도 챗봇 혹은 화면 제어를 통해 구현 예정
    • 하지만, 구현해본 결과 현실적으로 카카오톡이 제일 힘듦

 

  • 상장 후, 저장할 수 있는 상태가 되면 DB에 insert 한다.
    • 예를 들어, 바이오팜과 같이 따상상상(상장일 시초가 더블 + 3 거래일 연속 상한가)의 경우, 상장 후 최고가를 기입하기 위하여
    • 상장 전에는, 증권발행실적보고서가 나왔을 때 DB에 insert 함.

 

  • DB에 담겨 있는 데이터를 가지고
    • 어떤 attribute가 따상 - 시초가 200%(따), 정규장 30%(상)에 영향을 미치는지 분석한다.
    • 어떤 attribute가 공모가를 하회하도록 하는지 분석한다.

 위와 같이 구현하기 위해, 아래와 같이 Repository를 구성 할 예정이다.

  • README.md
    • 개발 환경 구축을 위한 prequisite 명시(패키지, 필요한 api 등등..)

 

  • config.yaml
    • 사용할 api key 및 발행된 토큰들을 숨길 파일 : commit시 포함되지 않도록(아직 안 해봐서 잘 모르겠다.)

 

  • .gitignore
    • 커밋 시 포함하지 않을 파일들 작성(ex. DS_Store, .idea/~ 등)
    • config.yaml, chromedriver(selenium에 사용), 각종 json 파일(src/json)

 

  • src 폴더
    • main.py : 실행 파일
    • crawler.py : 크롤링한 정보를 데이터 프레임으로 return
    • src/cralwer : 크롤링한 정보를 리스트로 return,
      • 청약 당일까지 업데이트가 지연됨을 방지를 위해, 38커뮤니케이션 / ipostock 뿐만 아니라, dart 홈페이지를 직접 크롤링해야 될 것 같다.
    • kakao_alert.py : 공모주 정보를 카카오톡으로 전송
    • src/reminder : 공모주 정보를 전달할 플랫폼
      • kakao, slack, telegram, tistory : 티스토리에 상세한 정보를 제공하고, 이보다 축소된 정보를 kakao, slack, telegram으로 전달.
    • db.py : 상장 후 공모주 데이터를 적재
      • 누가 봐도 DB에 적재하는 파일 이름으로 하고 싶은데, 역시 naming이 제일 어렵다.
      • (result_manage.py라고 추천받았는데, 더 깔끔한 파일 이름을 짓고 싶지만 떠오르지 않는다..ㅠㅠ)
    • src/store_data : 상장 전(청약이 끝난 후, 모든 정보가 업데이트 되었을 때), 상장 후 공모주 데이터를 적재
      • DB : 먼저 생각해둔 DB는 친구가 추천해준 BigQuery(구글의 데이터웨어하우스) 이며, AWS나 mysql도 생각 중.
      • Google Spreadsheet : 상장 후 상장 결과를 기록하여 공유하고(DB와 달리 데이터를 서비스 수신자가 볼 수 있음), 복기하기 위함.

 처음 프로젝트를 설계할 때, 조회할 정보가 별로 없었기 때문에 DB에 저장하지 않고 크롤링한 정보들을 변환하여 알리미를 만드려고 했다. 하지만, 상장 후 데이터 분석을 위해 DB는 필수적이고 프로젝트에 조언을 많이 해주는 현업자 친구가 무엇보다 먼저 DB를 구성하라고 강력하게 말해줬다. DB 대용으로 사용하려던 구글 스프레드 시트 및 항상 사용하던 mysql 대신, 추천해준 Google BigQuery를 사용해보려고 한다.

 

 또한, 진행해보니 카카오톡 API가 메시지 보내는 데에 있어 제한적이다. 앞으로 포스팅하겠지만, 특히 친구한테 메시지를 보내기 위해서 제약이 상당히 많기 때문에, 계속 대안을 찾고 있고 어떻게든 만들어 낼 거다. (삽질 엄청했고, 아직도 진행중이다..)

 

10/08 (금) 오전 12:16분에✌: 제주도 게스트하우스 침대에 누워 개요를 수정하면서...ㅎㅎ

블로그, 개발 둘다 대충하고 싶지 않아서 블로그/개발을 동시에 하면 개발이 너무 느려질 것 같아서,

개발에 집중하다 보니 [공모주 알리미 만들기] 관련 포스팅을 너무 미루어 뒀는데,

신경써서 둘다 열심히 하도록 해야겠다.