[주식 데이터 자동 기록 기초] EP02. 파이썬으로 야후 파이낸스 주가 정보 텔레그램 알림 받기

목차

수동으로 주식 기록을 하다가 자꾸 빼먹고 관리가 안 돼서 컴퓨터한테 자동화를 맡기기로 하고 시작한 프로젝트다.

지난 글(EP01)에서는 구글 클라우드 콘솔을 통해 블로거 API 인증키를 발급받고, 매번 로그인 없이 패스할 수 있는 마스터키(token.pickle)를 내 컴퓨터에 확보하는 구글 블로거 연동 작업을 명확히 마쳤다.

이번 글(EP02)의 핵심은 야후 파이낸스와 파이썬을 연동해 실시간 주가 데이터를 긁어오고, 이를 내 휴대폰 텔레그램 수신 테스트까지 완벽하게 성공시키는 것이다. VS Code 설치부터 첫 실시간 딩동 메시지를 받기까지 직접 삽질하며 해결한 실전 기록을 담았다.

여기까지 성공하고 나면, 다음 글(EP03)에서는 수집한 데이터들을 휘발시키지 않고 차곡차곡 누적 보관할 노션(Notion) API 연동과 데이터베이스 자동화 환경을 구축할 예정이다.

그럼 시작해보자.


1. 준비사항

(1) 텔레그램 봇 토큰Chat ID

(2) 이 글은 시리즈로 작성되는 글이기 때문에 이전 글에서 수행했어야 할 사항들이 마무리되어 있어야 이번 글 또한 실행이 가능합니다. 이번 시리즈의 1편은 아래 버튼으로 연결된다.


2. 야후 파이낸스, 통신 앱 설치

💡알고 있어야 할 기초사항

  • yfinance (야후 파이낸스 앱) : 전 세계 주식 시장의 실시간 가격(한화오션 현재가 등)을 파이썬으로 긁어올 수 있게 해주는 데이터 수집 도구이다.
  • requests (인터넷 통신 앱) : 파이썬이 수집한 데이터를 인터넷망을 통해 텔레그램 봇과 노션 데이터베이스로 쏘아 보낼 수 있게 해주는 통신 연결 도구이다.
  • pip 또는 py -m pip : 앱을 다운로드해 주는 '앱스토어 프로그램 자체'의 이름이다.

 

이제 아래 사항을 차근 차근 실행해보자.

(1) 이 글의 1편인 [주식 데이터 자동 기록 기초 EP01]에서 바탕화면에 만들어 놓은 'blog_bot' 폴더를 연다.

(2) 폴더 안 상단 주소창 'CMD' 라고 입력해 코드를 넣을 창을 불러온다.

📌 아래 (3)번 과정에서 실패라면 (4)번 과정을 해봐야 한다. 필자의 경우 (4)번까지 시도해서 성공했다.

(3) 새롭게 열린 검은색 CMD 창에 아래의 라이브러리 설치 명령어를 입력하고 엔터를 누른다.

pip install yfinance requests

 'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. ➡ 실패


성공
이라면 아래와 같은 코드들이 나와야 한다.
Collecting yfinance Downloading yfinance-0.2.38-py2.py3-none-any.whl (74 kB) Collecting requests Downloading requests-2.31.0-py3-none-any.whl (62 kB) ... (중략) ... Installing collected packages: requests, yfinance Successfully installed requests-2.31.0 yfinance-0.2.38


(4) 나의 경우 실패였다. 그래서 아래와 같은 코드를 다시 복사해 붙여넣기 후 엔터를 눌렀다.
py -m pip install yfinance requests
상당히 긴 코드가 나왔고, 아래서 4-5번째 줄에 Successfully installed 라고 표기 되어 있었다. ➡ 성공

중간에 WARNING: The script ...이라는 글도 나오는데 결론적으로 하단에 Successfully installed 이라고 되어 있으면 성공인거다.


3. 자동화 코드를 작성할 파이썬 파일(.py) 만들기

파이썬 파일 만들기 (야후 파이낸스)

(5) 만들어 놓은 blog_bot 폴더 안의 빈 공간을 마우스 우클릭한다.
(6) 새로 만들기 ➡ 텍스트 문서 선택해 새 메모장 파일을 만든다.
(7) 파일이름을 확장자 까지 모두 지우고 master_bot.py로 만든다. (txt를 붙이지 않는다.)
(8) '확장명을 변경하면 사용할 수 없게 될 수도 있습니다' 라는 팝업창이 뜨면 '예'를 클릭한다.
(9) 만들어진 master_bot.py 파일을 오른 마우스 클릭한 뒤 '연결 프로그램'  '메모장'을 선택해 빈 창을 열어줍니다.
(10) 아래 코드를 복사해 열어놓은 메모장에 붙여넣기 한 후 저장한다.
💡아래 코드는 야후 파이낸스 전산망에 직접 접속하여 >한화오션의 현재가를 실시간으로 수집해오라고 지시하는 명령어이다.
import yfinance as yf

