# SEMINAR56 — 니즈 분석·기획 설계

> 원 의뢰: [워드프레스 기반 전국 마케팅 세미나 예약 플랫폼 구축.txt](../워드프레스%20기반%20전국%20마케팅%20세미나%20예약%20플랫폼%20구축.txt)
> 예산 400만 · 40일 · 기획 상태 "필요한 내용을 간단히 정리한 상태" · IT PM 경험 없음 · 인천 계양구 (오프라인 미팅)
> 우선순위: **①산출물 완성도 ②금액 ③일정** · 월 단위 유지보수 별도 논의 예정

---

## 1. 의뢰자 니즈 분석

### 1-1. 명시된 니즈 (요구사항 커버리지)

| # | 요구사항 | 데모 구현 |
|---|---|---|
| 2-1 | 메인·브랜드 소개 페이지 | 랜딩 (히어로 → 문제제기 → 커리큘럼 → 강사 → 후기 → FAQ → CTA) |
| 2-1 | 커리큘럼·강사 소개·**수익 계산 폼** | 커리큘럼 5강 · 강사 섹션 · **슬라이더 3축 수익 계산기** |
| 2-1 | 모바일 예약 전환율 고려 반응형 | 375px 대응, 모달 전체폭 전환, 하단 고정 CTA |
| 2-1 | 채널톡 상담 위젯 | 우하단 플로팅 위젯 (스크립트 연동 지점) |
| 2-2 | 지역·회차별 예약 상품 등록 | 56개 지역 × 회차 · 권역 필터 5종 |
| 2-2 | **정원 60명 도달 시 자동 마감·품절** | 잔여 0이면 카드 비활성 + "마감" 배지 |
| 2-2 | 달력형/리스트형 예약 UI | 권역별 리스트형 카드 (모바일 전환율 우선) |
| 2-2 | PG 신용카드·**가상계좌** 결제 | 결제 수단 선택 → 수단별 분기 |
| 2-2 | **가상계좌 대기 초과 시 자동 취소** | 24시간 홀딩 + 만료 안내 (아래 2장 ②) |
| 2-2 | 취소 시점별 환불 규정·관리자 환불 | 7일 100% / 3일 50% / 당일 0% · 관리자 환불 버튼 |
| 2-3 | 예약 확정·입금 완료 시 **알림톡 자동 발송** | 완료 화면에 실제 알림톡 카드 미리보기 · 템플릿 6종 관리 |
| 2-3 | 예약자 명단 관리·**엑셀 다운로드** | 관리자 명단 + 실제 CSV 파일 생성 |
| 2-3 | **지역 페이지 마스터 템플릿 1개** | 지역 페이지 관리 화면 (아래 2장 ①) |
| 2-3 | **내부 인력이 복제·수정하는 구조** | 복제 vs CPT 비교 + 소요 시간 시뮬레이션 |
| 3-1 | 플러그인 간 충돌 방지 | 최소 조합 원칙 + 결제 리허설 (2장 ⑤) |
| 3-2 | SSL·관리자 보안 | 제안 스택에 포함 |

### 1-2. 문서 행간의 숨은 니즈

- **"아임웹 기획안에서 워드프레스로 변경"** → 예산 때문입니다. 400만원에 예약·결제·알림톡을 넣으려니 SaaS 월 구독보다 오픈소스가 낫다고 판단하신 것입니다. 다만 워드프레스는 **초기 비용이 싼 대신 유지보수 부담이 이관**됩니다(플러그인 라이선스 갱신, 보안 업데이트, 충돌 대응). 그래서 공고 마지막에 "월 단위 유지보수 별도 논의"가 붙어 있습니다 — 이 부분을 미팅에서 정직하게 다뤄야 합니다.
- **"56개 페이지 복제는 과업 범위 제외, 내부 인력이 직접 수행"** → 예산을 아끼려는 합리적 판단입니다. 그러나 **복제 방식 자체가 잘못된 선택**이라 내부 인력의 부담이 오히려 커집니다(2장 ①). 범위를 늘리자는 게 아니라, **구조를 바꾸면 내부 인력의 일이 줄어든다**는 제안입니다.
- **"IT 프로젝트 관리 경험 없음" + "간단히 정리한 상태"** → 기술 검증 전 초안입니다. 가상계좌와 정원 마감의 충돌, 알림톡 심사 기간처럼 **개발 중에야 드러나는 문제**를 착수 전에 정리해 드려야 합니다.
- **"[1순위] 산출물 완성도"** → 금액보다 완성도를 앞에 두셨습니다. 싸게 만드는 것보다 **오픈 후 문제없이 돌아가는 것**을 원하십니다. 데모의 검토 항목 화면이 이 니즈에 직접 답합니다.
- **오프라인 미팅 · 인천 계양구** → 대면 설명을 선호하십니다. 데모를 함께 보며 설명하기 좋게 관리자 화면에 시뮬레이션(56개 일괄 수정)을 넣었습니다.

