안녕하세요, 귀찮음 MAX 찍은 자동화맨입니다.


토스증권 앱은 수익률은 알려주는데, 왜 움직였는지는 안 알려주더라구요.

그래서 매주 종목마다 뉴스 뒤지다가 주말 끝나기 일쑤였습니다.


그래서 만들었습니다.

매주 토요일, 내 주식 종목이 왜 움직였는지 메일로 받아보는 자동화입니다.


결과부터 보면

 


매주 토요일이 되면 네이버 메일로 증권 리포트가 도착합니다.


자동화 흐름은 이렇습니다.

1. 토스증권 API로 내 계좌 조회

2. 파이썬으로 주간 손익 계산

3. 클로드 코드가 웹 검색으로 원인 분석

4. 네이버 메일로 발송


리포트는 다섯 덩어리로 구성돼 있습니다.


① 요약

이번 주 계좌가 얼마나 움직였는지 한눈에 보여줍니다.


② 손익 분석

해외주식은 주가가 그대로여도 환율 때문에 수익률이 바뀌거든요.

"내 종목이 잘한 건지, 달러가 잘한 건지"를 나눠서 보여줍니다.


③ 왜 움직였나


종목별로 왜 오르고 내렸는지 국내외 증권 소식을 참고해 판단을 내려줍니다.


④ 증권가 전망


해당 종목에 대한 증권사·애널리스트 의견을 모아줍니다.


⑤ 다음 주 일정

실적 발표, 경제 지표 발표처럼 다음 주에 챙겨볼 일정입니다.


그럼 이걸 어떻게 만들었는지,

먼저 이 모든 것의 시작인 토스증권 Open API부터 짚고 가겠습니다.


토스증권 open API



쉽게 말하면 내 토스증권 계좌를 클로드가 들여다볼 수 있게 열어주는 창구입니다.

앱에서 손가락으로 확인하던 걸 클로드가 대신 꺼내오는 거죠.


연동하면 할 수 있는 건 크게 다섯 가지입니다.


· 시세·시장 정보 : 국내·미국 주식 현재가, 일봉·분봉, 환율, 장 운영 시간

· 내 계좌·자산 : 계좌 목록, 보유 종목, 평가금액·손익

· 주문 : 매수·매도, 정정, 취소

· 조건주문 : 정해둔 가격에 도달하면 자동으로 매매

· 실시간 : 체결·호가·내 주문 소식을 실시간으로 받기


그래서 이런 걸 만들 수 있습니다.

이번 글 같은 주간 리포트, 가격 알림, 나만의 대시보드, 그리고 자동매매까지.

(자동매매는 제 멘탈이 아직 준비가 안 됐습니다)


이렇게 구축했습니다


1단계 : 토스증권 API 키 발급

 


일단, 토스증권 홈페이지에 방문해 API 키를 발급 받으세요.

발급하면 Client Id와 Client Secret 두 개가 나오는데, 

둘 다 있어야 API를 쓸 수 있습니다.


참고로 키는 발급일로부터 1년간 유효합니다.



그리고 허용 IP 관리에서 IP 추가를 눌러, 주로 쓰는 곳의 IP를 등록합니다.

저는 집 PC에서 돌릴 거라 집 공인 IP를 넣었습니다.

여기 등록 안 된 곳에서는 API가 막혀요.


토스증권 API 키는 토스증권 계좌가 있어야 발급받을 수 있습니다.

토스증권을 안 쓰신다면 한국투자증권이나 키움증권에서도 API 키를 발급받을 수 있어요.

구조는 비슷하니, 증권사만 바꿔서 같은 자동화를 만들어 보셔도 됩니다.


2단계 : 연결 작업


키 발급을 완료했다면 이제 연결 작업을 해야 합니다.


① 파이썬 확인


주식 종목 분석은은 파이썬으로 돌아가고, 맥은 기본으로 들어 있습니다. 

터미널에 이렇게 쳐보세요.


"python3 --version"


3.9 버전 이상이면 OK입니다.



② .env에 키 넣기


