코인 · 판매용 랜딩페이지 · Cloudflare Pages

자동매매 서비스 랜딩페이지 + 텔레그램 문의 접수

자동매매 봇이 아니라 웹 제작 건입니다. 김치프리미엄 차익거래 프로그램을 파는 분이 그 프로그램 소개 페이지와 문의 접수창을 원했습니다. 서버도 DB도 없이 Cloudflare Pages 위에 올려 월 운영비 0원, 문의는 텔레그램으로 바로 갑니다. 2026년 8월 5일 정식 오픈. 작은 건인데 배포에서만 함정을 네 개 밟았습니다.

호스팅
Cloudflare Pages
+ Pages Functions
문의 접수
텔레그램 Bot API
다중 수신 · 저장 없음
구성
소개 · FAQ 35문항 · 공지
· 개인정보처리방침
제작 기간
약 1주
(디자인 왕복 포함)
납품한 랜딩페이지 첫 화면 — 상단 내비게이션, 좌측 소개 문구와 문의 버튼, 우측 콘솔 형태의 서비스 소개 카드
납품 소스를 로컬에서 렌더한 첫 화면. 브랜드와 헤드라인은 의뢰인 식별을 피하려 흐리게 처리했습니다

01서버를 두지 않은 이유

의뢰인은 이미 AWS Lightsail 인스턴스를 갖고 있었습니다. 그런데도 거기 올리지 않았습니다. 그 인스턴스가 거래소 API 키를 가진 실거래 시스템이라 공개 웹과 공격면을 같이 쓰게 할 수 없었습니다. 그리고 정적 페이지 + 함수 하나짜리 요구에 VPS를 붙이면 인증서 갱신과 OS 패치가 무유지보수 단발 건의 상시 부채가 됩니다.

// functions/api/inquiry.js — 접수 → 텔레그램, 골자만
export async function onRequestPost({ request, env }) {
  const f = await request.formData();
  if (f.get("website"))            return ok();        // 허니팟: 성공 위장 폐기
  if (Date.now() - +f.get("t") < 3000) return reject(); // 타임트랩
  const text = escapeHtml(`[문의] ${f.get("name")} / ${f.get("contact")}\n${f.get("msg")}`);
  const sends = env.CHAT_IDS.split(",").map(id => sendTelegram(env.BOT_TOKEN, id, text));
  const r = await Promise.allSettled(sends);
  return r.some(x => x.status === "fulfilled") ? ok() : fail();
}

02배포에서 밟은 것

텔레그램 봇은 먼저 말을 걸 수 없다

수신자 chat_id를 잡으려는데 getUpdates가 계속 0건이었습니다. 텔레그램 봇은 상대가 /start를 누르기 전에는 먼저 메시지를 보낼 수 없습니다. @아이디만 알아도 소용없습니다. 그래서 의뢰인에게 "텔레그램 아이디 알려 주세요"가 아니라 "이 링크 눌러서 시작 버튼 눌러 주세요"로 요청해야 하고, 봇 소유권은 이전이 안 되니 처음부터 최종 운영자 계정으로 만들어야 합니다. 수신 가능 여부는 sendMessage를 직접 쏴서 확인했습니다.

03디자인은 말로 하면 네 번 돈다

"신청현황" 영역이 중앙정렬 → 12건 마퀴 → 분산배치 → 알약 카드로 네 번 바뀌었습니다. "휑하다", "정신없다" 같은 피드백을 시각 자료 없이 주고받은 탓입니다. 이후로는 디자인 방향을 2~3안 시안으로 먼저 고르게 하고, 그다음 세부 조정으로 단계를 나눕니다. 수정 횟수 상한이 있는 계약에서 이런 왕복은 곧 마진이라서요.

범위 밖 요구(회원가입·이용권·자동 쪽지)는 "별도입니다"가 아니라 "150~250만 원 규모입니다"로 답했습니다. 금액이 붙는 순간 의뢰인이 스스로 우선순위를 정리해 1단계만 선택했습니다. 반대로 링크가 헛도는 것 같은 하자는 무료 범위입니다. 그 경계를 문서로 나눠 두었습니다.

Cloudflare Pages · Pages Functions HTML · TailwindCSS 3 (빌드) Telegram Bot API Python 로컬 목서버 (no-store) wrangler

04관련 사례 · 더 보기

※ 본 사례는 고객 요구사항을 익명 처리하여 재구성한 것이며, 화면의 브랜드·문구는 식별을 피하려 흐리게 처리했습니다. 해당 페이지의 서비스 문구와 성과 표현은 의뢰인의 것으로 알고랩의 주장이 아닙니다. 알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천·투자 자문·수익 보장 서비스가 아닙니다.

이런 웹, 바로 견적 받아보세요

프로그램을 만들었으면 팔 자리도 필요합니다. 랜딩 + 문의 접수는 서버 없이 만듭니다.
알고랩이 24시간 빠르게 답변드립니다.

무료 상담 시작하기 요금제 보기
← 제작 사례 전체 보기