## 2. 웹 리서치 — 착수 전 확인이 필요한 항목

### ① 56개 페이지를 "복제"하면 유지보수가 감당되지 않습니다 ★

요구사항은 마스터 템플릿 1개를 만들고 **내부 인력이 복제**하는 방식입니다. 그런데 워드프레스에서 페이지를 복제하면(Duplicate Post 등) **원본과 연결이 끊긴 56개의 독립 페이지**가 됩니다.

커리큘럼 한 줄, 강사 프로필, 환불 규정이 바뀌면 **56개를 전부 열어 고쳐야 하고**, 하나라도 빠뜨리면 지역마다 다른 정보가 노출됩니다. 세미나는 회차마다 날짜·장소가 바뀌므로 수정은 상시 발생합니다.

**대안 (데모 적용):** **커스텀 포스트 타입(`seminar_region`) + 단일 템플릿.** 담당자는 지역명·날짜·장소·정원·사진만 입력하면 페이지가 자동 생성됩니다. **템플릿 1곳만 고치면 56개에 즉시 반영**되고, 입력 항목이 적어 교육도 더 쉽습니다. 관리자 화면에서 두 방식의 소요 시간을 시뮬레이션으로 비교할 수 있습니다(복제 약 1.9시간 vs CPT 1분).

> 이 제안은 **과업 범위를 늘리자는 것이 아닙니다.** 오히려 "56개 복제 작업"이라는 내부 인력의 반복 업무를 없애는 방향입니다.

### ② 가상계좌 입금 대기와 정원 60명 마감이 충돌합니다

요구사항에 **"정원 60명 도달 시 자동 마감"** 과 **"가상계좌 결제"** 가 함께 있습니다. 가상계좌는 입금까지 시간이 걸리므로:

- 미입금 예약을 정원에 **포함하면** → 실제로는 빈자리인데 마감으로 표시되어 신청을 놓칩니다
- **포함하지 않으면** → 60명 초과 입금이 발생해 환불 사태가 납니다

WooCommerce 기본 재고 홀딩(`ReserveStock` / "Hold stock (minutes)")은 **분 단위** 설정이라 며칠 걸리는 가상계좌와 맞지 않습니다.

**대안 (데모 적용):** **좌석 임시 점유 로직을 별도 구현.** 가상계좌 발급 시 좌석을 24시간 점유하고, 잔여 좌석을 `정원 − 확정 − 대기`로 계산합니다. 기한 초과 시 자동 해제되며 대기자에게 알림톡이 나갑니다. 데모의 회차 카드에 이 계산이 실제로 반영되어 있습니다.

### ③ 알림톡 템플릿 심사가 40일 일정을 밀어냅니다

카카오 알림톡은 **발신프로필(비즈니스 채널) 인증 → 템플릿 사전 심사**를 거쳐야 발송됩니다. 검수는 영업일 1~2일이지만 **실제 반영까지 최대 2개월**이 걸릴 수 있다고 안내됩니다. 더 중요한 것은 **광고성 문구는 반려**된다는 점입니다 — "지금 신청하면 할인" 같은 모객 문구는 알림톡으로 보낼 수 없습니다.

**대안 (데모 적용):** 착수 즉시 발신프로필 등록과 템플릿 심사를 신청하고 **개발과 병행**(일정표에 별도 트랙). 템플릿은 **정보성 문구로만** 작성하고 할인·프로모션은 친구톡/문자로 분리합니다. 심사 지연에 대비해 **SMS·이메일 폴백**을 붙여 알림톡 없이도 오픈 가능하게 합니다. 관리자 화면에 승인 4건 / 심사중 1건 / **반려 1건(광고성)** 사례를 실제로 넣었습니다.

### ④ 지역명만 바뀐 56개 페이지는 검색에서 대부분 밀립니다

56개 지역 페이지의 목적은 **지역 검색 유입**일 것입니다. 그런데 본문이 같고 지역명만 다르면 Google은 유사 페이지로 보고 **가장 완전한 하나를 표준(canonical)으로 선택**한 뒤 나머지는 크롤링을 줄입니다. 결과적으로 대부분이 색인에서 밀려 모객에 기여하지 못합니다.