# 한화오션 종목코드 (야후 파이낸스 기준은 뒤에 .KS를 붙인다)
ticker = "042660.KS"
stock = yf.Ticker(ticker)

# 최근 1일간의 거래 데이터 수집
hist = stock.history(period="1d")

if not hist.empty:
    # 가장 최근 종가(현재가)를 정수형으로 가져오기
    current_price = int(hist['Close'].iloc[-1])
    print(f"📊 한화오션 현재가 수집 성공: {current_price}원")
else:
    print("❌ 데이터 수집 실패")
💡메모장 상단 왼쪽 탭 이름이 다른 게 아니라 반드시 내가 우클릭한 파일 이름인 master_bot.py로  고정되어 있어야 한다.)
💡메모장에 열려있는 파일이 없이 메모장 앱을 구동해 열어야 제목이 변경되지 않고 깔끔하게 한번에 저장된다. 

(11) 저장이 완료되었다면 메모장을 닫고, 아까 라이브러리를 설치할 때 열어두었던(3번) 검은색 CMD 창(터미널) 화면으로 돌아간다. 코드를 넣었던 검은색 창을 닫았다면 다시 blog_bot 폴더 주소창에 다시 'CMD'를 입력해서 새 창을 열어도 된다.

(12) CMD 창에 방금 만든 파이썬 파일을 실행하기 위해 아래의 명령어를 입력하고 엔터를 누른다.

py master_bot.py

(13) 아래와 같은 문장이 뜬다면 성공이다. (금액은 다를 수 있다.)

📊 한화오션 현재가 수집 성공: 118100원  ➡ 성공

야후 파이낸스로 한화오션의 현재가를 컴퓨터로 가져오는 것까지 성공했으니, 이제 이 값을 텔레그램 앱으로 쏘아 보내는 단계를 적용할것이다. 


4. 수집한 주가 데이터를 텔레그램으로 전송하기

파이썬이 혼자 알고 있는 주가 정보를 인터넷망을 통해 텔레그램 서버로 전송하려면 아까 1장에서 설치했던 통신 앱(requests)을 코드에 추가로 장착해야 한다.

(14) 만들어 놓은 blog_bot 폴더 안 상단의 주소창 'CMD'입력하고 엔터를 누른 후 검은색 명령 프롬프트 창을 불러온다.

(15) 아래 코드를 복사붙여넣기 한 후 엔터를 누른다. 

code .

 'code'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. ➡ 실패


위와 같이 에러가 뜨더라도 당황할 필요 없다. 윈도우 시작 메뉴나 바탕화면에서 VS Code를 직접 찾아서 실행해 주면 된다.


 VS Code 설치하기

(16) 바탕화면 작업표시줄의  윈도우 아이콘 클릭한다.

(17) 상단 검색창에 vscode 을 입력 해 설치가 되어 있는지 확인한다. 필자의 경우 설치되어 있지 않아 설치해야 했다.

(18) 만약 위와 같은 에러 메시지가 나타났다면, 컴퓨터에 코딩 편집기인 'VS Code'가 설치되어 있지 않기 때문이다. 당황하지 말고 아래의 순서대로 간단하게 설치를 먼저 진행하자. 만약 검색이 귀찮다면 아래의 다운로드 링크 버튼을 통해 공식 홈페이지로 바로 진입해도 된다.

(19) 메인 화면 중앙에 있는 파란색 [Download for Windows] 버튼을 클릭해 설치 파일을 다운로드한다.

(20) 다운로드한 파일을 실행한 뒤, 약관 동의를 거쳐 [다음] 버튼을 눌러 설치를 진행한다.

⚠️ 이때 'PATH에 추가(Add to PATH)' 항목은 반드시 체크해 주어야 한다. 이 항목이 활성화되어야만 윈도우가 파이썬 편집기의 위치를 기억하고, 앞서 시도했던 cmd 창에서의 code . 명령어를 정상적으로 인식할 수 있다. 내가 체크한 사항은 아래와 같다.

✅ 바탕 화면에 바로가기 만들기(D)
✅ Code을(를) 지원되는 파일 형식에 대한 편집기로 등록합니다.
✅  PATH에 추가(다시 시작한 후 사용 가능) ➡ 꼭 체크!!

(21) 설치 마지막 화면에서 'Visual Studio Code 실행'에 체크된 상태로 [종료] 버튼을 누르면, 코딩을 위한 모든 준비가 끝나고 프로그램이 자동으로 실행된다.

✅ Visual Studio Code 실행

