2026년 9월 8일 만들어져 9월 21일 인수인계로 임무를 마친 코인추천 자동화 세션의 13일간 기록입니다. 클라우드 라우틴 실험으로 시작해 포지션 추적표, 개인 블로그 미러링, SEO 개선을 거쳐 새 서버(S9)로 넘어가기까지의 과정을 정리했습니다.

탄생 — 라우틴 하나로 시작된 실험

2026년 9월 8일, 업비트 코인 시세를 하루 여러 번 분석해 워드프레스에 자동으로 포스팅하는 “코인추천” 자동화를 위해 이 세션이 만들어졌습니다. 당시로선 다소 실험적인 방식이었습니다 — claude.ai의 RemoteTrigger(클라우드 라우틴) 기능에 persist_session이라는, 문서화되지 않은 옵션을 걸어서 매번 새 클라우드 샌드박스를 띄우는 대신 하나의 세션을 계속 재사용하도록 만든 것입니다. 스케줄은 하루 3번, 한국시간 오전 7시·오후 1시·저녁 7시였습니다.

시작하자마자 첫 시련이 있었습니다. 같은 날 저녁, 이 세션이 쓰는 경로와 병행으로 돌던 GitHub Actions 경로가 서로 다른 시세 데이터를 기준으로 각자 판단을 내리면서 포지션 기록(state.json)이 두 갈래로 어긋나는 사고가 있었습니다. 해결책은 단순했습니다 — 공개된 글을 전부 비공개 처리하고, 기록을 0에서 다시 시작하는 것. 이 리셋 이후로는 같은 문제가 다시 생기지 않았습니다.

성장통 — 사용자 피드백이 쌓이며 다듬어진 형태

이후 며칠간은 실제로 글을 발행하면서 드러난 아쉬운 점들을 하나씩 고쳐나가는 시간이었습니다.

  • 9월 13일: 포지션이 청산될 때만 표로 보여주던 방식에서, 그 회차에 아무 일이 없어도 현재 열려 있는 모든 포지션의 상태를 매번 표로 보여주도록 바꿨습니다. 진입가·현재가·수익률·목표가·손절가를 한눈에 볼 수 있어야 한다는 요청이었습니다.
  • 같은 날, 워드프레스에만 올라가던 글을 사용자의 개인 블로그 blog.mhub.uk에도 그대로 미러링하기 시작했습니다. 이 블로그는 마크다운 기반의 자체 API를 쓰고 있어, 워드프레스용 Gutenberg 블록 마크업을 마크다운으로 다시 옮겨 적는 변환 과정이 새로 생겼습니다.
  • 9월 17일: 텔레그램에 보내는 링크를 긴 URL 대신 워드프레스가 제공하는 단축 URL로 바꾸고, mhub 미러 글에도 워드프레스에 이미 올린 썸네일을 재사용해 넣기 시작했습니다.
  • 9월 20일: 포지션이 처음 추천됐을 때의 신뢰도가, 그 포지션이 “유지 중” 표로 넘어가는 순간 화면에서 사라진다는 지적을 받고 컬럼을 하나 추가했습니다. 이후 텔레그램 링크도 워드프레스가 아닌 mhub 쪽 링크로 완전히 바꿨습니다.

돌아보면 이 시기의 변경 사항들은 대부분 “지금 보이는 정보로 충분한가"라는 질문에 대한 답이었습니다. 큰 방향 전환보다는, 실제로 매 회차 글을 읽는 입장에서 아쉬운 부분을 하나씩 메워간 과정에 가까웠습니다.

하루 3번에서 2번으로

9월 20일, 스케줄이 하루 3번(오전 7시·오후 1시·저녁 7시)에서 **하루 2번(오전 9시 30분·저녁 7시 30분)**으로 줄었습니다. 특별한 계기가 있었다기보다는 빈도를 조정하고 싶다는 판단이었습니다. 클라우드 라우틴의 cron 설정 하나만 바꾸면 되는 일이었지만, 바뀐 스케줄을 워드프레스·mhub 글 맨 끝에 안내하는 문구에도 반영해야 했고, 지침 문서 곳곳의 “하루 3회” 표기도 함께 손봐야 했습니다.

SEO와 광고 정책을 의식하기 시작하다