**대안 (데모 적용):** 지역별 고유 정보(장소 사진·오시는 길·주차 안내·지역 후기·상권 특성)를 **필수 입력 항목**으로 만들고, 비어 있으면 **발행이 차단**됩니다. **Event 구조화 데이터(JSON-LD)** 를 자동 삽입해 검색결과에 일정·장소가 노출되게 합니다.

### ⑤ 플러그인 조합이 이 프로젝트의 최대 변수입니다

요구사항 3-1에 **"플러그인 간 충돌 방지 최적화"** 가 명시되어 있습니다. 실제로 예약 플러그인 + 국내 PG 플러그인 + 알림톡 연동 + 채널톡 스크립트 조합은 **결제 후처리(주문 상태 전환)** 지점에서 충돌이 잦고, 국내 PG 플러그인은 WooCommerce 최신 버전 대응이 늦는 경우가 있습니다.

**대안:** 플러그인을 최소 조합으로 확정하고 스테이징에서 **결제 전 구간을 리허설**합니다. 예약은 전용 플러그인 대신 **WooCommerce 상품 구조**로 단순화하고(회차=상품, 정원=재고), 알림톡은 플러그인 대신 **주문 상태 훅에 직접 연동**해 통제권을 확보합니다.

### ⑥ 회차가 쌓이면 상품이 매년 수백 개가 됩니다

56개 지역 × 회차를 상품으로 등록하면 1순회에 56개, 연 3회 순회 시 **연간 168개**가 쌓입니다. 지난 회차가 남으면 관리 화면이 지저분해지고 검색에 과거 일정이 노출됩니다.

**대안:** 세미나 종료 다음 날 **자동 아카이브**(상품 비공개 전환), 지역 페이지에는 "다음 회차 알림 신청"이 노출됩니다.

