PAS
Project Archive System
프로젝트
인박스
+
새 프로젝트
← 취소
✏️ A-02 편집
제목
상태
IDEA
MVP
BUILD
WAIT
DONE
카테고리
A — 메인
B — 서브
C — 탐구
D — 유보
태그
쉼표로 구분
본문
# 한 줄 결론 **공공 OpenAPI/기관 공고를 “텔레그램 알림 서비스”로 표준화해서,** 크몽은 “초저가 세팅(진입용)”으로 깔고, 반복 매출은 “국내 결제(토스 등) + 기간권”으로 회수한다. 확장은 **API별 어댑터만 추가**하는 공장형 구조로 간다. # 1) 문제 인식과 전략 재정의 ## 1.1 경쟁이 심한 영역 vs 틈새가 있는 영역 * **나라장터/조달**은 이미 무료 경쟁자(예: 지투비플러스류)가 존재 → “정보 자체”로는 차별화 어렵다. * 반면 **LH 임대전환/분양·임대/특정 기관 공고**는 API는 있어도 “정리된 텔레그램 실시간 알림”이 부족 → **틈새**가 있다. ## 1.2 핵심 전략(윤호님 방향) * “API 217개 전부”가 목적이 아니라, * 채용/지역한정/돈 안 되는 정보는 제외 * **즉시 돈 되는 버티컬(Tier1/Tier2) 10~30개만 먼저** * 공통 엔진(수집/필터/중복/발송/구독)을 1번 만들고 **API별로는 어댑터만 반복 추가**한다. --- # 2) 타겟/버티컬 우선순위(요약) ## Tier 1 (명확한 니즈 + 돈이 도는 분야) 1. **입찰/조달(기관별)** 2. **부동산/분양/임대/공매** 3. **정부지원사업(중소/창업/R&D)** 4. **특수(ODA/급식/환경/항만 등)** ## Tier 2 (니치하지만 절실) * 규제/법률/관보/의료기기 재평가 * 특허/상표/디자인 * 복지/돌봄/요양 등 > **실전 조언:** 초반엔 “고객이 돈을 버는 정보(입찰/공매/지원사업)” 위주가 유지율이 높습니다. --- # 3) 수익 모델(현실형으로 재구성) ## 3.1 크몽은 “개발비”가 아니라 “세팅/검수 패키지” 초기에 클로드가 말한 구축비(30~50만)는 맞춤개발 느낌이라 비현실적일 수 있음 → 윤호님 판단대로 “낮은 진입장벽”이 더 유리. ### 구축비(세팅비) 권장 3단 * **3만원 라이트**: 포함키워드 소량 + 지역/기관 1개 정도 * **5만원 스탠다드**: 포함/제외 키워드 확장 + 필터 2~3개 조합 + “초기 안정화 1회 조정” 포함 * **10만원 프로**: 예외/복잡한 조건(OR/AND, 제외 다수, 다중 채널 분배 등) 또는 “엑셀 목록 대행 세팅” > 포인트: “싸게 보이게(입구)” + “복잡한 케이스만 비싸게(시간 방어)”. ## 3.2 반복 매출은 “월 구독”인데, Stars는 한국 출금/정산 불확실 * Stars는 문서상 출금/전환 경로가 존재하더라도 **국가/환경에 따라 제한**이 현실적으로 있을 수 있음. * 윤호님 경험상 “한국에서 현금화가 불확실” → **Stars를 핵심 결제축으로 잡지 않는다.** --- # 4) 결제 구조(Stars 대신) — “텔레 안내 + 국내 결제 링크” ## 4.1 가능한가? → 가능. 단 조건이 있음 윤호님이 놀란 부분: “봇에서 결제 링크 안내 → 결제 → 결제사 웹훅 → 자동 구독 활성” 이게 되려면 결제 링크가 **그냥 URL이 아니라, 서버가 주문을 생성해 발급한 결제 URL**이어야 합니다. ## 4.2 토스 결제 기준 기본 흐름(가장 현실적) 1. 유저가 텔레봇에서 플랜 선택 2. 서버가 `orderId` 생성 + `chat_id` 매핑 저장 3. 서버가 결제 페이지 URL 생성(결제사/PG) 4. 봇이 URL 버튼 제공 5. 유저 결제 완료 6. 결제사가 **웹훅**으로 결제 성공 이벤트를 서버로 전송 7. 서버가 웹훅 검증 → `orderId`로 `chat_id` 찾음 → **구독 활성** 8. 봇이 “구독 시작” 안내 ### 웹훅이 없으면? * successUrl 리다이렉트 + 결제 조회 API로 “결제 완료 여부” 확인 후 활성 (자동화 가능. 웹훅이 더 편함.) --- # 5) 구독 상품 설계(윤호님 방향 강화) ## 5.1 “키워드 2트랙 + 리밋 낮게”가 정답 복잡해지면 CS와 이탈이 폭발합니다. ### 키워드 2트랙 정의 * **Include(포함 키워드)**: 찾고 싶은 단어 * **Exclude(제외 키워드)**: 빼고 싶은 단어 추가 옵션은 최소화: * 지역 or 기관 중 1~2개 정도만 ## 5.2 플랜은 2개만 추천(운영/전환에 강함) * **라이트(9,900원)**: 포함 3 / 제외 3 / 지역or기관 1개 * **프로(19,900원)**: 포함 10 / 제외 10 / 지역+기관 또는 필터 2개 / 주간요약 ON/OFF > 3단(1/2/3만원)도 가능하지만, “무제한”은 운영 지옥이 되기 쉬워서 > 윤호님처럼 낮에 일하는 환경이면 **2플랜이 더 강력**합니다. --- # 6) “기간권(1/3/6개월)”로 가면 운영이 쉬워진다 정기 자동결제(빌링키)는 구현/운영/결제 실패 대응이 늘어나고 CS가 증가합니다. 윤호님 상황(낮 근무, 답변 느릴 수 있음)에서는 **기간권이 훨씬 현실적**입니다. ## 6.1 기간권 방식 * 1개월 / 3개월 / 6개월 상품을 결제하면 * `expires_at`를 그만큼 연장 * “미리 결제 = 자동 연장”이 자연스럽게 성립 ## 6.2 만료 알림(자동) * D-7 / D-3 / D-0에 부드러운 연장 안내 * 귀찮으면 3개월/6개월로 유도 --- # 7) 텔레그램 온보딩(설치/가이드 최소화) 윤호님 목표: 고객이 “따라오게 하는 가이드”를 최소화. ## 7.1 최적 플로우(고객 행동 최소) 1. 크몽 구매(세팅비) 2. 자동 메시지로 “봇 링크” 제공 3. 텔레봇: * (1) 버티컬 선택 * (2) 포함/제외 키워드 입력 * (3) 테스트 알림 1회 * (4) 결제 버튼(기간권 선택) 4. 결제 완료 → 자동 활성 → “구독 시작” 메시지 --- # 8) 기술 설계 핵심: “어댑터 표준화 + 공통 엔진” 윤호님이 말한 “API 승인→연동→프로토콜 맞춤→테스트→라이브”를 **십수번 반복**하려면 이 부분이 결정적입니다. ## 8.1 NormalizedNotice(정규화 공고 객체) 최소 스키마 API마다 응답이 달라도, 내부는 이 포맷으로 강제합니다. * `source` : 소스명 (예: LH_LEASE) * `source_id` : 원본 고유키 * `title` * `published_at` * `region` (없으면 null) * `url` * `raw` : 원본 JSON(통째로 저장) **의미** * API가 바뀌어도 → 어댑터만 수정 * 필터/중복/발송/로그/요약 로직은 거의 그대로 유지 ## 8.2 공통 엔진 기능(한 번 만들면 끝) * 수집 스케줄러(크론/워커) * 정규화(어댑터) * 필터(Include/Exclude/지역/기관) * 중복 제거(`source + source_id` 또는 해시) * 발송(텔레 메시지) * 로그/엑셀/DB 기록 * 상태 모니터링(고장 감지) --- # 9) 운영 안정성: “고장 감지”는 초기에 넣어야 한다 십수번 반복하면 반드시 터지는 것들: * 응답 지연/실패 * 날짜 포맷 변경 * 필드명 변경 * 특정 소스만 0건 지속 ## 최소 가드(추천) * 24시간 수집량 0이면 경고 * 에러 N회 연속이면 경고 * 특정 소스만 죽으면 자동 OFF(또는 임시 중단) * 관리자에게만 알림(윤호님 텔레로) --- # 10) 품질 테스트: “몇 주”가 아니라 3~7일이면 충분 윤호님도 동의하셨듯, 성패는 “긴 기간”이 아니라 **짧은 실사용에서 바로 갈립니다.** ## 3~7일 테스트로 확인할 것(핵심 4개) 1. 하루 평균 알림 수(스팸 여부) 2. 중복/수정 공고 비율 3. 제외 키워드가 필요한 빈도 4. 지역/기관 필터가 필요한 빈도 ## 테스트 방식 * 버티컬 1~2개만 선택(LH + 온비드 or 중소벤처24) * “현실 키워드 세트” + “스팸 유발 세트” 두 가지로 돌려보기 --- # 11) 가격 인식(1~3만원이 비싸게 느껴질까?) 정리하면: * **B2B(입찰/지원/공매)**: 월 1~3만원은 대체로 “싸다/보험료”로 인식될 가능성이 큼 * **B2C(잡정보 알림)**: 1~3만원은 비싸게 느껴질 수 있음 윤호님 타겟은 **B2B 성격**이 강하니, 가격 자체보다 **“정확도/중복제거/필터 편의”**가 가치 포인트입니다. --- # 12) 전체 로드맵(추천 실행 순서) ## Phase 1: MVP 고정(가장 중요) 1. **기간권 결제 + 자동 활성(웹훅)** 2. **구독 상태/만료 알림(D-7/D-3/D-0)** 3. **버티컬 1개 완성(LH 또는 온비드 또는 중소벤처24)** 4. 3~7일 품질 테스트 후 필터/메시지 확정 ## Phase 2: 버티컬 3개까지 확장 * 어댑터만 추가하며 패턴 고정 * 크몽 상품 템플릿도 복붙 수준으로 고정 ## Phase 3: 크몽 대량 등록(20~30개) * “상품 수”가 곧 노출/유입 자산 * 실제 운영은 공통 엔진에서 통제 --- # 13) 윤호님 상황에서의 현실 평가(있는 그대로) * **실현 가능성:** 높음 (Stars 이슈를 빼고 토스/국내 결제로 바꾸면 더 쉬워짐) * **현실성:** 충분히 현실적 단, 온보딩과 필터 정책을 단순화해야 CS가 안 터짐 * **작업 대비 효율:** 매우 좋음 공통 엔진 1번 + 어댑터 반복 구조가 “확장 대비 비용”을 계속 낮춤 --- # 14) 다음 단계로 “바로 진행”할 체크리스트 ## 오늘 확정해야 하는 4가지(뼈대 고정용) 1. NormalizedNotice 스키마(7필드) 2. 필터 정책(Include/Exclude + 지역/기관 옵션 1~2개) 3. 플랜(2플랜) + 기간권(1/3/6개월) 4. 메시지 템플릿(제목/핵심/링크/태그) ## 이번 주 실전 액션(가장 효율) * 버티컬 1개 연결 * 키워드 직접 세팅 후 3~7일 수신 테스트 * 알림 품질/수량 확인 후 플랜/리밋 최종 확정 --- 좋습니다. 아래는 **제가 앞에서 만든 “처음~끝 설계 문서”**에, **제미나이 문서의 장점**을 흡수하고 **제가 보완해야 한다고 짚은 6가지(결제 검증/중복/연장/템플릿/UI/어댑터 공장화)**를 **“추가·수정해야 할 내용만”** 깔끔히 반영한 **업데이트 패치본**입니다. (즉, 기존 문서에 그대로 덧붙여서 “최종 실행 설계”가 되도록 구성) --- # A) MVP 고정 스펙 업데이트 (넣을 것 vs 버릴 것) ## A-1. 반드시 포함(업데이트 포함분 ✅) ### 1) 결제/구독(기간권) — “자동 승인”을 안전하게 만드는 3종 세트 * ✅ **웹훅 수신 엔드포인트** * ✅ **Idempotency(중복 수신 방지)** * 같은 `order_id` 이벤트가 2번 와도 **1번만 반영**되게 * 구현: `payments.order_id UNIQUE` + `status` 체크 * ✅ **금액/플랜 검증(필수)** * 웹훅/리다이렉트로 온 `amount`, `plan_code`가 **서버가 만든 주문과 일치**하는지 확인 * ✅ **연장 로직 규칙 고정(필수)** * `expires_at`가 **미래**면: `expires_at += 기간` * `expires_at`가 **과거/NULL**면: `now += 기간` * 이 규칙을 고정해야 “미리 결제 = 연장”이 자연스럽고 불만이 없음 > 결제는 “Stars 제외 + 국내 PG(토스 등) + 기간권(1/3/6개월)”을 기본 채택 ### 2) 알림 품질의 핵심 4종 (윤호님 운영 환경 필수) * ✅ **중복 방지**: `source + source_id` 유니크키 기반 * ✅ **Exclude 키워드**: 하나라도 매칭되면 탈락 * ✅ **Include 키워드**: OR 매칭 * ✅ **테스트 알림 1회**: 고객이 “이게 맞는지” 즉시 확인 ### 3) 운영 가드(고장 감지) 최소 세트 * ✅ 24시간 수집량 0이면 관리자 알림 * ✅ 연속 에러 N회면 관리자 알림 * ✅ 소스별 장애 시 해당 소스 자동 OFF(또는 임시 중단 플래그) --- ## A-2. 절대 버릴 것(초기 금지 유지) * ❌ 웹 대시보드(키워드 관리 웹 UI) * ❌ AI 요약/NLP * ❌ 자동 정기결제(빌링키) — 기간권+만료알림+재결제로 대체 * ❌ 다중 채널(카톡/메일 등) — 텔레그램만 --- # B) 데이터 모델(스키마) 업데이트 — “JSON 1칸”으로 단순화 기존 3테이블 모델은 유지하되, 키워드/필터는 컬럼 여러 개로 늘리지 말고 **`filters_json` 1칸에 통째로 저장**합니다. (확장/버티컬 추가가 쉬움) ## B-1. users (최소) * `chat_id` (PK) * `plan_type` (LIGHT/PRO 등) * `expires_at` (구독 만료) * ✅ `filters_json` * include_keywords: [] * exclude_keywords: [] * region: "" * agency: "" * (추후 확장 가능) ## B-2. notices (중복 체크 + 기록) * `hash_id` (PK, 내부 해시) * `source` * `source_id` (원본 고유키) * `title` * `url` * `published_at` * `created_at` ## B-3. payments (결제 안전 3종 포함) * `order_id` (UNIQUE) * `chat_id` * `amount` * `plan_code` (M1/M3/M6 등) * `status` (PENDING/PAID/CANCELED) * `paid_at` * ✅ (선택) `raw_json` (웹훅 원문 저장하면 분쟁 대응이 쉬움) --- # C) 어댑터 공장화(217개 로드맵 적용) — “NormalizedNotice” 고정 API별 응답이 달라도 내부는 무조건 이 스키마로 통일: ## C-1. NormalizedNotice 최소 필드(고정) * `source` * `source_id` * `title` * `published_at` * `region` (없으면 null) * `url` * `raw` (원본 JSON) ## C-2. 어댑터 추가 고정 체크리스트(매번 동일) 1. API 응답 샘플 1~3개 확보 2. NormalizedNotice로 매핑 3. `source_id`가 “진짜 고유”인지 확인(수정/재게시 패턴 체크) 4. 24~48시간 수신 테스트 5. 소스 ON + 크몽 상품 템플릿 복붙 등록(이름만 변경) > “217개 = 총알(로드맵)”은 유지하되, **Tier1/Tier2 10~30개만 먼저**가 현실적 --- # D) 메시지 템플릿 표준(UI/UX) 업데이트 — “2줄 추가”로 완성 이미 제미나이 포맷이 좋습니다. 여기에 제가 권장한 2줄을 추가해 **모든 버티컬 공통 표준**으로 고정합니다. ## D-1. 공고 알림(표준 1건) * 📢 `[소스명] 새로운 소식` * 📌 제목: * 📅 게시일: * 📍 지역: * 🔍 매칭 키워드: #키워드… * 🔗 공고 원문 보기 * 💳 구독 만료까지 D-xx일 * ✅ 🏷️ 소스/분류 태그: `🏷️ 소스: LH_임대전환` * ✅ ⚙️ 설정/연장 안내: `⚙️ 설정/연장: /manage` 또는 링크 버튼 ## D-2. 만료 알림(3종) * D-7: “7일 남음 + 1/3/6개월 연장 버튼” * D-3: “3일 남음 + 연장 버튼” * D-0: “만료됨 + 결제 후 즉시 복구” ## D-3. 결제 완료 알림 * 결제 확인 완료 * 구독 만료일(YYYY-MM-DD) * 설정/키워드 확인 버튼(/manage) --- # E) 결제 방식 최종 합의(Stars 제외 버전) — “기간권” 중심 ## E-1. 결제 UX(윤호님 운영 환경 최적) * 텔레그램은 안내/버튼/상태 확인 중심 * 결제는 국내 PG(토스 등) 결제 링크로 이동 * 결제 성공 → 웹훅으로 자동 승인 → 구독 활성 ## E-2. 기간권 상품(권장) * 1개월 / 3개월 / 6개월 * “미리 결제 = 연장”은 연장 로직 규칙으로 해결(앞의 C항목) --- # F) 가격 전략(제미나이 문구 + 최종 합의) ## F-1. 크몽(입구): “저가 세팅비”로 결정을 빠르게 * 3만원 / 5만원 / 10만원 * 성격: 개발비가 아니라 **세팅 대행 + 초기 안정화(필터 1회 조정)** ## F-2. 구독(회수): 2플랜 + 기간권 * 라이트(예: 월 9,900원 수준) * 프로(예: 월 19,900원 수준) * * 3/6개월은 “귀찮음 회피 옵션”으로 전환률에 도움 --- # G) 품질 테스트(윤호님 1인 검증) — “3~7일이면 충분” * 버티컬 1~2개만 선정(LH + 온비드 or 중소벤처24) * 현실 키워드 세트 + 스팸 유발 세트 2종 * 체크 4개: 1. 하루 알림 수 2. 중복/수정 비율 3. Exclude 필요 빈도 4. 지역/기관 필요 빈도 이 결과로 리밋/플랜/문구가 확정됩니다. --- # H) 실행 로드맵(7일 배포 가능 조건 명시) 제미나이의 “7일 챌린지”는 **웹 대시보드/자동정기결제/다채널을 버리고** MVP 고정 스펙만 하면 현실적입니다. ### Day 1~2 * DB 3테이블 * 결제 주문 생성 + 결제 URL 발급 * 웹훅 수신 + (중복방지/금액검증/연장로직)까지 완료 ### Day 3~4 * 버티컬 1개 어댑터 작성 + NormalizedNotice 확정 * 발송/중복/필터 적용 ### Day 5~6 * 본인 계정으로 48시간 실수신 테스트 * 필터 1회 조정 정책 확정 ### Day 7 * 크몽 상품 등록(복붙 템플릿) * 첫 고객용 온보딩 메시지 확정 --- ## 최종 정리(윤호님이 “추가로 문서에 붙일 핵심 한 장”) 1. **국내 PG + 기간권 + 웹훅 자동승인**은 현실적이며, Stars 리스크를 제거한다. 2. MVP 필수는 “결제 안전 3종(중복방지/금액검증/연장규칙)”까지 포함해야 한다. 3. 키워드는 “2트랙 + 낮은 리밋”으로 고정해 CS를 줄인다. 4. 어댑터는 NormalizedNotice로 공장화해서 10~30개만 먼저 확장한다. 5. 메시지 템플릿은 표준 1종(소스 태그 + 설정/연장 링크 포함)으로 모든 버티컬에 통일한다. 6. 3~7일 실수신 테스트로 ‘가격/리밋/필터 정책’을 확정한다. --- 원하시면, 다음 단계로 **“/manage(설정 확인) + /renew(연장) + /stop(해지)”** 같은 **봇 명령어 최소 세트**와, 그에 맞는 **버튼 UI 흐름(정확한 텍스트)**까지 바로 고정해드리겠습니다.
## 제목, - 목록, **굵게**, `코드` 사용 가능
미리보기
취소
💾 저장