Manus AI: 개인 연금 계좌 ETF 종목 종가 추적 자동화 작업

소개

개인 연금 계좌에 ETF 11 종목 종가를 기준으로 연 2회 자산 분배를 하기 위해 네이버 증권에 있는 ETF 13종목을 엑셀에 업데이트 하는 것이 불편해 Manus AI 스킬을 활용해 자동화를 시도함

진행 방법

어떤 도구를 사용했고, 어떻게 활용하셨나요?

이번 작업에서는 Python 3.11Yahoo Finance API (REST v8), 그리고 엑셀 파일 조작을 위한 openpyxl 라이브러리를 활용했습니다. 매일 변동하는 11개 ETF 종목의 종가를 수동으로 기록하는 번거로움을 해결하기 위해, 파이썬 스크립트(`update_etf_prices.py`)를 작성하여 종가 데이터를 자동으로 수집하고 기존 엑셀 파일(`ETF_종가추적.xlsx`)을 덮어쓰도록 구성했습니다. 엑셀 파일이 존재하지 않을 경우를 대비해 초기 서식을 갖춘 파일을 생성하는 create_excel.py 스크립트도 함께 연동했습니다.

Tip: 사용한 프롬프트 전문을 꼭 포함하고, 내용을 짧게 소개해 주세요.

다음 11개 ETF 종목의 종가를 Yahoo Finance API(YahooFinance/get_stock_chart)로 수집하여 /home/ubuntu/etf_tracker/ETF_종가추적.xlsx 엑셀 파일의 종가(D열)와 마지막 업데이트(E열)를 현재 시각으로 덮어써 주세요. (ETF 목록 11개 포함) 실행 방법: python3.11 /home/ubuntu/etf_tracker/update_etf_prices.py"

Tip: 활용 이미지나 캡처 화면을 꼭 남겨주세요.

한국어 이름과 숫자가 나열된 테이블



Tip: 코드 전문은 코드블록에 감싸서 작성해주세요. ( / 을 눌러 '코드 블록'을 선택)

#!/usr/bin/env python3.11

"""

ETF 종가추적 엑셀 파일 초기 생성 스크립트

"""

import openpyxl

from openpyxl.styles import Font, PatternFill, Alignment, Border, Side

from openpyxl.utils import get_column_letter

import os

OUTPUT_PATH = "/home/ubuntu/etf_tracker/ETF_종가추적.xlsx"

ETF_LIST = [

("TIGER 일본니케이225", "241180.KS"),

("KODEX 차이나 CSI300", "283580.KS"),

("ACE 미국 S&P500", "360200.KS"),

("KODEX 인도Nifty50", "453810.KS"),

("KOSEF 200TR", "294400.KS"),

("KODEX 미국채10년선물", "308620.KS"),

("ACE 국고채 10년", "365780.KS"),

("KBSTAR KIS국고채30년 Enhanced", "385560.KS"),

("ACE KRX 금현물", "411060.KS"),

("TIGER CD금리투자KIS", "357870.KS"),

("TIGER 미국달러SOFR금리액티브(합성)", "456610.KS"),

]

def create_excel():

wb = openpyxl.Workbook()

ws = wb.active

ws.title = "ETF 종가 추적"

# 헤더 스타일

hea


결과와 배운 점

배운 점과 나만의 꿀팁을 알려주세요.

단순 반복적인 데이터 수집 작업을 자동화함으로써 시간 절약과 데이터 누락 방지 효과를 동시에 얻을 수 있었습니다. 특히 국내 상장 ETF(예: 241180.KS)의 경우 Yahoo Finance API를 호출할 때 종목코드 뒤에 .KS를 붙여야 정확한 조회가 가능하다는 점을 확인했습니다. 또한, 글로벌 서비스 기반의 클라우드나 샌드박스 환경에서는 시스템 기본 시간이 UTC로 설정된 경우가 많으므로, zoneinfo 라이브러리를 활용해 명시적으로 Asia/Seoul (KST) 타임존을 지정해 주는 것이 데이터 기록의 정확성을 높이는 꿀팁입니다.

과정 중에 어떤 시행착오를 겪었나요?

처음 스크립트를 작성했을 때 엑셀 파일이 존재하지 않는 초기 환경에서 에러가 발생할 우려가 있었습니다. 이를 해결하기 위해 os.path.exists()를 사용해 엑셀 파일의 유무를 먼저 체크하고, 없을 경우 엑셀의 헤더와 기본 서식을 세팅해 주는 별도의 create_excel.py 스크립트를 자동 호출하도록 예외 처리를 추가했습니다.

그리고 네이버 증권에 있는 자료를 크롤링 하고자 하였으나 막혀 있어 Yahoo finanace 자료를 인용함. 미국과 시차가 있어 매일 종가가 늦게 업데이트 됨. 해결하기 위해 네이버 대신 KRX 자료를 인용해 달라고 수정해서 데이터 소스를 변경함

도움이 필요한 부분이 있나요?

현재는 스크립트를 수동으로 실행(python3.11 update_etf_prices.py)해야 업데이트가 진행됩니다. 이를 매일 오후 특정 시간(예: 장 마감 후 16시 30분)에 자동으로 실행되도록 OS 단의 스케줄러(cron 등)와 연동하는 방법에 대한 추가적인 구성이 필요할 수 있습니다.

앞으로의 계획이 있다면 들려주세요.

현재 11개 ETF 종목의 당일 종가만 기록하고 덮어쓰는 구조이지만, 향후에는 날짜별로 누적 데이터를 쌓아 차트를 그리거나, 종가 변동률(수익률)을 계산하여 시각화된 대시보드를 구축하는 방향으로 확장해보고 싶습니다. 이를 통해 단순 종가 확인을 넘어 포트폴리오 성과 분석까지 자동화할 계획입니다.

도움 받은 글 (옵션)

참고한 지피터스 글이나 외부 사례를 알려주세요.

(내용 입력)

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요