프로그램을 텔레그램으로 조작하기로 한 이유
매매 프로그램은 집 PC에서 돌아야 하는데, 저는 낮에 그 앞에 없습니다. 폰에서 조작할 방법이 필요했고, 화면을 새로 만드는 대신 이미 폰에 있는 것을 쓰기로 했습니다.
대시보드와 매매 봇은 성격이 다릅니다.
대시보드는 보는 것입니다. 화면을 띄워놓고 눈으로 확인하면 끝입니다. 봇은 시키는 것입니다. 켜고, 끄고, 상태를 묻고, 설정을 바꿔야 합니다.
이 차이가 만든 문제가 하나 있었습니다.
프로그램은 집에 있고 저는 회사에 있습니다
매매 프로그램은 계속 켜져 있어야 합니다. 장이 열려 있는 동안 시세를 받고 조건을 확인해야 하니까요. 그래서 집 PC에서 돌립니다.
그런데 낮에 저는 그 앞에 없습니다.
대시보드는 이 문제가 없었습니다. 보기만 하면 되니까 폰으로 주소만 열면 됐습니다. 봇은 다릅니다. “지금 멈춰라”, “상태 알려줘” 같은 걸 밖에서 전달할 방법이 필요했습니다.
선택지가 세 개 있었습니다
- 프로그램은 집 PC에서 계속 돌아야 한다 장중 내내 시세를 받아야 하므로 껐다 켤 수 없다
- 그런데 나는 낮에 그 앞에 없다 밖에서 켜고 끄고 물어볼 수단이 필요하다
- 폰 앱이나 웹 화면을 새로 만든다? 화면 설계, 로그인, 보안을 전부 내가 만들어야 한다
- 이미 폰에 깔려 있는 것을 쓴다 텔레그램에는 로그인·알림·암호화가 이미 다 들어 있다
3번을 골랐다면 일이 훨씬 커졌을 겁니다. 조작 화면을 만들려면 버튼을 배치하고, 아무나 못 들어오게 로그인을 붙이고, 밖에서 접속되게 열어두면서도 안전하게 만들어야 합니다. 그 셋 다 제가 잘 모르는 영역입니다.
텔레그램은 그게 전부 이미 돼 있습니다. 제 계정으로 로그인돼 있고, 대화 내용은 암호화되고, 메시지가 오면 알림이 뜹니다. 제가 만들 게 아니라 쓰면 되는 것이었습니다.
그리고 결정적으로, 텔레그램은 이미 제 폰에 깔려 있었습니다.
명령어가 스무 개가 넘었습니다
처음에는 켜고 끄는 것만 있으면 될 줄 알았습니다. 지금 세어보니 명령어 파일이 스무 개가 넘습니다.
| 무엇을 하는가 | 명령 |
|---|---|
| 켜고 끄기 | 시작 · 정지 |
| 상태 확인 | 순위 · 조회 · 보고서 · 차트 |
| 주문 관리 | 예약 · 미체결 취소 |
| 설정 변경 | 각종 설정값 |
| 도움말 | 도움말 |
하나씩 필요해질 때마다 붙였습니다. “이것도 밖에서 되면 좋겠는데”가 스무 번쯤 있었던 셈입니다.
이게 텔레그램을 고른 방식의 좋은 점이었습니다. 화면을 만들었다면 명령을 하나 추가할 때마다 버튼을 어디에 놓을지 고민해야 합니다. 텔레그램은 글자를 하나 더 알아듣게만 하면 됩니다. 배치할 자리가 없으니 고민할 것도 없습니다.
대신 이런 게 생겼습니다
도움말이 719줄이 됐습니다.
버튼이 없다는 건 뭘 칠 수 있는지 화면에 안 보인다는 뜻입니다. 그래서 도움말이 유일한 안내판이 됐고, 명령이 늘어날 때마다 같이 불어났습니다. 제가 만든 프로그램인데 제가 명령어를 까먹어서 도움말을 열어보는 일이 생겼습니다.
이 이야기는 따로 적겠습니다.
남은 교훈
- 보는 것과 시키는 것은 다른 문제입니다. 대시보드에서는 없던 고민이 봇에서 전부 생겼습니다.
- 이미 있는 걸 쓰면 안 만들어도 되는 게 많습니다. 로그인·보안·알림은 제가 잘 모르는 영역인데, 통째로 건너뛰었습니다.
- 비개발자에게는 “만들지 않기로 하는 결정”이 특히 중요합니다. 만들 수 있는 것과 유지할 수 있는 것은 다릅니다. 제가 만든 로그인은 제가 고쳐야 합니다.
- 입구가 편하면 기능이 계속 늘어납니다. 좋은 일이기도 하고, 도움말이 719줄이 되는 이유이기도 합니다.
이 프로그램은 파이썬 파일 74개, 약 1만 3천 줄입니다. 그중 제가 이해하고 있는 건 여전히 일부입니다. 다만 어떤 구조로 만들지를 정하는 일은 코드를 몰라도 할 수 있었고, 이 글의 결정이 그런 경우였습니다.
이 글은 개인 프로젝트의 개발 기록입니다. 투자 자문이나 종목 추천이 아니며, 글에 등장하는 종목명은 프로그램의 동작을 설명하기 위한 예시입니다. 투자 판단과 그 결과에 대한 책임은 투자자 본인에게 있습니다.