(22) VS Code 계정을 로그인 하라는 초기 실행 화면이 나타난다. 그 창만 닫는다.
(23) VS Code 프로그램 메뉴에서 [File]  [Open Folder]  ➡ [blog_bot] 폴더 찾아 선택  ➡ 하단 select folder 버튼을 클릭한다.
(24) 'Do you trust the authors of the files in this folder? (이 폴더에 들어있는 코드들을 안전하다고 믿고 실행하겠습니까?) 라는 문구의 팝업창이 뜨면 아래 'Yes, I trust the authors' 버튼을 클릭한다.
(25) 팝업창이 닫히면 왼쪽 탐색기 영역에 내 작업실인 blog_bot 폴더 이름이 정상적으로 표시된다.


파이썬 파일 생성 및 통신 모듈 장착

(26) 중간 쯤의 [New File...] 버튼을 클릭한 후, 상단 빈칸에 확장자(.py)까지 포함하여telegram_bot.py 라고 입력하고 엔터를 누른다.
(27) 하단 All Files가 선택되어 있는지 확인 후 아래 'Create File' 버튼을 클릭한다.
(28) 그리고 나면 VS Code 프로그램 우측 하단에 파이썬 확장 프로그램을 설치하겠냐는 팝업창(Do you want to install the recommended 'Python' extension...)이 뜰 수 있다. 코딩의 편리함을 위해 파란색 [Install] 버튼을 눌러 설치해줬다.
(29) 상단의 탭 중 telegram_bot.py 탭 클릭해 활성화시킨다.
(30) 1행 : import requests 입력 후 엔터를 누른다. 
아래 코드를 복사해 붙여넣기 한 후 엔터를  눌러도 된다.
import requests

텔레그램 수신 테스트

⚠️ 파이썬에서 문자 입력 시 반드시 값 좌우에 작은따옴표(' ')를 붙여주어야 오류가 나지 않는다. 

(31) 2행BOT_TOKEN = '내 토큰 값'을 입력한다. (텔레그램)

(32) 3행 : CHAT_ID = '내 ID 값'을 입력한다. (텔레그램)

아래 코드를 복사해 본인의 토큰과 chat id를 넣어 2행과 3행에 붙여넣기 해도 된다.

BOT_TOKEN = '여기_안에_본인의_봇_토큰을_넣으세요'
CHAT_ID = '여기_안에_본인의_chat_id를_넣으세요'

 (33) 한 줄을 띄워 5행아래 코드를 복사해 붙여넣기 한 후 엔터를 누른다.

def send_telegram_message(message):
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    payload = {
        'chat_id': CHAT_ID,
        'text': message
    }
    response = requests.post(url, json=payload)
    return response

(34) 13행 : 엔터로 한 칸 비워둔다.

(35) 14행 : 아래 코드를 복사해 붙여넣기 한 후 엔터를 누른다.

⚠️ [주의] 들여쓰기(앞 공백) 없이 맨 앞으로 바짝 붙여서 붙여넣기 해야 한다.

send_telegram_message("🚀파이썬에서 보낸 텔레그램 테스트 메시지입니다!")

(36) 저장하기 위해 Ctrl + S를 누른다. 
(37) 혹시 경로를 설정해야 한다면 우리가 계속 사용하던 'blog_bot' 폴더 안에 이미 만들어진 'telegram_bot.py' 파일에 덮어쓰듯 저장하는 것이다.

💡 VS Code 코드 저장 여부 확인하는 방법

  • 상단 탭 모양 확인 : 파일 이름 오른쪽 기호를 보면 현재 저장 상태를 바로 알 수 있다.
  • 하얀 동그라미( ● ) : 코드가 수정되었으나 아직 컴퓨터에 저장되지 않은 상태를 의미한다.
  • X 표시 모양 : 저장이 완벽하게 완료된 상태이다. 키보드 단축키 Ctrl + S를 누르면 동그라미가 X로 바뀐다.

 

(38) 이제 프로그램 실행을 위해 VS Code 우측 상단에 있는 ▶ 모양의 재생 버튼을 클릭한다.
(39) 텔레그램 앱의 대화창을 확인한다. 아래와 같이 수신된다면 성공이다.
'파이썬에서 보낸 텔레그램 테스트 메시지입니다!' ➡ 성공

 #주식자동화 #파이썬기초 #텔레그램봇 #DART공시알림 #VSCode사용법 #주식프로그래밍 #오픈다트 #개발일지

댓글

이 블로그의 인기 게시물

학점은행제 아동학 학사 학위 신청 방법, 보육교사 2급 자격증 취득 순서 정리

블로그 작성 시간을 줄이자. 크롬 다크리더 사용 글자색이 회색으로 보이는 방법 해결

유튜브 '나중에 볼 동영상' 10분만에 삭제, 스크립트 붙여넣기 오류 해결 방법