프로젝트

[2023 월간프로젝트] 01. 주식과 노션(Notion)

(ㅇㅅㅎ) 2023. 1. 25. 15:17
728x90
반응형

 

 

프로젝트 동기

 2023년에는 매달 프로젝트를 1가지 정하여, 진행하고 블로그에 기록하는 것을 목표로 새롭게 세웠습니다. 그중 첫 번째인 1월의 프로젝트에 대해서 어떤 것을 하면 좋을지 고민이 많았습니다. 여러 가지 후보들이 있었지만, 그중에서 주식 데이터를 받아와서 노션에 기록하는 것으로 결정하였습니다.

 뜬금없이 "왜 여기서 주식이 나와?"라고 생각하실 수도 있지만, 저는 매일 아침 유튜브로 경제 뉴스를 보면서 주요 뉴스와 주가 지수를 노션에 기록을 하는 습관을 가지고 있습니다. 하지만 기록을 할 때 좀 번거로운 부분이 있었는데, 그것은 주가 지수와 환율을 기록하는 것이었습니다. 이러한 불편함을 가지고 있는 와중에 제 친구가 제가 정리한 글을 보고 "이 지수들은 전부 네가 직접 쓰는 거야? 컴퓨터로 코드로 입력되는 거야? 직접 쓰는 거면 정말 번거롭겠다"라고 했습니다. 이 말을 듣고  '그래도 한때 개발자로 일했었는데 이러한 귀찮음을 두고 볼 수 없지'라는 생각이 들어서 이것으로 1월의 프로젝트를 진행하기로 마음먹었습니다.

 

 

프로젝트 목표

 프로젝트의 목표는 간단합니다. 원하는 주가지수와 환율 데이터를 가져와서 Notion에 입력하도록 만드는 것입니다.

 

 

사용한 기술

  • 사용 언어 : Python3
  • 구성 환경 : Jupyter Notebook
  • 경제 데이터
    • 주식 데이터 : yfinance
    • 환율 데이터 : 한국수출입은행 api
  • Notion : notion_client

 

 

프로젝트 후기

 오늘 아침에도 나름 만족하면서 사용하고 있습니다만, 앞으로 필요한 부분은 추가하고 필요 없는 부분은 덜어가면서 계속해서 수정해 나갈 프로젝트입니다. 이번 프로젝트를 하면서 재미있는 경제 관련 api에 대해서 알게 되어서 추후에 주가 데이터와 AI를 이용해 보거나 새로운 프로젝트를 만들거나 실생활에 필요한 것들을 만들 것 같습니다. 이번 프로젝트를 진행하면서 힘들었던 부분과 아쉬운 부분만 좀 더 살펴보면 다음과 같습니다.

 

힘들었던 부분

 이번 프로젝트에서 가장 힘들었던 것은 Notion입니다. 현재 Notion에 대한 api를 지원하는 패키지는 notion-py(비공식)와 notion-client(공식)가 있습니다. 아무래도 공식인 notion-client가 좀 더 안전할 것 같아서 notion-client로 개발을 진행하였는데, 예제가 생각보다 많이 존재하지 않습니다. 그나마 어떤 감사한 분이 python으로 notion-client를 사용하는 방법을 정리해 두어서 앞으로 나아갈 수 있었습니다.(이번 프로젝트에서 가장 도움을 많이 주신 찬찬님 감사합니다.)

notion template과 text block 예시

 '사용법이 잘 안 나와있어서 힘들었나?'그건 아닙니다. 저는 Template를 미리 만들어두고 원하는 부분에 데이터를 입력하도록 코드를 구성하였는데, 표 내부를 구성하는 것도 힘들었지만 제일 힘들었던 부분은 '/' 글자 색 변경이었습니다. 사실 힘들다기보다는 번거로웠던 부분입니다. text block은 위의 이미지처럼 긴 내용을 가지고 있는데 이 내용을 다 적어서 담아내지 않으면 Notion 입력 시 문제가 생겼습니다. 처음에는 바뀌는 부분만 적어서 담아 보내면 문제가 생겨서 색이 변화하는 부분만 미리 만들어두었습니다. 그리고 "plain_text" 내용과 "text" 내부의 "content"에도 내용을 입력해줘야 해서 번거로웠습니다.

 

아쉬운 부분

1. 환율 데이터

 환율 데이터의 경우 하나은행 환율 api를 사용하고 싶었지만, 개인은 사용 불가하고 사업자만 사용 가능하여 현재 '살 때'와 '팔 때'는 손으로 입력하고 있습니다. 다른 api들을 살펴본 뒤 개인이 사용할 수 있는 것들을 찾아볼 예정입니다.

👀 사실 현재 한국수출입은행과 하나은행의 TTS와 TTB 값이 다르지만 그냥 섞어서 사용하고 있습니다.

 

2. 미국 국채 2년물

 위의 환율 데이터처럼 손으로 입력하는 부분이 1가지 더 있는데 그건 미국 국채 2년물 부분입니다. yfinance는 yahoo finance에서 데이터를 가져오는데 2년물에 관한 정보를 찾지 못하여 손으로 작성하고 있습니다. 만약 찾게 된다면 이 부분들도 수정할 예정입니다.

👀 경제 데이터를 가져오는 api들은 yfinance 외에도 investpy와 Finance Data Reader가 존재합니다. 하지만 제작 당시 investpy의 경우 yfinance보다 사용법이 번거로웠고 403 오류가 빈번하여 사용하길 포기했습니다. Finance Data Reader의 경우 중복적인 데이터들이 많았는데 그 데이터 값들이 전부 달라서 사용하는데 번거로움을 느꼈습니다. 만약 이 오류를 잡게 된다면 다른 것들로도 제작해 볼 예정입니다.

 

3. Notion text block

 힘들었던 부분에서도 언급되는 text block의 문제는 남은 기간 동안 text block 관련 class를 제작하여 좀 더 편하게 만들 예정입니다. 이 부분은 작업 완료 후 블로그에 기술적인 부분으로 글을 쓸 예정입니다.

 

반응형