**리서치 출처:** [카카오 비즈니스 알림톡 심사 가이드](https://kakaobusiness.gitbook.io/main/ad/infotalk/audit) · [알림톡 템플릿 승인 가이드(비즈고)](https://blog.bizgo.io/howto/kakao-alimtalk-template-approval-guide/) · [알림톡 심사 반려 기준(그루비)](https://groobee.net/blog/카카오-알림톡-심사-왜-반려될까-통과-기준-정리/) · [WooCommerce ReserveStock 클래스](https://woocommerce.github.io/code-reference/classes/Automattic-WooCommerce-Checkout-Helpers-ReserveStock.html) · [Pending payment orders and held stock (Krokedil)](https://krokedil.com/pending-payment-orders-and-held-stock/) · [Google 표준화(canonicalization) 문서](https://developers.google.com/search/docs/crawling-indexing/canonicalization?hl=ko) · [워드프레스 페이지 복제 플러그인 안내](https://www.thewordcracker.com/basic/워드프레스-글페이지를-클릭-한-번으로-복제하기/)

## 3. 레퍼런스 3곳 — 무엇을 카피했나

브라우저로 직접 열어 computed style을 실측했습니다.

| 레퍼런스 | 실측값 | 카피한 요소 |
|---|---|---|
| **[패스트캠퍼스](https://fastcampus.co.kr/)** — 국내 교육 모객 | Pretendard · 잉크 `#171B1F` · 보조 `#747678`/`#A0A2A3` · **CTA 레드 `#FC1C49`** · h1 32/48 fw700 | **모객 랜딩 문법 전체**: 상단 고정 프로모션 바, 문제제기 → 커리큘럼 → 강사 → 후기 → FAQ → 최종 CTA 순서, 레드 CTA와 긴급감(마감 임박) 표기 |
| **[Luma](https://lu.ma/)** — 이벤트 예약 | 잉크 `#131517` · **알파 계조**(`.64`/`.36`/`.08`/`.04`) · h1 72px fw500 **ls −0.72px** | **정보 위계와 여백**: 회색을 별도 색으로 쓰지 않고 잉크 투명도로 계조를 만드는 방식, 타이트한 헤드라인 letter-spacing, 절제된 카드 |
| **[탈잉](https://taling.me/)** — 오프라인 클래스 | Pretendard · 잉크 `#000`/`#232426` · **핑크레드 `#FF2E5F`** · 배경 `#F5F5F9` | **오프라인 클래스 예약 UX**: 회차·정원 표기, 잔여 좌석 강조, 섹션 배경 교차(흰/회색) 리듬 |

**관찰 결과 — 국내 교육 플랫폼의 공통 문법:** CTA는 레드 계열(#FC1C49, #FF2E5F), 상단에 프로모션 바, 후기·수치로 신뢰 확보, 모바일에서 CTA가 항상 손에 닿는 위치. 이 문법을 그대로 따랐습니다.

**관리자 화면은 [WordPress Admin UI](https://wordpress.org/)를 카피**했습니다 — 사이드바 `#1D2327`, 프라이머리 `#2271B1`, notice 좌측 컬러 바, `wp-list-table` 스타일. 의뢰자께서 실제로 보게 될 화면이 이것이므로, 낯설지 않게 하는 것이 중요합니다.

**인터랙션·모션:** 히어로 패럴랙스(scroll×.22) · IntersectionObserver 리빌(stagger) · 히어로 통계 카운트업 · 좌석 게이지 0→목표 성장 · 수익 계산기 슬라이더 실시간 반영 + 숫자 트윈 · FAQ 아코디언(scrollHeight) · 예약 모달 3단계 진행바 · 56개 일괄 수정 시뮬레이션 프로그레스.

## 4. 화면 구성

```
index.html (모객 랜딩)
├─ 상단 프로모션 바 · 헤더(스티키)
├─ 히어로 — 패럴랙스 + 카운트업 4지표
├─ 문제 제기 3카드
├─ 커리큘럼 5강
├─ 강사 소개
├─ 수익 계산기 ★ (슬라이더 3축 → 실시간 개선 효과)
├─ 지역·회차 ★ (권역 필터 → 잔여 좌석 → 마감 처리)
├─ 후기 · FAQ · 최종 CTA
├─ 채널톡 위젯
└─ 예약 모달 3단계 (정보 → 결제수단 → 완료+알림톡 미리보기)

admin.html (워드프레스 관리자)
├─ 알림판 — 통계 4종 · 권역별 모집 현황 · 최근 신청
├─ 세미나 회차 — 진행예정/마감 탭 · 확정·대기·잔여
├─ 예약자 관리 — 명단 · CSV 반출 · 환불 처리 · 환불 규정표
├─ 알림톡 템플릿 — 승인 4 / 심사중 1 / 반려 1(광고성)
├─ 지역 페이지 ★ — 복제 vs CPT 비교 + 소요시간 시뮬레이션
└─ 검토 항목 — 리스크 6건 + 적용한 대안
```

## 5. 제안 스택과 견적 산정

**스택 (요구사항 준수)**
- **WordPress + WooCommerce** — 회차=상품, 정원=재고로 단순화해 플러그인 의존성 최소화
- **커스텀 포스트 타입** `seminar_region` / `seminar_session` + 단일 템플릿 (56개 페이지 자동화)
- **국내 PG** (이니시스/토스페이먼츠 등) — 카드 + 가상계좌
- **좌석 홀딩** — 가상계좌 발급 시 24시간 점유, 만료 시 자동 해제 + 대기자 알림 (커스텀 개발)
- **알림톡** — 플러그인 대신 주문 상태 훅에 직접 연동 + SMS/이메일 폴백
- **채널톡** 스크립트 · **SSL** · 관리자 2FA·로그인 URL 변경

**40일 일정 (공고 기간 준수)**

| 주차 | 작업 | 병행 트랙 |
|---|---|---|
| 1주 | 요구사항 확정 · 테마 선정 · 디자인 시안 | **알림톡 발신프로필·템플릿 심사 신청** |
| 2주 | 랜딩 퍼블리싱 · 수익 계산기 · 반응형 | 심사 대기 |
| 3주 | CPT 구조 · 지역/회차 관리 · 예약 UI | PG 가맹 심사 |
| 4주 | 결제 연동 · 좌석 홀딩 · 환불 로직 | 스테이징 결제 리허설 |
| 5주 | 알림톡 연동 · 관리자 · 엑셀 · **운영 매뉴얼** | 담당자 교육 |
| 6주(~40일) | QA · 부하 점검 · 이관 · 오픈 | — |

**견적: 일 100,000원 × 40일 = 4,000,000원 (VAT 별도)** — 공고 예산과 동일합니다.
"56개 페이지 복제"가 과업에서 제외되었지만, **CPT 구조로 만들면 복제 작업 자체가 사라지므로** 추가 비용 없이 56개 지역이 모두 동작합니다.
