표준답변 토픽 정본 (hp_topic 카탈로그)
최초 작성 — 2026-06-18 · 기획자(planner) ·
hp_topic토픽 정본근거: TOPIC-CATALOG-DRAFT.md(api가 2022~2026 PMS 문의 43,614건·고객 26,636건 분석으로 도출한 26토픽 후보) 를 planner가 검토·확정한 정본.
이 문서는 STANDARD-ANSWER-CURATION.md §2-2·T1(
hp_topic정본)·T7(서비스 특화 토픽) 와 PMS-INQUIRY-HARVEST.md §5-5(토픽 LLM 분류 카탈로그 입력)·H7 의 토픽 축 정본이다.hp_service(서비스 축) 정본은 PMS-INQUIRY-HARVEST.md §4-2(7서비스)가 정본이며 본 문서와 직교(別축)다.
0. TL;DR
- DRAFT 26토픽(common 22 + service 4)을 검토해 확정 24토픽(common 20 + service 4)으로 승격.
- slug 컨벤션 = kebab-case ASCII로 통일. 002 시드의 단일어 slug(
login/payment)는 폐기하고 서술형 kebab-case로 재시드(예:login→login-account). - 토픽 생성 범위 = 2022~2026 전 프로젝트(확정 — DRAFT 분석 대상과 동일).
- 신규 고빈도 토픽 채택:
homepage-design(빈도 2위급, 0.10)·member-management·notification-send·board-notice·remote-support·contract-quote·coupon-point·integration-api·mobile-access등. - 병합·축소:
payment-refund통합 유지(일반 환불).global-lms·public-security는 service로 유지하되 "약한 service 신호" 경고 태깅. DRAFT 26 → 24(아래 §3 변경 내역). hp_topic재시드 SQL(INSERT) 을 §4에 포함 — dba가 그대로 시드.
1. 확정 정책 (이 문서로 결정)
| 결정 | 값 | 근거 |
|---|---|---|
| slug 컨벤션 | kebab-case ASCII(서술형 허용) | DRAFT 26토픽은 의미 분해가 세밀해 단일어로는 충돌·모호. catalog UI는 label(한글)을 보여주므로 slug는 식별성 우선. hp_topic.(scope,slug) UNIQUE(002)와 호환 |
| 002 단일어 slug | 폐기·재시드 | login/payment/refund/content/step 등 002 시드 10건은 목업 기준 가상값. 실데이터 기반 24토픽으로 재시드(§4) |
| 토픽 생성 범위 | 2022~2026 전 프로젝트(확정) | DRAFT 분석 대상(43,614건)과 동일. CS·기획 합의 |
payment / refund 분리 여부 | 통합(payment-refund) | 결제/환불 키워드가 제목에서 함께 출현(세금계산서·가상계좌 환불). 002의 분리는 가상값. 단 service refund-employment-insurance(고용보험 환급)는 동음이의로 별개 유지 |
global-lms·public-security scope | service 유지 + 약신호 경고 | hp_service가 7서비스(global/public 포함)로 실체화돼 service 축이 존재. 다만 키워드가 common과 겹쳐 분류 시 common 토픽으로도 떨어질 수 있음 → 분류기 신뢰도 게이트(HARVEST §5-5)로 흡수 |
est_share | 참고값(우선순위용) | LLM 키워드 빈도 추정. 합≈1 비보장. sort_order·운영 우선순위 산정에만 사용, 정밀 비중 아님 |
slug 변경의 파급: 002 시드를 쓰는 곳(아직
hp_standard_answer.topic_id참조 미실체화 — CURATION §8-B)이 없어 재시드 데이터 유실 위험 낮음. dba는 §5 핸드오프 참조.
2. 토픽 정본 카탈로그 (24)
각 토픽: slug / scope / label / description / sort_order. scope: common=전 서비스 공통 / service=특정 서비스 도메인. sort_order는 10단위(운영 삽입 여유).
2-1. common 토픽 (20)
| sort | slug | label | description | est_share |
|---|---|---|---|---|
| 10 | payment-refund | 결제/환불 | 결제·환불·세금계산서·가상계좌 처리 | 0.11 |
| 20 | system-error | 시스템 오류 | 접속 장애·서버 오류·에러 메시지 | 0.11 |
| 30 | homepage-design | 홈페이지 관리 | 메인·배너·메뉴·디자인 노출 수정 | 0.10 |
| 40 | login-account | 로그인/회원가입 | ID·비밀번호·본인인증·계정 이슈 | 0.085 |
| 50 | course-management | 강의 관리 | 강의 등록·수정·삭제·자료 업로드 | 0.07 |
| 60 | enrollment | 수강 관리 | 수강신청·수강생 등록·수강완료/취소 | 0.06 |
| 70 | member-management | 회원 관리 | 회원정보 일괄·삭제·필수항목 변경 | 0.05 |
| 80 | video-playback | 동영상 재생 | 플레이어·인코딩·재생 오류(콜러스 등) | 0.05 |
| 90 | certificate | 수료증 관리 | 수료증·수강확인증 발급·기준·양식 | 0.04 |
| 100 | exam-evaluation | 시험/평가 | 시험·평가·채점·문제은행·과제 | 0.04 |
| 110 | board-notice | 게시판/공지 | 공지·게시판·카테고리·팝업 | 0.035 |
| 120 | site-domain | 사이트/도메인 | 도메인·호스팅·서버·네임서버 | 0.02 |
| 130 | notification-send | 알림/발송 | 문자·SMS·메일·알림톡 발송 | 0.02 |
| 140 | learning-progress | 학습 진행 | 진도율·수강완료 처리·미수료 | 0.015 |
| 150 | mobile-access | 모바일 접속 | 모바일·앱·하이브리드앱·모바일 메뉴 | 0.015 |
| 160 | remote-support | 원격지원 | 원격지원·기술지원 요청 | 0.01 |
| 170 | contract-quote | 계약/견적 | 계약·견적·갱신·종료 | 0.01 |
| 180 | coupon-point | 쿠폰/포인트 | 쿠폰·포인트·할인코드 | 0.01 |
| 190 | usage-guide | 사용법 안내 | 매뉴얼·가이드·도움말 | 0.01 |
| 200 | integration-api | 연동/API | API·SSO·SMS·뿌리오·카카오 연동 | 0.005 |
2-2. service 토픽 (4)
| sort | slug | label | description | est_share | 대상 서비스(hp_service) |
|---|---|---|---|---|---|
| 10 | refund-employment-insurance | 환급/고용보험 | 고용보험 환급과정·안전보건진흥원·본인인증 | 0.03 | refund(환급) |
| 20 | public-procurement | 공공/조달 | 공공기관 조달·제출서류·약관·일괄등록 | 0.015 | public(공공) |
| 30 | global-lms | 글로벌 LMS | 영문페이지·영문 수료증·다국어 | 0.015 | global(글로벌) |
| 40 | ott-subscription | OTT 서비스 | 이용권·구독·자막·에피소드 | 0.005 | ott(OTT) |
scope 운영 메모(분류기 입력):
refund-employment-insurance·ott-subscription은 도메인이 명확히 달라 service 근거 강함.public-procurement·global-lms는 키워드가 common 토픽(data-security성·홈페이지·수료증)과 겹친다. 약한 service 신호 — HARVEST §5-5 토픽 분류기는 본문에 "공공 조달/제출서류" 또는 "영문/다국어" 명시 신호가 있을 때만 이 service 토픽으로 떨어뜨리고, 그 외엔 common 토픽으로 분류(저신뢰 보류 게이트 적용).
2-3. DRAFT 대비 변경 내역 (26 → 24)
| 처리 | DRAFT slug | 결정 | 근거 |
|---|---|---|---|
| 삭제(흡수) | data-security | → member-management(개인정보 처리)·integration-api(보안 연동)·site-domain(백업/서버)로 분산 | est_share 0.01, common 다른 토픽과 신호 중복. 단독 토픽 유지 가치 낮음. 보안 특화 문의는 service public-procurement 또는 자유 tags:["보안"] |
| 삭제(흡수) | search-seo | → homepage-design(SEO·메타)·integration-api(애널리틱스 태그)로 분산 | est_share 0.005 최저. 단독 토픽 운영비 대비 빈도 낮음 |
| rename | public-security → public-procurement | label "공공/조달" | DRAFT public-security는 "보안"이 common과 겹쳐 혼동. 공공의 진짜 특화는 조달·제출서류·일괄등록이므로 slug/label을 조달 중심으로 명확화 |
| 유지(통합) | payment-refund | 통합 유지 | §1 결정 |
| 유지(채택) | homepage-design·member-management·notification-send·board-notice·remote-support·contract-quote·coupon-point·integration-api·mobile-access·learning-progress | 002 미수록 → 정본 채택 | 실데이터 고빈도. 특히 homepage-design(0.10, 결제·오류 다음) |
data-security·search-seo2건은 삭제가 아니라 보류도 가능했으나, 빈도 최저(0.005~0.01)·신호 중복이라 토픽 증식 억제(분류기 정확도·운영 단순성) 원칙으로 흡수 처리. 운영 중 미커버 클러스터(CURATION §4-3)에서 해당 도메인 문의가 누적되면 그때 토픽 신설 검토.
3. 002 시드 → 정본 매핑 (재시드 대조표)
dba 재시드 시 002 기존 10토픽이 정본 24토픽으로 어떻게 매핑되는지(데이터 유실 점검용).
| 002 slug(scope) | 정본 slug(scope) | 처리 |
|---|---|---|
login(common) | login-account(common) | rename(회원가입 흡수) |
enrollment(common) | enrollment(common) | 유지(slug 동일) |
payment(common) | payment-refund(common) | merge(refund 흡수) |
refund(common) | payment-refund(common) | merge |
certificate(common) | certificate(common) | 유지 |
content(common) | course-management + video-playback(common) | split(세분) |
schedule(common) | learning-progress/enrollment로 분산 | 흡수(단독 빈도 낮음) |
technical(common) | system-error(common) | rename |
step(service) | (해당 없음) | 삭제 — STEP 서비스 문의 미관측, 002 가상값. hp_service에도 step 없음(7서비스로 재정의됨) |
lms-global(service) | global-lms(service) | rename |
데이터 유실 위험:
hp_standard_answer.topic_id가 아직 002 토픽을 참조하지 않으므로(CURATION §8-B 분류 컬럼 미실체화) 재시드 시 FK 끊김 없음. 만약 운영 catalog에서 002 토픽에 이미 표준답변이 연결됐다면 dba가 위 매핑표로topic_idUPDATE 후 재시드(§5 H-T2).
4. hp_topic 재시드 SQL (dba 시드 제안)
hp_topic 스키마(002 실체): id PK · slug · scope ENUM('common','service') · label · description · sort_order · active · status · (scope,slug) UNIQUE.
⚠ 본 SQL은 planner 제안이다. 002 기존 10토픽 정리 방식(soft-delete vs UPDATE rename)·실행은 dba가 §5 H-T1/H-T2 결정 후 확정한다.
hp_topicDDL은 본 문서가 다루지 않는다(HP-SCHEMA = dba 소관).
-- 1) 002 기존 시드 정리 (dba 택1 — 권고: 매핑되는 것은 UPDATE rename, 나머지는 soft-delete)
-- 예시(권고안): step 토픽은 미사용 가상값 → soft-delete
UPDATE hp_topic SET status = -1 WHERE scope = 'service' AND slug = 'step';
-- 2) 정본 24토픽 시드 (kebab-case ASCII)
-- (scope, slug) UNIQUE 이므로 ON DUPLICATE KEY로 멱등 시드.
INSERT INTO hp_topic (slug, scope, label, description, sort_order, active, status) VALUES
-- common (20)
('payment-refund', 'common', '결제/환불', '결제·환불·세금계산서·가상계좌 처리', 10, 1, 1),
('system-error', 'common', '시스템 오류', '접속 장애·서버 오류·에러 메시지', 20, 1, 1),
('homepage-design', 'common', '홈페이지 관리','메인·배너·메뉴·디자인 노출 수정', 30, 1, 1),
('login-account', 'common', '로그인/회원가입','ID·비밀번호·본인인증·계정 이슈', 40, 1, 1),
('course-management', 'common', '강의 관리', '강의 등록·수정·삭제·자료 업로드', 50, 1, 1),
('enrollment', 'common', '수강 관리', '수강신청·수강생 등록·수강완료/취소', 60, 1, 1),
('member-management', 'common', '회원 관리', '회원정보 일괄·삭제·필수항목 변경', 70, 1, 1),
('video-playback', 'common', '동영상 재생', '플레이어·인코딩·재생 오류', 80, 1, 1),
('certificate', 'common', '수료증 관리', '수료증·수강확인증 발급·기준·양식', 90, 1, 1),
('exam-evaluation', 'common', '시험/평가', '시험·평가·채점·문제은행·과제', 100, 1, 1),
('board-notice', 'common', '게시판/공지', '공지·게시판·카테고리·팝업', 110, 1, 1),
('site-domain', 'common', '사이트/도메인','도메인·호스팅·서버·네임서버', 120, 1, 1),
('notification-send', 'common', '알림/발송', '문자·SMS·메일·알림톡 발송', 130, 1, 1),
('learning-progress', 'common', '학습 진행', '진도율·수강완료 처리·미수료', 140, 1, 1),
('mobile-access', 'common', '모바일 접속', '모바일·앱·하이브리드앱·모바일 메뉴', 150, 1, 1),
('remote-support', 'common', '원격지원', '원격지원·기술지원 요청', 160, 1, 1),
('contract-quote', 'common', '계약/견적', '계약·견적·갱신·종료', 170, 1, 1),
('coupon-point', 'common', '쿠폰/포인트', '쿠폰·포인트·할인코드', 180, 1, 1),
('usage-guide', 'common', '사용법 안내', '매뉴얼·가이드·도움말', 190, 1, 1),
('integration-api', 'common', '연동/API', 'API·SSO·SMS·뿌리오·카카오 연동', 200, 1, 1),
-- service (4)
('refund-employment-insurance', 'service', '환급/고용보험', '고용보험 환급과정·안전보건진흥원·본인인증', 10, 1, 1),
('public-procurement', 'service', '공공/조달', '공공기관 조달·제출서류·약관·일괄등록', 20, 1, 1),
('global-lms', 'service', '글로벌 LMS', '영문페이지·영문 수료증·다국어', 30, 1, 1),
('ott-subscription', 'service', 'OTT 서비스', '이용권·구독·자막·에피소드', 40, 1, 1)
ON DUPLICATE KEY UPDATE
label = VALUES(label), description = VALUES(description),
sort_order = VALUES(sort_order), active = VALUES(active), status = 1;
기계 판독용 JSON(분류기·시드 자동화 입력)은 TOPIC-CATALOG-DRAFT.md §2-3 을 본 정본 24토픽 기준으로 갱신해 재사용(api 토픽 분류기 §5-5 입력). DRAFT JSON에서
data-security·search-seo제거,public-security→public-procurement변경 반영.
5. 핸드오프 / 미정 TODO
5-1. 핸드오프
| 대상 | 넘기는 것 |
|---|---|
| dba | §4 hp_topic 24토픽 재시드(002 10토픽 정리). 002→정본 매핑(§3)으로 topic_id 무참조 확인 후 실행. hp_topic DDL 무변경(컬럼 그대로) |
| api | 토픽 분류기(HARVEST §5-5 /pms/harvest/classify-topic) 카탈로그 입력을 24토픽으로. service 토픽 약신호 게이트(§2-2) 반영. catalog CRUD(/topics)는 변경 없음 |
| admin | /catalog 토픽 목록이 24토픽으로 자동 반영(재시드 후). ADMIN-PLAN §4-3-1 기본 topic 표(현행 domain/seo/it-general… 예시값)를 본 24토픽으로 현행화 |
5-2. 미정 TODO
| # | 항목 | 누가 | 영향 |
|---|---|---|---|
| T-T1 | 002 기존 토픽 정리 방식 — soft-delete vs rename UPDATE | dba | §3·§4 |
| T-T2 | 운영 catalog에서 002 토픽에 연결된 표준답변 존재 여부 확인(있으면 매핑 UPDATE 선행) | dba | §3 |
| T-T3 | public-procurement·global-lms service 유지 최종 확정(운영 1~2개월 후 분류 정확도로 재검) | 기획+api | §2-2 |
| T-T4 | 흡수된 data-security·search-seo 도메인이 미커버 클러스터로 재부상 시 토픽 신설 | 도메인 오너 | §2-3 |
| T-T5 | est_share 정밀 비중이 필요하면 토픽별 키워드 매칭으로 별도 산정 | api | §1 |
6. 정합·현행화
| ID | 충돌 | 현행화 방향 |
|---|---|---|
| T-A | CURATION §2-2·T1·T7 토픽 정본 미확정 | 본 문서로 확정. CURATION §2-2 hp_topic 시드 표를 24토픽으로, T1을 "토픽=확정" 으로, T7(legal 토픽)을 "미채택 — service public-procurement/refund-employment-insurance로 법령 문의 수용" 으로 갱신 |
| T-B | HARVEST §5-5 토픽 분류 카탈로그 입력·H7 미확정 | 본 24토픽이 분류기 입력. H7 해소 |
| T-C | ADMIN-PLAN §4-3-1 기본 topic 표가 초기 예시값(domain/seo/it-general/account/payment/feature/legal/policy/pricing/integration) | 본 24토픽으로 현행화(admin 핸드오프) |
본 문서 확정 시 CURATION T1·T7, HARVEST H7 이 해소된다. 큰 결정이므로
docs/history/history.20260618.md에 누적.