https://link.coupang.com/a/ceBgWU
쿠팡이 추천하는 노트북 관련 혜택과 특가
쿠팡이 추천하는 노트북 특가를 만나보세요. 로켓와우 회원은 다양한 할인과 무료 배송 및 반품 혜택도 누릴 수 있어요.
www.coupang.com
1️⃣ 디스코드 & 카카오톡 & 이메일 알림 추가
📌 목적:
- 텔레그램 외에도 다양한 플랫폼에서 알람을 받을 수 있도록 확장
- 사용자가 선호하는 플랫폼에서 실시간으로 신규 공시 확인 가능
📌 구현 방법:
✅ 디스코드(Discord) 알림 추가
- Webhook을 이용하여 디스코드 채널에 메시지 전송
- requests 라이브러리를 사용하여 POST 요청을 보내면 됨.
- 예제 코드:
- python
- import requests
DISCORD_WEBHOOK_URL = "YOUR_DISCORD_WEBHOOK_URL"
def send_discord_alert(message):
data = {"content": message}
requests.post(DISCORD_WEBHOOK_URL, json=data)
✅ 카카오톡 알림 추가
- 카카오톡 메시지 API를 활용하여 알림 메시지 전송
- 카카오 개발자 계정 등록 후, REST API 키 발급 필요
- access_token을 이용해 메시지를 보낼 수 있음.
- 예제 코드:
- python
- import requests
KAKAO_TOKEN = "YOUR_ACCESS_TOKEN"
def send_kakao_alert(message):
url = "https://kapi.kakao.com/v2/api/talk/memo/default/send"
headers = {"Authorization": f"Bearer {KAKAO_TOKEN}"}
data = {
"template_object": json.dumps({"object_type": "text", "text": message, "link": {"web_url": "https://upbit.com"}})
}
requests.post(url, headers=headers, data=data)
✅ 이메일 알림 추가
- SMTP 서버를 이용하여 이메일로 공시 알림 전송
- smtplib 라이브러리를 사용
- 예제 코드:
- python
- import smtplib
from email.mime.text import MIMEText
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
EMAIL_SENDER = "your_email@gmail.com"
EMAIL_PASSWORD = "your_email_password"
EMAIL_RECEIVER = "receiver_email@gmail.com"
def send_email_alert(subject, message):
msg = MIMEText(message)
msg["Subject"] = subject
msg["From"] = EMAIL_SENDER
msg["To"] = EMAIL_RECEIVER
server = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
server.starttls()
server.login(EMAIL_SENDER, EMAIL_PASSWORD)
server.sendmail(EMAIL_SENDER, EMAIL_RECEIVER, msg.as_string())
server.quit()
📌 필요 기술:
- requests (디스코드, 카카오톡 API)
- smtplib (이메일 전송)
- 웹훅(Webhook) 활용
2️⃣ MySQL DB에 저장하여 기록 관리
📌 목적:
- 공시 데이터 기록을 저장하여 이전 공시와 비교 가능
- 로그 및 히스토리 관리 → 언제 어떤 공시가 나왔는지 분석 가능
📌 구현 방법:
✅ MySQL 테이블 생성
CREATE DATABASE notice_alert;
USE notice_alert;
CREATE TABLE notices (
id INT AUTO_INCREMENT PRIMARY KEY,
source VARCHAR(50), -- (업비트, 빗썸, 코인원 등)
title TEXT,
link TEXT,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
✅ 파이썬에서 MySQL에 데이터 저장
- mysql-connector-python 라이브러리 사용
- 새로운 공시가 감지되면 데이터베이스에 저장
- 예제 코드:
- python
- import mysql.connector
def save_notice(source, title, link):
conn = mysql.connector.connect(host="localhost", user="root", password="password", database="notice_alert")
cursor = conn.cursor()
sql = "INSERT INTO notices (source, title, link) VALUES (%s, %s, %s)"
cursor.execute(sql, (source, title, link))
conn.commit()
conn.close()
📌 필요 기술:
- MySQL 설치 및 설정
- mysql-connector-python 라이브러리 활용
- 공시 데이터 저장 및 조회 로직 추가
3️⃣ 더 많은 거래소(코인원, 코빗 등) 지원
📌 목적:
- 업비트 & 빗썸 외에도 코인원, 코빗, 바이낸스 등 거래소의 공시 정보를 추가 감지
- 다양한 거래소의 신규 상장 정보를 빠르게 확보
📌 구현 방법:
✅ 코인원 공시 크롤링 (예시)
python
COINONE_NOTICE_URL = "https://coinone.co.kr/notice/"
def get_coinone_latest_notice():
response = requests.get(COINONE_NOTICE_URL)
soup = BeautifulSoup(response.text, "html.parser")
latest_notice = soup.select_one(".notice-list a")
if latest_notice:
title = latest_notice.text.strip()
link = "https://coinone.co.kr" + latest_notice["href"]
print(f"[코인원] {title} → {link}")
✅ 추가 거래소 리스트
- 코인원 (Coinone): https://coinone.co.kr/notice/
- 코빗 (Korbit): https://blog.korbit.co.kr/
- 바이낸스 (Binance): https://www.binance.com/en/support/announcement
📌 필요 기술:
- BeautifulSoup을 활용한 웹 크롤링
- 다양한 거래소 API 활용
4️⃣ 크론탭을 이용해 주기적으로 실행 (서버 환경일 경우)
📌 목적:
- 프로그램을 자동 실행하여 지속적으로 공시 감지
- 수동 실행 없이 서버에서 주기적으로 실행
📌 구현 방법:
✅ 크론탭 설정 (리눅스 환경)
- 터미널에서 크론탭 편집
- bash
- crontab -e
- 매 1분마다 실행하도록 설정
- bash
- * * * * * /usr/bin/python3 /home/user/notice_alert.py
📌 필요 기술:
- Linux cron 스케줄러
- 백그라운드 실행 (nohup 또는 systemd 활용)
5️⃣ UI 추가 (웹 대시보드 형태로 모니터링)
📌 목적:
- 웹 대시보드를 만들어 공시 정보를 시각적으로 확인
- 신규 공시 발생 시 알람을 웹사이트에서 실시간 확인
📌 구현 방법:
✅ Flask를 활용한 간단한 대시보드
python
from flask import Flask, render_template
import mysql.connector
app = Flask(__name__)
@app.route("/")
def home():
conn = mysql.connector.connect(host="localhost", user="root", password="password", database="notice_alert")
cursor = conn.cursor()
cursor.execute("SELECT * FROM notices ORDER BY timestamp DESC LIMIT 10")
notices = cursor.fetchall()
conn.close()
return render_template("index.html", notices=notices)
if __name__ == "__main__":
app.run(debug=True)
✅ HTML 대시보드 예제 (templates/index.html)
html
<!DOCTYPE html>
<html>
<head><title>Crypto Notice Alerts</title></head>
<body>
<h1>🚀 신규 공시 리스트</h1>
<ul>
{% for notice in notices %}
<li>📢 {{ notice[1] }} - <a href="{{ notice[2] }}">{{ notice[2] }}</a></li>
{% endfor %}
</ul>
</body>
</html>
📌 필요 기술:
- Flask + HTML/CSS 활용
- MySQL 데이터 연동
📌 결론
💡 위 기능을 하나씩 추가하면 더 강력한 실시간 신규 상장 공시 알림 시스템이 완성됩니다!