Codex Telegram으로 당근 매물 알림봇 만들기

새로고침을 줄이고 바로 받는 쪽이 낫습니다
당근에서 닌텐도 스위치 2나 아이패드 미니 같은 물건을 기다릴 때 제일 귀찮은 건 결국 새로고침입니다. 밥 먹는 사이에 괜찮은 매물이 지나가면 다시 찾는 데 시간이 더 들어가죠. 그래서 이번 글은 당근 키워드 알림봇을 만드는 흐름으로 갑니다. 새 글 제목, 가격, 링크만 Telegram으로 바로 보내고, 같은 글은 다시 보내지 않게 잡는 방식입니다. 대시보드부터 크게 벌이지 않고 오늘 바로 손댈 수 있는 첫 버전에만 집중하겠습니다.
준비물은 Codex와 규칙 메모 한 장이면 충분합니다
이번 작업에서 중심은 AGENTS.md, codex exec, --output-schema 세 가지입니다. AGENTS.md에는 파일 범위와 알림 문구 규칙을 먼저 적어두고, codex exec로 필요한 파일을 만든 뒤, --output-schema로 조건 JSON 모양을 흔들리지 않게 고정하는 식입니다. 여기에 Telegram 봇 토큰과 chat id만 준비하면 첫 흐름은 끝까지 이어집니다. BotFather에서 봇을 만든 뒤 토큰을 받아두고, 메시지를 받을 대화방의 chat id를 챙기면 출발선은 맞춰집니다.
5분 안에 첫 구조를 잡는 순서
이 프롬프트를 먼저 쓰는 이유는 뒤에서 파일 수가 갑자기 늘어나는 걸 막기 위해서입니다. 알림 문구도 처음에 짧게 못 박아두면 나중에 메시지가 길어지지 않습니다. 터미널에서는 codex exec "위 프롬프트"처럼 시작하면 됩니다. 한 번 기준이 정리되면 이후 수정 포인트가 훨씬 단순해집니다.
검색 URL과 가격 조건은 글자 하나만 달라도 엉뚱한 알림으로 이어질 수 있습니다. 그래서 watchlist를 먼저 고정해두는 편이 낫습니다. codex exec --output-schema watchlist.schema.json "위 프롬프트" > watchlist.json처럼 두면 JSON 모양이 흔들리지 않습니다. 초보 입장에서는 파일을 열어 값만 바꾸면 되니 진입 장벽도 낮습니다.
토큰을 붙이기 전에 콘솔 흐름이 먼저 보여야 손볼 곳이 분명해집니다. python bot.py --demo로 가짜 매물 3개 중 조건에 맞는 항목만 걸러보는 단계가 있으면, 검색 조건 읽기와 중복 방지와 필터링이 어디서 엇나가는지 바로 보입니다. 여기까지 오면 이 알림 봇의 뼈대는 거의 다 나온 셈입니다.
초보가 가장 많이 헷갈리는 지점은 토큰과 selector입니다. 그래서 환경 변수 이름을 두 개로 줄이고, HTML 구조가 달라졌을 때 어디를 먼저 봐야 하는지 주석 한 줄로 남겨두는 편이 좋습니다. 메시지도 길게 설명하지 말고 제목, 가격, 링크만 보이게 두는 쪽이 낫습니다. 폰에서 알림을 열었을 때 바로 판단할 수 있어야 하기 때문입니다.
마지막 단계는 기능을 더 붙이는 시간이 아니라 나중에 다시 열었을 때 덜 헤매게 만드는 시간입니다. 초보가 건드릴 파일은 watchlist.json 하나로 남기고, 실행 순서는 README.txt 한 장으로 끝내면 관리 포인트가 확 줄어듭니다. 봇을 오래 안 열어봤다가 다시 만져도 금방 감이 돌아오는 구조가 여기서 만들어집니다.
대개 여기서 걸립니다
검색 URL은 맞는데 결과가 비어 보이는 경우가 있습니다. 이런 때는 페이지가 JavaScript로 늦게 그려지거나, 선택자가 카드 바깥을 보고 있을 가능성이 큽니다. 브라우저에서 같은 URL을 열고 카드 제목이 실제로 어떤 class를 쓰는지 먼저 확인한 뒤, 필요하면 Codex에게 requests 버전 대신 Playwright 한 파일 버전으로 바꿔달라고 시키면 됩니다.
Telegram 메시지가 안 오는데 원인이 바로 안 보이는 경우도 많습니다. 이때는 토큰 오타나 chat id가 다른 대화방으로 잡힌 상황을 먼저 의심하면 됩니다. 봇에게 아무 말이나 보낸 뒤 getUpdates로 현재 chat id를 확인하는 짧은 함수를 추가해달라고 요청하면 흐름이 꽤 빨리 정리됩니다.
같은 매물이 계속 다시 오는 문제는 보통 seen.json에 제목만 저장해서 생깁니다. 제목은 같아도 가격이 바뀌거나 문구가 조금 달라지면 새 글처럼 보일 수 있습니다. 그래서 링크의 고유 id나 글 URL 전체를 기준으로 저장하는 쪽이 더 안전합니다.
20개 평균가 한 줄이 붙으면 판단이 빨라집니다
여기서 한 단계만 더 가면 단순 알림이 아니라 바로 판단하는 도구가 됩니다. 같은 키워드로 최근 20개 가격 평균을 같이 보내게 만들면, 알림을 받는 순간 지금 올라온 가격이 높은지 낮은지 읽을 수 있습니다. 다만 처음 만드는 당근 키워드 알림봇이라면 이 기능까지 한 번에 넣기보다, 알림이 오고 중복이 막히는 기본 구조를 먼저 고정하는 편이 훨씬 덜 헷갈립니다.
이런 글도 있어요
관련 검색어
- 🔍 Codex 사용법
- 🔍 Codex 비교
- 🔍 당근 키워드 알림봇 사용법
- 🔍 당근 키워드 알림봇 비교
- 🔍 Telegram 사용법
- 🔍 Telegram 비교