.env는 키와 비밀번호만 따로 넣어두는 금고 파일입니다.

이 파일은 Claude한테 만들어 달라고 했습니다.


"토스 API 키랑 네이버 메일 정보 넣을 .env 파일 만들어줘. 값은 내가 직접 넣을게"


그러면 빈칸만 있는 파일이 생깁니다.

TOSS_CLIENT_ID=

TOSS_CLIENT_SECRET=

NAVER_ID=

NAVER_MAIL_PASSWORD=

MAIL_TO=


네이버 아이디는 @naver.com를 빼고 넣고 

비밀번호는 로그인 비밀번호가 아니라 애플리케이션 비밀번호입니다.

MAIL_TO를 비워두면 본인 메일로 옵니다.


③ 연결 테스트


토스증권 연결이 제대로 됐는지 체크해야 하는데

터미널에 이렇게 쳐보세요.


"python3 check.py"

성공하면 아래 예시처럼 나오게 됩니다.


✔ 토큰·계좌 조회 성공 — 계좌 1개

  · BROKERAGE ****1234 (accountSeq)

✔ 보유 종목 (****1234) — 1종목

  - QQQ (QQQ) 0주 $0  손익 +0%  오늘 +0.%

✔ 환율 USD/KRW 1360.0


3단계 : 클로드 앱 예약 작업


연결 작업을 마쳤다면 이제 매주 발송을 위한 예약 작업을 하면 되는데

클로드에게 딱 한마디만 하세요.


"지금까지 내용 바탕으로 토요일 아침 9시마다 네이버 메일이 오도록 예약 작업으로 만들어"



그러면 클로드가 알아서 예약 작업을 만들어 줍니다.


여기서 하나 챙겨야 할 게 있습니다.

원인 분석을 하려면 Claude가 웹 검색을 하는데, 그때마다 허용할지를 물어봅니다.





거부 / 항상 허용 / 한 번만 허용, 세 가지 중에 고르는 창인데요.

"한 번만 허용"을 누르면 다음 실행 때 또 물어봅니다.

토요일 아침에 제가 자고 있으면 클로드 혼자 허락을 기다리다 끝나는 거죠.


그래서 매주 알아서 돌게 하려면 "항상 허용"을 눌러두는 게 좋습니다.


4단계 : 최종 확인


모든 세팅을 완료한 다음에는 클로드에게 모든 작업이 완료 됐는지 

테스트를 해달라고 요청해보세요.



클로드가 완료라고 메시지 주고 메일까지 왔다면 '최종 완료'.


 참고로 클로드 앱이 켜져 있어야 실행됩니다.

꺼져 있었으면 다음에 앱을 켤 때 발송이 진행됩니다.

토요일 아침 9시 정각에 받고 싶다면 PC는 켜 두셔야 해요.



이런 문제도 있었습니다

 


이 글의 본론은 여기입니다.

토스 증권 API 발급과 클로드 코드 연동까지는 쉬운데

리포트 자동 발송에서 막힐 가능성이 높거든요.


저도 처음에 메일이 오지 않았습니다.

연동 완료했는데 네이버가 로그인을 거절하면서 메일이 안 나가더라구요.

마치 배민 주문했는데 배달 기사님이 문 앞에서 돌아간 상황인거죠.


원인은 네이버 메일의 SMTP 사용 설정이 꺼져 있던 것이었습니다.

이게 꺼져 있으면 비밀번호가 맞아도 똑같이 발송 오류가 납니다.


해결은 간단했습니다.



네이버 메일 → 왼쪽 아래 환경설정 → POP3/IMAP 설정

→ IMAP/SMTP 설정 탭에서 "IMAP/SMTP 사용"을 사용함으로 변경 → 저장



설정을 켜고 다시 돌리니 리포트가 메일로 도착했습니다.



external_image


정리하면 이렇습니다.

수익률만 보면 된다 → 증권 앱 확인

왜 움직였는지도 궁금하다 → 자동화 구축

어차피 장기투자다 → 그냥 잔다