주가 변동성 알림 자동화 깃허브 액션으로 삼성전자 비정상 신호 이메일 받기
매번 반복적으로 확인하는 대신 이를 자동화하는 시스템을 만들면, 시간도 절약하고 신경 써야 할 것을 줄일 수 있다. 그래서 저는 2026년 삼성전자 주가 변동성 알림 자동화 이메일 작업을 구축했습니다. 깃허브(GitHub Action)을 이용했습니다. 그 전 과정 이제 보여드리겠습니다.
[포스팅 핵심 내용 요약]
- 핵심 키워드: 주가 변동성 알림 자동화, 깃허브 액션(GitHub Actions), 파이썬 이메일 전송, 구글 앱 비밀번호 설정, 서버리스 자동화.
- 기술적 요약:
- 데이터 파이프라인:
yfinanceAPI로 수집된 삼성전자 주가 데이터를 파이썬으로 분석 후smtplib를 통해 이메일 발송. - 동적 알림: 분석 결과(정상/비정상)에 따라 이메일 제목에 자동으로 상태 태그(
[안정적],[비정상]) 부여. - 무인 실행: GitHub Actions의
schedule이벤트(Cron)를 활용하여 서버 비용 없이 정기적 작업 수행. - 보안 강화: Gmail 앱 비밀번호를 GitHub
Repository Secrets에 저장하여 소스 코드 내 민감 정보 유출 차단.
주가 변동성 알림 자동화, 정말 편합니다.
지난 포스팅에서 삼성전자 주가 변동률이 정상 또는 비정상으로 알아볼 수 있는 데이터 분석 및 과정에 대해서 알아보았다. 하지만, 나는 매번 이것을 내가 실행하면서 확인하기는 싫었다.
자동으로 주가 변동성 알림이 내 이메일로 오게 할 순 없을까?
나는 예전에 구글 안티그래비티와 깃허브 액션을 통해서 삼성전자 전일 주가 및 관련 최신 뉴스 요약을 받아볼 수 있게 자동화 구축을 한 적이 있다.
그래서 같은 작업을 시도했고, 굳이 구글 안티그래비티 사용 없이도 할 수 있다는 것을 알게 되었다.
깃허브 액션 자동화 핵심
우리가 현재 가지고 있는 것에 생각해 보자. 이미 데이터를 가져오고 어떻게 분석하는 지에 대한 파이썬 파일(.py)은 가지고 있다. 이 내용을 잘 모르시는 분들은 반드시 나의 전 포스팅을 읽어 보시기 바란다. 크게 2가지만 더하면 된다
- 이메일 작성 및 Sending에 대한 코드 첨가 (원하는 것)
- 깃허브 액션 기능을 통해서 자동으로 특정 시간에 이메일이 발생하게 하는 지시서 만들기 (자동화를 지시하는 것)
2개 다 AI를 통해서 만들어 달라고 하면 된다. 혹시 프롬프트가 필요한 부분을 위해 아래 txt 파일을 다운로드해서 활용하시기 바란다.
1) 이메일 작성 및 Sending에 대한 코드 첨가
기존 파이썬 코드에서 그 결과를 이메일에 넣고 본인의 이메일로 보내는 것에 대한 내용을 첨부하면 된다.
이메일 자동화를 쉽게 얘기해 주면, 나 대신 누군가가 그 작업을 해주는 것이다. 이 프로젝트의 경우 내 이메일에서 내 이메일로 그 결과 값을 보내는 것이다. 참고로는 나는 구글 지메일을 이용했다.
그런데, 생각해 보면 나 대신 누군가가 내 이메일로 나에게 보내기 위해서는 내 계정 아이디와 비밀번호를 알아야 로그인해서 이메일을 보낼 수 있다.
내가 사용하고 있는 계정 아이디와 비밀번호를 파이썬 코드로 만든 로봇에게 알려줘서 자유롭게 로그인할 수 있게 해주면 좋겠지만, 구글은 이런 식의 접근을 해킹의 위험으로 간주하기 때문에 이렇게는 할 수 없다.
그리고 다시 2단계 인증으로 들어가서, 앱 비밀번호에 들어가서 앱 이름과 비번을 받으면 된다. 받은 비번은 메모장에 복사 붙여넣기 하여 나중에 쉽게 사용할 수 있게 하는 것이 좋다.
이 작업을 하면, 파이썬 코드 로봇이 내 계정으로 들어갈 때, 비번을 가지고 있기 때문에 구글이 이를 허락해 준다.
그리고 나는 이 작업의 핵심인 주가 변동률이 정상인지 비정상인지 파악하기 위해서 이므로, 이메일 제목에 그 결과를 바로 인식할 수 있게 정상 또는 비정상 이라는 문구가 들어가게 해달라는 내용도 넣었다.
결과 값이 정상일 경우 그럼, 굳이 이메일 본문을 읽을 필요 조차 없다. AI가 이메일 내용을 첨부한 코드를 완성하면, 메모장에 모든 파일 형식으로 저장하면 된다.
2) 자동으로 특정 시간에 이메일이 발생하게 하는 지시서 만들기
파이썬 코드로 결과를 이메일에 작성하고, 원하는 이메일 주소로 보내는 것 까지는 했다.
작업지시서(.yml)은 특정 시간에 그 파일이 실행되게 하는 내용이다. 이 작업이 없으면 결과를 아무리 구해도, 우리가 이메일을 받아볼 수가 없기 때문이다.
AI를 통해서 작업지시서를 만들고, 이를 메모장에 복사 붙여넣기 해서 모든 파일로 저장하면 된다.
3) 깃허브(GitHub)에 업로드할 파일 폴더 만들기
필요한 파일은 모두 갖췄다. 깃허브(GitHub)가 파일을 인식하기 위해서는 파일 폴더명도 정확해야 한다.
- 바탕화면에서 일단 폴더(임의 이름, 예시 samsung stock) 만든다
- 그 폴더 안에 새로운 폴더 .github 만든다.
- 그 폴더 안에 새로운 폴더 workflows 만든다
- 그 폴더 안에 만든 .py와 .yml 파일 2개를 집어 넣는다.
4) 깃허브에서 새로운 Repository 만들기
위의 만든 폴더 자체를 업로드하기 위해서 새로운 Repository를 만들어야 한다. 쉽게 말해 프로젝트 저장소라고 생각하면 된다.
깃허브에서 초록색 New 버튼을 누르고 Create Repository를 선택하면 된다. 이름은 임의로 만들되, 예를 들어samsung_stock 단어 사이에 _를 이용하기를 바란다. 이름만 작성하고, 생성하면 된다. 다른 것은 신경쓰지 마세요.
잘 모르시겠다면, 깃허브 Repository 만들기 포스팅을 참고하시기 바랍니다. 새 Repo를 만들었다면, 거기 안에 들어가서 바탕화면에 있는 폴더 자체를 업로드하시기 바란다. (파일이 아니고, 꼭 폴더 자체 여야 한다)
5) 파이썬 로봇에 이메일 작업을 하기 위해 비번 등록해 놓기
위에서 만든 Repository에 들어간다. 그리고 아래 순서로 클릭해서 들어간다.
- 상단 메뉴 Settings
- 왼쪽 메뉴 Secrets & variables – Actions
- New repository secret: Name – GMAIL_ADDRESS, 내용 – 발신 이메일 주소 – 저장
- New repository secret: Name – GMAIL_APP_PW, 내용 – 비번(16자리)- 저장
- New repository secret: Name – RECEIVER_EMAIL, 내용 – 수신 이메일 주소 – 저장
메모장에 저장해 둔 비번을 여기에 넣는다. 이 작업은 파이썬의 로봇이 내 구글 계정에 접속하기 위해 필요한 이메일과 비번을 등록하는 작업이다. 로봇이 이 정보를 가지고 내 이메일로 내 이메일로 결과를 보내는 것이다.
6) 이 프로젝트가 잘 작동하는 지 테스트하기
다시 Repo로 돌아와서 Actions 메뉴를 선택한다. 그리고 다시 왼쪽 메뉴 All workflows 아래 본인이 작성한 프로젝트 이름을 선택하면 위와 같은 화면이 나온다.
왼쪽에 Run workflow 라는 화살표와 함께 있는 버튼이 보이는 클릭 후 Run workflow를 선택한다. 이것은 작동을 해보는 것이다. 그리고 얼마 후 관련 이메일을 받으면 제대로 작동을 하는 것이다.
이 작업은 꼭 안해도 되는 작업이지만, 설정해 놓은 프로젝트가 잘 작동하는 지 체크하는 것이다. 물론 다음날 확인이 가능하지만, 이렇게 하면 하루라는 소중한 시간을 지체할 필요가 없다.
만약, 오류가 날 경우에는 AI에게 오류에 설명하면, 그에 대한 해결책을 제시해 주니 너무 걱정하지 않아도 된다.
왜 GitHub가 필요하나?
나는 컴퓨터를 사용할 때도 있고, 끌 때도 있다. 나는 잠을 잘 때도 있고, 깨어 있을 수도 있다. 깃허브를 사용하지 않으면 내가 컴퓨터를 켜고, 이 작업을 수행해야 한다.
하지만 위의 모든 작업 설정을 통해서, GitHub 서버가 24시간 시계를 보고 있다가, 특정 시간이 되면 그 때 만든 Repository(저장소)의 .github/workflows/임의 이름.yml 파일(작업지시서)을 읽게 된다.
“아, 지금 samsung_stock.py 실행하라고 하네” 하면서, GitHub 서버 안에 가상 컴퓨터를 만들고 Python 및 패키지 설치 후 코드 실행한다.
코드가 실행되면, 이메일이 나에게 발송되고, 서버 내에 만들었던 가상 컴퓨터는 삭제가 된다. 매일 이 작업이 반복이 되는 것이다. 이것이 주가 변동성 알림 자동화 이메일의 모든 과정이다.
[사용자를 위한 Q&A]
- Q1: 왜 내 개인 구글 비밀번호로 이메일 발송이 안 되나요?
- A: 구글은 보안상 외부 스크립트의 직접 로그인을 차단합니다. 따라서 ‘2단계 인증’ 후 ‘앱 비밀번호’를 별도로 발급받아 사용해야 파이썬 로봇이 안전하게 접속할 수 있습니다.
- Q2: 깃허브 액션을 사용하면 내 컴퓨터를 꺼두어도 괜찮나요?
- A: 네, 깃허브 서버(가상 컴퓨터)에서 코드가 실행되므로 본인의 컴퓨터 상태와 상관없이 정해진 시간에 자동 실행됩니다.
- Q3: 분석 결과가 ‘비정상’일 때만 메일을 받을 수 있나요?
- A: 파이썬 코드 내 조건문(if)을 수정하여 특정 조건(비정상)일 때만
send_email함수가 호출되도록 설정하면 가능합니다.
마무리
오늘은 삼성전자 주가 변동성 알림 자동화 이메일에 대해서 이야기해 봤다. 이 과정이 나는 두번째인데, 이 프로젝트로 통해서 작동원리를 더 잘 이해할 수 있게 되었다.
특히 항상 데이터 분석을 CSV 파일 형식으로 가져와서 분석을 해 왔던 나에게 API를 이용해서 이런 식으로도 분석을 할 수 있구나 라는 생각이 들었다.
이번 프로젝트는 특히 주식에 관심이 많으신 분들이 잘 활용하셨음 한다.




