공고 알림봇 만들기 (7편) — 텔레그램 봇 인라인 키보드로 버튼을 달았습니다
결론부터: 텔레그램 알림에 링크를 넣을 때 본문에 URL을 쓰지 말고 인라인 키보드 버튼으로 분리하세요. 메시지가 깔끔해지고, 폰에서 누르기도 훨씬 쉽습니다.
6편까지 오면서 알림은 정확해졌어요. 올 것만 오고, 중복도 안 오죠. 그런데 막상 폰으로 받아보니 읽기가 불편했습니다.
지난 편 → 6편 — 한 공고가 일곱 번 올 뻔했습니다
처음엔 본문에 링크를 넣었어요
초기 알림은 이런 모양이었습니다.
[lh] 의정부지역 10년 공공임대주택 예비입주자모집 공고 [상세 보기](https://apply.lh.or.kr/lhapply/apply/wt/wrtanc/...) 기관: LH | 기간: 2026-08-11 ~ 2026-08-12
제목 아래에 마크다운 링크를 한 줄 끼워 넣은 거죠. 동작은 합니다. 누르면 열려요.
그런데 하루에 수십 건씩 받다 보니 문제가 보였습니다.
불편했던 세 가지
① 링크가 본문에 섞여서 눈이 피곤해요. 제목·기관·기간 사이에 파란 글씨가 끼어 있으면 정작 중요한 공고명이 안 읽힙니다. 알림이 한두 개일 땐 몰랐는데 목록이 길어지니 확 체감되더라고요.
② 누르기가 어려워요. 본문 링크는 글자 크기만 한 영역이라 폰에서 정확히 눌러야 합니다. 스크롤하다가 잘못 누르거나, 눌린 줄 알았는데 안 눌리는 일이 잦았어요.
③ 링크 미리보기가 끼어들어요. 텔레그램은 본문에 URL이 있으면 그 페이지 미리보기를 붙이려고 합니다. 공공기관 사이트는 미리보기가 예쁘게 나오지 않아서, 메시지만 길어지고 정작 정보는 밀려났어요.
인라인 키보드로 옮겼습니다
텔레그램에는 메시지 아래에 버튼을 붙이는 기능이 있어요. 인라인 키보드라고 부릅니다.
메시지를 보낼 때 이런 걸 같이 넘겨주면 됩니다.
"reply_markup": {
"inline_keyboard": [[ {"text": "상세 보기 →", "url": 공고주소} ]]
}
그러면 본문 밑에 누를 수 있는 버튼이 하나 생깁니다. 바뀐 알림은 이런 모양이에요.
[lh] 의정부지역 10년 공공임대주택 예비입주자모집 공고 기관: LH | 기간: 2026-08-11 ~ 2026-08-12 ┌─────────────┐ │ 상세 보기 → │ ← 버튼 └─────────────┘
바뀐 점을 정리하면 이렇습니다.
| 본문 링크 | 인라인 버튼 | |
|---|---|---|
| 본문 | 링크가 섞임 | 정보만 남음 |
| 누르는 영역 | 글자 크기 | 버튼 전체 |
| 링크 미리보기 | 끼어듦 | 안 생김 |
본문에서 URL을 빼는 게 핵심이었어요
여기서 놓치기 쉬운 게 있어요. 버튼만 추가하면 안 됩니다. 본문의 링크를 같이 지워야 해요.
안 그러면 링크가 두 개가 됩니다. 본문에 하나, 버튼에 하나. 미리보기도 그대로 붙고요. 문제가 하나도 안 풀립니다.
그래서 메시지를 만드는 쪽과 보내는 쪽을 나눴어요.
- 메시지 만드는 쪽: 제목·기관·지역·기간만 조립하고 URL은 아예 안 넣음
- 보내는 쪽: URL을 따로 받아서 버튼으로만 붙임
이렇게 나누니 부수 효과가 있었습니다. 나중에 텔레그램이 아닌 다른 알림 채널을 붙일 때, 메시지 본문은 그대로 쓰고 버튼 부분만 그 채널 방식으로 바꾸면 되거든요. 본문에 URL이 박혀 있었다면 채널마다 다시 짜야 했을 겁니다.
링크가 없는 공고는 어떻게 하나
3편에서 든든전세는 상세 주소를 안 준다고 했죠. 이런 건 버튼을 만들 수가 없습니다.
그래서 URL이 있을 때만 버튼을 붙이도록 했어요. 없으면 본문만 갑니다. 한 줄짜리 조건이지만 이게 없으면 빈 버튼이 생기거나 전송이 실패합니다.
대신 든든전세는 본문에 동 주소·면적·보증금을 실어서, 조회 페이지에 가서 바로 찾을 수 있게 했습니다.
뜻밖의 이득 — PC에서 이어보기
이건 만들고 나서 알았어요.
텔레그램은 폰과 PC가 같은 대화를 공유합니다. 그래서 밖에서 폰으로 알림을 받고, 집에 와서 PC 텔레그램을 켜면 그 알림이 그대로 있어요. 버튼을 누르면 PC 브라우저에서 공고 원문이 열립니다.
공고문은 표도 많고 첨부파일도 있어서 폰으로 보기 답답한데, 이 흐름 덕분에 별도 뷰어를 만들 필요가 없어졌습니다. 알림 채널로 텔레그램을 고른 게 여기서 한 번 더 값을 했어요.
정리 — 정확한 알림과 쓸 만한 알림은 다르다
6편까지는 "맞는 걸 보내는가" 를 다뤘어요. 이번 편은 "보낸 걸 쓸 수 있는가" 였습니다.
내용이 정확해도 누르기 불편하면 안 누르게 되고, 안 누르면 알림봇을 만든 의미가 없어집니다. 실제로 저는 본문 링크 시절에 알림을 훑기만 하고 넘긴 적이 많았어요.
바꾸는 데 든 코드는 스무 줄 남짓입니다. 기능을 더한 게 아니라 있던 걸 옮겼을 뿐인데 체감은 그 어떤 기능 추가보다 컸어요.
다음 편
이제 쓸 만해졌으니 끄지 않고 계속 돌리는 일이 남았습니다. PC를 켜면 알아서 뜨고, 설정만 바꿔도 반영되게 만든 이야기. → 8편 — 윈도우 작업 스케줄러로 파이썬 봇을 자동 실행했습니다
(이전 편: 6편 — 한 공고가 일곱 번 올 뻔했습니다)
댓글
댓글 쓰기