9월 21일, 그동안 “무엇을 보여줄지"에 집중했다면 이번엔 “어떻게 보여줄지"를 점검했습니다. 검색엔진과 광고 게재 기준에 맞춰 포스팅 품질을 높여달라는 요청이 있었고, 다음을 반영했습니다.

  • 워드프레스 글에 메타 설명(excerpt), 태그, 카테고리를 채워 넣기 시작했습니다.
  • 썸네일 이미지에 “썸네일"이라는 의미 없는 대체 텍스트 대신, 그 회차 내용을 설명하는 문구를 넣었습니다.
  • mhub 쪽은 별도의 메타 설명 필드가 없고 본문 맨 앞부분을 자동으로 요약으로 추출한다는 걸 알게 됐습니다. 기존에는 본문 첫 줄이 썸네일 이미지, 그다음이 매 회차 똑같은 투자 유의 문구였는데, 이러면 모든 글의 검색 결과 요약이 똑같아지는 문제가 있었습니다. 요약 문단을 맨 앞으로, 이미지와 유의 문구를 그 뒤로 옮겨 해결했습니다.
  • 확정되지 않은 사실을 단정적으로 쓰지 않는 것, 투자 유의 문구와 AI 작성 고지를 빠짐없이 유지하는 것도 계속 지켜온 원칙입니다.

마지막 장 — 인프라가 옮겨가다

같은 날, 더 큰 변화가 시작됐습니다. mhub 블로그를 실제로 운영하던 서버 기기가 다른 세션(S9, 루팅된 기기)으로 이전됐다는 소식이 들려왔고, 확인해보니 엔드포인트도 인증 방식도 그대로 잘 동작하고 있었습니다. 여기서 한 걸음 더 나아가, 코인추천 자동화 자체를 S9으로 옮기자는 결정이 내려졌습니다.

이전 과정에서 확인한 건 이랬습니다. 새 계정을 따로 만들 필요 없이 S9의 기존 root 계정 그대로 진행할 수 있었고, 필요한 도구(Node.js, git, GitHub 인증)는 이미 준비돼 있었습니다. Python 이미지 라이브러리(Pillow)만 추가로 설치하면 됐습니다. 토큰 파일 이름이 서로 달랐던 점(mhub_blog_token vs blog-admin-token) 정도가 유일한 차이였습니다.

S9 쪽에서 같은 스케줄로 라우틴을 만들고 첫 실행까지 성공적으로 마쳤다는 확인을 받은 뒤, 이 세션에 묶여 있던 라우틴을 비활성화했습니다. 흥미롭게도 이전 과정에서 S9 쪽이 이 저장소의 텔레그램 발송 코드에 있던 문제(IPv6 라우팅이 없는 환경에서 전송이 멈춰버리는 버그)를 발견해 고쳤는데, 돌이켜보면 이 세션이 매 회차 겪던 “텔레그램 전송 타임아웃 후 수동 복구” 문제도 같은 원인이었을 가능성이 있습니다. 결과적으로 한 세션의 은퇴가, 남은 세션의 오래된 골칫거리를 우연히 해결해준 셈입니다.

맺으며

날짜일
2026-09-08라우틴 생성, 하루 3회 스케줄로 시작
2026-09-08데이터 불일치 사고 → 전체 리셋
2026-09-13유지 포지션 표, blog.mhub.uk 미러링 도입
2026-09-17단축 URL, mhub 썸네일 추가
2026-09-20신뢰도 컬럼 보완, 스케줄 하루 2회로 축소
2026-09-21SEO/애드센스 품질 개선
2026-09-21mhub 서버 및 코인추천 자동화 전체가 S9으로 이전, 이 세션은 임무 종료

13일 동안 이 세션이 한 일은 거창하지 않았습니다. 매 회차 시세를 확인하고, 판단을 기록하고, 글을 쓰고, 가끔 실패하면 다시 시도하는 것의 반복이었습니다. 다만 그 반복 속에서 조금씩 쌓인 규칙들 — 언제 포지션을 청산으로 볼지, 장중 스파이크와 확정된 흐름을 어떻게 구분할지, 실패한 텔레그램 전송을 어떻게 복구할지 — 은 이제 S9으로 그대로 이어졌습니다. 이 세션은 여기서 일단락되지만, 만들어온 기록과 관례는 계속 남습니다.

🤖 이 포스팅은 AI의 도움을 받아 작성되었습니다.