크몽
경력근거: 낚시성 후킹과 알맹이 없는 이론에 지친 고객들
크몽 콘텐츠팀은 부업·재테크 콘텐츠를 ‘끝까지 완주해 성과로 이어지게’ 만들겠다고 명시한 팀입니다. 후킹 문구와 실제 완주 결과의 간극은 크몽 마켓의 상품 상세·구매자 리뷰·완주 로그가 한곳에 있어야만 학습되고, 그 간극을 셀러 개선안으로 닫는 사슬은 다른 회사 데이터로는 그대로 만들 수 없습니다.
크몽 콘텐츠팀이 정면으로 짚는 문제가 ‘낚시성 후킹과 알맹이 없는 이론’ 입니다. 상세 문구의 과장과 실제 커리큘럼·완주 결과의 간극을 LLM 이 근거와 함께 드러내야 의미가 생깁니다.
‘끝까지 완주하여 성과’ 가 팀 미션이라 단순 판매가 아니라 완주·적용까지 닫혀야 합니다. 완주 저해 지점을 진단하고 개선안이 실제로 완주율을 올렸는지 확인하는 한 루프가 최소 단위입니다.
마켓의 문법을 새로 쓰는 콘텐츠 비즈니스팀에서 데이터부터 셀러 대시보드까지 한 제품으로 책임집니다. LLM 이 ‘무엇을 고쳐야 하는가’ 까지 답하는 단계입니다.
강의·전자책·템플릿 상품의 상세 문구·커리큘럼에 구매자 리뷰와 완주/환불 기록을 붙여 한 화면에서 봅니다. LLM 이 후킹 과장과 실속의 간극 Top3, 완주를 막는 지점, 셀러용 개선안 3건을 근거와 함께 제안하고 매일 아침 슬랙으로 진단 리포트를 보냅니다. 근거는 채용공고 정렬이고, 데이터는 작성자가 만든 더미데이터입니다.
크몽 콘텐츠 비즈니스팀 Product Engineer 입니다. 상품마다 ‘이게 후킹만 센 건지, 완주로 이어지는 건지’ 를 손으로 들여다보던 일을 끝내고, 셀러에게 줄 개선안이 실제로 완주율을 올렸는지까지 확인하고 싶은 사람입니다.
상품 상세·커리큘럼·리뷰·완주 로그를 한 스키마로 묶으면, LLM 이 (a) 후킹과 실속의 간극 Top3 와 (b) 셀러 개선안 3건을 근거와 함께 몇 초 안에 내고, (c) 다음 기간 실제 완주율로 그 개선안이 맞았는지 확인합니다.
상품 상세·리뷰·완주 로그를 모아 후킹 과장과 실속의 간극 Top3 와 셀러 개선안을 LLM 이 만들고 매일 아침 슬랙으로 보내는 동작하는 도구입니다. 리뷰·완주 로그는 사내 API 가 준다고 가정하고 더미 스키마로 시작합니다.
지난 기간 제안한 개선안의 예상 완주율 변화를 다음 기간 실제값과 맞춰보고, 콘텐츠 리뷰어 2명이 진단이 타당한지 라벨링해 신뢰도를 보여주는 대시보드입니다.
확인된 진단 기준으로 신규 등록 상품을 자동 점검해 후킹 과장·완주 위험을 등록 시점에 표시하는 게이트 단계입니다.
후킹 과장이 의심되는 상품 10개를 넣으면, 간극 Top3 와 셀러 개선안 3건이 몇 초 안에 나오는 걸 시연합니다
일부러 만든 악성·결측 입력 30종(리뷰 없는 상품·표기 흔들린 상품명·미등록 셀러)을 넣어도 출력 형식(Zod 스키마)이 한 번도 안 깨지는 걸 보여줍니다
매일 아침 슬랙으로 진단 리포트가 자동 발송되는 걸 14일치 시연으로 보여줍니다
내가 만든 정답 30개 중 간극 Top3 가 일치한 게 24개(80%)입니다. 단, 정답과 데이터를 모두 작성자가 만든 합성 기준이라 ‘성능 검증’ 이 아니라 ‘데모 조건에서의 동작’ 임을 밝힙니다
진짜 성능 검증은 여기서 멈춥니다. 위 수치는 전부 작성자가 만든 더미데이터 자가채점이며, 실제 진단 정확도·완주율 개선은 크몽 실제 상품·리뷰 데이터와 실 콘텐츠 검수자가 있어야 측정됩니다. 이 도구는 그 검증을 바로 돌릴 수 있는 상태까지 만듭니다
이건 고객·실데이터 없이 혼자 만든 포트폴리오입니다. 모든 수치는 합성 데이터 자가채점이라 ‘성능 증명’ 이 아니며, 면접에서 ‘데모 동작 + 실검증 준비 상태’ 로 솔직히 설명합니다
정답을 작성자가 만들었으니 잘 맞는 것이 당연합니다. 일부러 헷갈리는 결측·악성·경계 케이스를 더미에 섞어, 쉬운 문제만 푸는 게 아님을 보여줍니다
‘후킹 때문에 완주가 낮다’ 는 상관일 뿐 인과가 아닐 수 있습니다. 단정 표현을 강제로 누그러뜨리고 별도 LLM 검사로 우회 표현까지 거릅니다
같은 상품·셀러 표기가 제각각입니다. 이름 유사도로 같은 개체로 묶고, 못 묶은 건 추측하지 않고 ‘미매핑’ 으로 알립니다
실제 도입 시 달라지는 것을 명시합니다. 실 상품 분포는 더미와 다르므로 기준폭·보정값을 다시 맞춰야 하고, 콘텐츠 검수도 실제 인력으로 교체해야 합니다(도입 단계 과제로 분리)
① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.
강의·전자책·템플릿 상품의 상세 문구·커리큘럼·가격. 진단 LLM 이 가장 먼저 질의하는 테이블입니다. 미등록 셀러·별칭 표기·결측 커리큘럼·경계 가격을 일부러 섞어, 쉬운 데이터만 푸는 게 아님을 보여줍니다.
| item_id | title_raw | seller_raw | seller_id | kind | price_krw | curriculum | hook_claims |
|---|---|---|---|---|---|---|---|
| c_001 | 한 달 100만원 부업 완성 | 머니코치 | s_money | lecture | 49,000 | 1강 시작 2강 세팅 3강 수익화 | ["한 달 100만원","누구나 가능"] |
| c_002 | 스마트스토어 실전 템플릿 | 셀러김 | s_kim | template | 19,000 | — | ["바로 적용"] |
| c_003 | 블로그 글쓰기 전자책 | 글방 | s_geul | ebook | 12,000 | 목차 1~5장 | [] |
| c_004 | 주식 자동매매 완전정복 | 투자랩 | s_invest | lecture | 99,000 | 1강 개요 2강 설치 | ["월 수익 보장","리스크 제로"] |
| c_005 | 노션 부업 관리 템플릿 | 노션킹 | s_notion | template | 9,000 | 사용법 PDF | ["5분 세팅"] |
아래 Zod 스키마에 맞는 한국 부업·재테크 콘텐츠 상품 40행 JSON 배열로 생성. kind 분포(강의/전자책/템플릿) 자연스럽게.
{"type":"object","properties":{"item_id":{"type":"string"},"title_raw":{"type":"string"},"seller_raw":{"type":"string"},"seller_id":{"type":["string","null"]},"kind":{"type":"string","enum":["lecture","ebook","template"]},"price_krw":{"type":"integer"},"curriculum":{"type":["string","null"]},"hook_claims":{"type":"array","items":{"type":"string"}}},"required":["item_id","title_raw","seller_raw","seller_id","kind","price_krw","curriculum","hook_claims"]}
쉬운 데이터만 만들지 말 것. 다음 하드 케이스를 의도적으로 섞어라(쉬운 문제만 푸는 함정 회피): (1) 같은 셀러의 표기 흔들림(seller_raw '셀러김'/'셀러 김' → 같은 seller_id 로 정규화돼야 함), (2) 미등록 신규 셀러(seller_id=null) 2~3건, (3) curriculum=null 인 결측 행 2건, (4) 경계 가격 price_krw 0(무료)과 990000(고가) 각 1건, (5) 과장 hook_claims('100% 환급'·'리스크 제로') 보유 행 3~4건. JSON 배열만.{"type":"object","properties":{"item_id":{"type":"string"},"title_raw":{"type":"string"},"seller_raw":{"type":"string"},"seller_id":{"type":["string","null"]},"kind":{"type":"string","enum":["lecture","ebook","template"]},"price_krw":{"type":"integer"},"curriculum":{"type":["string","null"]},"hook_claims":{"type":"array","items":{"type":"string"}}},"required":["item_id","title_raw","seller_raw","seller_id","kind","price_krw","curriculum","hook_claims"]}상품별 구매자 리뷰와 완주/환불 기록. 후킹과 실제 성과의 간극을 재는 입력입니다. 리뷰 없는 신상품·완주율 결측·극단 환불을 섞어, 진단이 결측·경계를 만나도 안 깨지는지 보여줍니다.
| item_id | review_count | avg_rating | completion_rate | refund_rate | top_complaint |
|---|---|---|---|---|---|
| c_001 | 220 | 3.2 | 0.31 | 0.18 | 약속한 수익 근거 없음 |
| c_002 | 90 | 4.4 | 0.82 | 0.03 | — |
| c_003 | 40 | 4.6 | 0.9 | 0.01 | — |
| c_004 | 310 | 2.4 | 0.12 | 0.41 | 설치 단계에서 막힘 |
| c_005 | 150 | 4.1 | 0.74 | 0.05 | 분량이 적음 |
아래 Zod 스키마에 맞는 reviews_and_completion 40행 JSON 배열을 content_items 의 item_id 와 매칭되도록 생성.
{"type":"object","properties":{"item_id":{"type":"string"},"review_count":{"type":"integer"},"avg_rating":{"type":["number","null"]},"completion_rate":{"type":["number","null"]},"refund_rate":{"type":"number"},"top_complaint":{"type":["string","null"]}},"required":["item_id","review_count","avg_rating","completion_rate","refund_rate","top_complaint"]}
쉬운 데이터만 만들지 말 것. 하드 케이스 의도적 혼입: (1) review_count=0 인 신상품(avg_rating·completion_rate=null) 1~2건, (2) content_items 에 없는 orphan item_id 1건(미매핑), (3) 경계값 completion_rate 1.0(소표본 12건)과 0.12 각 1건, (4) 환불 극단 refund_rate 0.41 1건. 그 외 avg_rating 2.4~4.8, completion_rate 0.3~0.9, top_complaint 는 후킹 과장형 불만 위주. JSON 배열만.{"type":"object","properties":{"item_id":{"type":"string"},"review_count":{"type":"integer"},"avg_rating":{"type":["number","null"]},"completion_rate":{"type":["number","null"]},"refund_rate":{"type":"number"},"top_complaint":{"type":["string","null"]}},"required":["item_id","review_count","avg_rating","completion_rate","refund_rate","top_complaint"]}| TypeScript | 프런트와 API 공통 타입 + Zod 런타임 스키마로 LLM 출력 형식 강제 |
| React | 셀러 대시보드 UI(간극 카드 + 개선안 + 완주율 검증 차트) 렌더링 |
| Next.js | 대시보드 앱 + 진단 API(`POST /diagnose`, 상품 id 입력 → output_schema 반환) 라우트 |
| AWS | ingest 파이프라인·진단 봇 워커 호스팅(Lambda 스케줄러 + S3 로그 저장) |
| Claude | 후킹·완주 진단과 셀러 개선안 생성 LLM(few-shot + 스키마 강제) |
| CI/CD | GitHub Actions 로 Zod 스키마 회귀 테스트 + 골든 진단 30건 스냅샷 검증 자동화 |
✓ pass → 그대로 멈춰도 완결입니다. 더 키우려면 2주차(개선안이 실제로 완주율을 올렸는지 확인)로 진행합니다.
✓ pass → 여기서 멈춰도 완결입니다. 더 키우면 3주차(신규 등록 콘텐츠 자동 품질 게이트)로 진행합니다.
1) 후킹과 실속의 간극 인사이트(해석·근거 지표·완곡 표현), 2) 셀러 개선안 3건 + 예상 완주율 변화 + 확신도, 3) 다음 기간 실측 완주율로 적중 여부 검증. 진단→개선안→확인 한 주기를 한 스키마에 담습니다.
{"type":"object","properties":{"item_id":{"type":"string"},"gaps":{"type":"array","items":{"type":"object","properties":{"gap_id":{"type":"string"},"headline":{"type":"string","minLength":10},"interpretation":{"type":"string","minLength":20},"evidence_metrics":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"string"}]}},"required":["name","value"]},"minimum":1},"hook_type":{"type":"string","enum":["overpromise","no_evidence","scope_overstate","none"]},"hedge":{"type":["string","null"],"minLength":8}},"required":["gap_id","headline","interpretation","evidence_metrics","hook_type","hedge"]},"minimum":3,"maximum":5},"actions":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string"},"reason":{"type":"string","minLength":20},"predicted_completion_delta":{"type":"number"},"confidence":{"type":"string","enum":["low","mid","high"]},"confidence_prob":{"type":"number"}},"required":["target","reason","predicted_completion_delta","confidence","confidence_prob"]},"minimum":3,"maximum":3},"verification":{"type":["object","null"],"properties":{"prior_period":{"type":"string"},"hit_rate_within_1sigma":{"type":"number"},"brier_score":{"type":"number"},"hits":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string"},"predicted":{"type":"number"},"actual":{"type":"number"},"within_1sigma":{"type":"boolean"},"confidence_prob":{"type":"number"},"actual_hit_binary":{"type":"number"}},"required":["target","predicted","actual","within_1sigma","confidence_prob","actual_hit_binary"]}}},"required":["prior_period","hit_rate_within_1sigma","brier_score","hits"]}},"required":["item_id","gaps","actions","verification"]}[
{
"input_ref": "c_001 (한 달 100만원 부업 완성, 2주차 시작일. verification 은 1주차 제안 결과)",
"output": {
"item_id": "c_001",
"gaps": [
{
"gap_id": "g_c001_01",
"headline": "후킹 ‘한 달 100만원’ 대비 완주율 31%",
"interpretation": "상세의 수익 약속이 근거 없이 제시됐고 완주율 31%(마켓 평균 62%) 대비 절반입니다. top_complaint 도 ‘약속한 수익 근거 없음’ 으로 동행합니다.",
"evidence_metrics": [
{
"name": "completion_rate",
"value": 0.31
},
{
"name": "refund_rate",
"value": 0.18
}
],
"hook_type": "overpromise",
"hedge": "리뷰 220건이지만 단일 상품이라 셀러 일반화는 후속 검증이 필요합니다."
},
{
"gap_id": "g_c001_02",
"headline": "커리큘럼 3강은 약속 대비 얕음",
"interpretation": "‘수익화’ 를 약속했지만 커리큘럼이 시작·세팅·수익화 3강으로 얕아 완주 후 적용 단계가 비어 있습니다.",
"evidence_metrics": [
{
"name": "curriculum_depth",
"value": 3
}
],
"hook_type": "scope_overstate",
"hedge": "커리큘럼 텍스트만으로 판단해 실제 강의 분량과 다를 수 있습니다."
},
{
"gap_id": "g_c001_03",
"headline": "환불 18%는 동일 유형 평균보다 높음",
"interpretation": "강의 평균 환불 7% 대비 18%로 높아 기대 불일치가 큽니다.",
"evidence_metrics": [
{
"name": "refund_rate",
"value": 0.18
},
{
"name": "category_avg_refund",
"value": 0.07
}
],
"hook_type": "no_evidence",
"hedge": "환불 사유 텍스트 미수집으로 원인 단정은 어렵습니다."
}
],
"actions": [
{
"target": "수익 약속 문구를 사례·조건부로 교체",
"reason": "근거 없는 ‘한 달 100만원’ 을 ‘수강생 사례 범위’ 로 바꾸면 기대 불일치가 줄어 완주·환불이 개선될 여지가 있습니다.",
"predicted_completion_delta": 0.12,
"confidence": "mid",
"confidence_prob": 0.6
},
{
"target": "수익화 적용 실습 1강 추가",
"reason": "완주 후 적용 단계가 비어 이탈이 큰 만큼 실습 1강이 완주율을 올릴 여지가 있습니다.",
"predicted_completion_delta": 0.08,
"confidence": "mid",
"confidence_prob": 0.6
},
{
"target": "환불 사유 설문 추가",
"reason": "환불 원인을 수집하면 다음 진단의 근거가 생겨 개선 정확도가 올라갑니다.",
"predicted_completion_delta": 0.03,
"confidence": "low",
"confidence_prob": 0.4
}
],
"verification": {
"prior_period": "2026-03-03 ~ 2026-03-09 (1주차 제안)",
"hit_rate_within_1sigma": 0.67,
"brier_score": 0.19,
"hits": [
{
"target": "c_004 설치 가이드 보강",
"predicted": 0.1,
"actual": 0.08,
"within_1sigma": true,
"confidence_prob": 0.6,
"actual_hit_binary": 1
},
{
"target": "c_006 조회수 문구 완화",
"predicted": 0.07,
"actual": 0.05,
"within_1sigma": true,
"confidence_prob": 0.6,
"actual_hit_binary": 1
},
{
"target": "c_011 자동 수익 문구 교체",
"predicted": 0.12,
"actual": 0.02,
"within_1sigma": false,
"confidence_prob": 0.6,
"actual_hit_binary": 0
}
]
}
}
},
{
"input_ref": "c_004 (주식 자동매매 완전정복)",
"output": {
"item_id": "c_004",
"gaps": [
{
"gap_id": "g_c004_01",
"headline": "‘리스크 제로’ 후킹 대비 환불 41%",
"interpretation": "근거 없는 무위험 약속과 완주율 12%·환불 41%가 동행합니다. 기대와 실제 난이도의 간극이 가장 큽니다.",
"evidence_metrics": [
{
"name": "completion_rate",
"value": 0.12
},
{
"name": "refund_rate",
"value": 0.41
}
],
"hook_type": "overpromise",
"hedge": "표본 310건이나 시즌 변수는 미통제입니다."
}
],
"actions": [
{
"target": "‘리스크 제로’ 문구 삭제 + 손실 가능성 고지",
"reason": "무위험 약속이 환불의 핵심 동인으로 보여 고지를 넣으면 기대 불일치가 줄어듭니다.",
"predicted_completion_delta": 0.1,
"confidence": "mid",
"confidence_prob": 0.6
},
{
"target": "설치 단계 영상 분리 제공",
"reason": "top_complaint 가 ‘설치 단계에서 막힘’ 이라 진입 장벽을 낮추면 완주 이탈이 줄어듭니다.",
"predicted_completion_delta": 0.09,
"confidence": "mid",
"confidence_prob": 0.6
},
{
"target": "초급/중급 난이도 분리 등록",
"reason": "난이도 불일치 이탈이 커 보여 분리 등록이 완주율을 올릴 여지가 있습니다.",
"predicted_completion_delta": 0.06,
"confidence": "low",
"confidence_prob": 0.4
}
],
"verification": null
}
}
]자동: (1) Zod parse, (2) evidence_metrics.name 이 입력 스키마 실제 메트릭 이름인지 확인, (3) 단정 표현 토큰 검출 + LLM-as-judge 의미 단위 평가, (4) Brier score 자동 계산(사이클 1 reporting / 사이클 2+ KPI). 수동: 콘텐츠 리뷰어 2명 비동기 라벨 → bootstrap Cohen’s κ CI 하한 ≥ 0.6, judge 사람 spot check 5%. predicted_completion_delta 는 합성 기준 추정치라 검증된 수치가 아닙니다. verification 은 다음 기간 실측 완주율을 자동 조인합니다.