IELTS 플랫폼 전면 개편과 신규 상품 출시
수행 기간 · 역할 범위 · 산출물 · 협업
성과 측정 개편 '25.07~'26.06 (오픈 후 12개월 YoY) / 2차 고도화 '25.11~'26.06
역할 범위 전략 · 정보구조 · UX · 데이터 정의 · 정산 설계 · 데이터 이관 · 출시 후 분석·재기획 (전 과정 총괄)
스코프 두 개 서비스(B2C 인강 + 오프라인 어학원) · 어드민 신규 구축 · PG/정산 연동
협업 개편: 코어 9인 (기획 2 · 디자인 2 · 개발 3 · 컨텐츠마케팅팀 2) / 전체 관여 15인 · 6개 조직 (기획 · 디자인 · 개발 · 컨텐츠마케팅 · CS · 영상) / 고도화 코어 3인 (기획 1 · 개발 1 · 학원사업팀 1) · 전체 관여는 개편과 동일
워드프레스 기반·인강·어학원이 혼용돼 사용성·자동화가 제한적이던 노후 플랫폼을 타겟별로 분리하고 관리자 시스템은 새로 구축(1차)하여 개편 총괄. 개편 후 급증한 가입자 수 대비 소폭으로 증가한 매출 전환은 SQL·GA4 로그 분석으로 원인을 추적해 기초 학습 풀패키지를 신규 출시(2차)
1차 개편
수행 '24.03~'25.06
1차 고도화
수행 '25.07~'25.09
2차 고도화
수행·측정 '25.11~'26.06
워드프레스 노후 플랫폼, 정의되지 않은 데이터
IELTS 인강(사이트에서 사용자가 주도적 탐색 경험을 거쳐 결제까지 끝내는 구조)과 어학원(상담을 거쳐 등록하는 구조)은 사용자 여정과 니즈가 전혀 다른데, 하나의 워드프레스 사이트에 혼용돼 있었습니다. 반응형을 고려하지 않은 올드한 페이지로 모바일 UX가 제한적이었고, 관리자는 워드프레스 기본 구조에 두 서비스가 뒤섞여 있어 운영과 자동화를 얹을 수 없는 상태였습니다.
유입, 가입, 결제, 수강까지의 데이터가 정의돼 있지 않아 어디서 이탈하는지 아무도 설명하지 못하는 상태. 어학원 정산은 매달 손으로 4.5~5시간 걸리는 수작업
플랫폼 재구축과 데이터 분석 기반 상품 보완
- ① 전면 개편: 두 서비스를 깔끔히 분리하고 사용자 중심의 UX 재정의, 관리자 시스템은 기존 인프라를 쓰지 않고 새로 구축
- ② 매출 최적화: 개편만으로는 확 오르지 않는 매출을 데이터 인사이트를 통해 끌어올리기
이 프로젝트의 Product Owner로서 설계·실행·측정을 총괄.
세 차수로 나눠 실행
| 차수 | 범위 | 개발 로드맵 결정 기준 |
|---|---|---|
| 1차 개편'24.03~'25.06 | 관리자 신규 설계·구축·배포 사용자 화면을 인강·어학원으로 나눠 신규 구축·배포, 검수까지 직접 |
개발 난이도와 안정성. 운영 시스템이 먼저 서 있지 않으면 고객 화면을 열어도 뒤에서 수작업이 쌓임 |
| 1차 고도화'25.07~'25.09 | 관리자 정산 설계 · 백오피스 신규 기획 매출·유입 대시보드를 인강·어학원 각각 구축 |
오픈 후 실데이터가 쌓여야 정산 기준축과 지표 정의를 확정할 수 있었음 |
| 2차 고도화'25.11~'26.06 | 노베이스 전용 신규 상품 런칭 | 가입은 +42%인데 구매로 이어지지 않는 상태를 확인한 뒤 상품을 만듦 |
사용자 화면은 둘로 나누고, 백오피스는 하나로 뒀습니다. 사용자 여정은 다르지만 운영 조직은 하나였기 때문입니다.
| 사용자 화면 | 대응하는 백오피스 |
|---|---|
| 인강탐색부터 결제까지 사이트에서 완결 | 상품·옵션 / 결제(PG API 연동 · 부분취소 · 환불) / 배송 |
| 어학원상담을 거쳐 등록 | 인쿼리 / 등록·매출 입력 / 정산 귀속 판정 |
| 공통회원가입 · 마이페이지 | 회원·계정 정합성 / 게시판·후기 |
| 사용자 화면 없음 | 대시보드·통계: 매출 / 가입·인쿼리 |
주요 개편 범위 · 원본 상세 보기
- 인강·어학원 사용자 화면은 완전 분리, 관리자 시스템은 기존 인프라를 쓰지 않고 새로 구축해 하나로 통합: 사용자 여정은 다르지만 운영 조직은 하나였기 때문
- QA 시나리오를 직접 작성하고 스테이징에서 검수: 로직이 복잡하고 크리티컬한 기능 위주로 시나리오를 짜고, UX 정상 작동까지 확인한 뒤 배포
- 결제 단계를 5단계에서 3단계로로 축소, 카카오·네이버 소셜 로그인 도입 (가입 소요시간 70% 단축, 가입자 수 42% 증가)
- 유입, 가입, 결제, 수강, 재결제로 이어지는 데이터 흐름 및 구조 정의
- 수기로 작업된 어학원 매출 정산을 입력 시스템으로 전환 (아래 실행 디테일 A)
- 매출 · 가입·인쿼리 대시보드를 인강·어학원 각각 구축: 상품별·모듈별·국가별 매출과 유입 채널별 인쿼리를 같은 화면에서. 비교기간을 지정하면 동기간 대비까지
- 구조가 없던 기존 데이터를 신규 플랫폼으로 이관 (아래 실행 디테일 B)
- 공통 UI 오브젝트화 → 디자인·운영 리소스 30%+ 절감
- 간편 회원가입·결제·배송 어드민의 데이터 정합성 규칙 설계 (아래 실행 디테일 C)
- 관리자 배송 · 게시판 · 결제 설계로 운영 효율화
- 인강·어학원 각각 차별화된 메시지(슬로건)와 UX 설계로 각 서비스 고유의 Identity 확립
- 개편 직후 매출이 목표에 미치지 못함('25.08 기준): 가입은 +42%인데 구매로 이어지지 않는 상태
- 원본 데이터를 SQL·GA4로 3단계 추적 분석 (아래 참조)
- 기초에 관심은 몰리는데 딱 맞는 상품이 없는 구간: 완전 초급(노베이스)에 수요는 있는데 니즈를 충족하는 상품은 없음
- 경쟁사 분석: 목표 점수대별 상품은 있으나 노베이스 전용 상품은 확인되지 않음
- 노베이스 전용 풀패키지를 새로 기획해 런칭
SQL·GA4 로그 분석: 가설을 세우고 반증하며 좁혀간 3단계
- 수강신청 5단계에서 3단계로
- 흩어진 상담 경로를 하나로 통합
- 응시장·자습실·성적표 등 실사 증거 강화
- 고득점 사례·후기를 상단에 배치
- 1:1 첨삭·전담강사·CDT를 증거로 연결
- 주요 상품을 메인에서 바로 비교·선택
로그인 벽은 “회원 수”가 아니라 전환 기여도로 결정
세부 정책·예외 조건 · 원본 상세 보기
무엇을 집중하게 할 것인가
경쟁사에 같은 상품이 있는가, 우리만의 차별화된 서비스가 있는가, 고객에게 어떤 메시지를 소구할 것인가. 세 가지 판단 기준에 따라 화면을 설계했습니다.
- 수강신청 5단계에서 3단계로 축소: 수강반 리스트 · 수강반 상세 · 상세옵션 선택 · 수업 스케줄 · 결제를 수강반 리스트 · 수강반 상세 · 결제로 압축
- 상담 경로를 1개로 통합: 무료 수업신청 · 방문 상담 · 간편 문의 · 간편 상담이 각각 다른 경로로 흩어져 고객이 차이를 알 수 없었음. 경로는 하나로 합치고 유형은 방문상담 · 청강신청 · 간편상담으로 구분. 메인과 수강반 상세에 무료 상담 신청을 주목도 있게 노출
- 실사 이미지로 신뢰 확보: 실제 IELTS 응시장 · 자습실 · 모의고사 시험 · 수강생 성적표
- "인강만으로 고득점이 되나"라는 의심을 먼저 해소: 인강만으로 고득점한 실제 사례와 합격 후기를 상단에 주목도 있게 배치하고, 이어서 1:1 첨삭 · IELTS 전담 강사 이력 · CDT 모의고사 무제한 등 차별화 요소를 노출
- 계열사 브랜드로 신뢰 보강: 유학 브랜드 1위 계열사임을 어필
- 주요 상품을 메인에 전략적으로 노출
개편 전 진단: 무엇이 이탈을 만들고 있었나
- 브랜드를 관통하는 메시지가 약함: 타사와 중복되는 Copy가 많아 무엇을 가장 잘하는지 드러나지 않음
- 텍스트 밸런스가 맞지 않고 폰트에 다양한 컬러 사용 → 산만함·주목도 저하, 이탈
- 홍보 카테고리마다 Copy를 뒷받침할 근거가 없음
로그인 벽을 어디에 세울 것인가
후기·자료실은 만들기는 쉬운데 어디까지 비회원에게 열지가 어렵습니다. 회원 수를 늘리려면 다 막는 게 유리하고, 전환을 늘리려면 다 여는 게 유리합니다. 콘텐츠를 전환에 기여하는지로 나눠서 벽의 위치를 정했습니다.
| 콘텐츠 | 열람 권한 | 그렇게 정한 이유 |
|---|---|---|
| 수강후기 · 성적후기 | 비회원 허용 | 상품 홍보로 이어져 전환에 직접 기여 |
| 무료 학습자료실 | 비회원 허용 | 유입 자산 검색으로 들어온 사용자를 막지 않음 |
| 시험장 후기 | 회원 전용 | 전환 가능성이 낮고 정보만 취득 후 이탈 |
| 후기 편집 · 삭제 | 관리자 전용 | 작성 후 악의적 수정을 막고 게시글 관리를 일원화 |
후기를 상품으로 잇기
- 리스트, 상세 뎁스를 제거: 기존에는 클릭해야 내용을 볼 수 있었음. 평점·수강상품·타이틀을 리스트 1차 정보로 올림
- 중요도에 따라 시선 처리를 설계 - 성적, 태그, 제목 순으로 읽히도록 UI 기획. 필터도 같은 축을 따라 점수·달성기간·태그·시험장소로 맞춤
- 태그셋을 인강·어학원으로 분리: 인강은 노베이스·독학·환급성공, 어학원은 오전종합반·무제한첨삭·원어민스피킹
기존 중복 계정은 억지로 합치지 않음
- 잘못 합치면 수강권·결제 이력이 다른 사람에게 붙을 위험
- 기존 계정은 그대로 유지
- 번호 인증 캠페인은 후속 과제로 분리
세부 정책·예외 조건 · 원본 상세 보기
같은 사람인지 어떻게 판정할 것인가
구 사이트는 가입 시 별도 인증 절차가 없어 중복 번호와 유효하지 않은 이메일 계정을 가진 회원이 다수였습니다. 기존 회원은 유효한 고유값으로 특정하고, 신규 회원은 간편 가입으로 이탈을 줄여야 하는 상황이었습니다.
소셜 로그인을 붙이는 일은 화면 작업처럼 보이지만, 실제로 정해야 하는 건 동일인 판정 규칙입니다. 이걸 안 정하면 한 사람이 계정 N개를 갖게 되고, 수강 이력과 결제 이력이 흩어집니다. 휴대폰 번호와 이메일 주소를 고유값으로 특정하고, 기존 회원의 소셜 로그인·같은 메일 주소의 다중 소셜 로그인 등 다양한 케이스에서 정합성이 틀어지지 않도록 Flow chart와 정책을 설계했습니다.
- 판정 기준을 두 값으로 고정: 동명이인은 이메일 계정 + 연락처로 구분. 한 번호로 여러 계정을 만들 수 없게 막고, 중복 시 기존 계정 로그인만 허용
- 연동 방향을 비대칭으로 설계 - 동일 이메일 기준 일반가입 후 소셜 연동은 허용, 소셜로 먼저 가입한 뒤 일반가입은 불가. 채널마다 신원 확인 강도가 다르기 때문 (구글·카카오는 닉네임을 이름으로 쓸 수 있어 특정이 어려움)
- 인증 강도를 상황별로 조정: 소셜 가입 시 입력한 이메일이 일반가입(구 회원) 계정과 중복이면 기존 계정 1회 로그인으로 본인 확인. 다른 소셜 계정과 중복이면 추가 소셜 연동으로 처리 (카카오 지메일로 가입한 뒤 구글 지메일로 로그인하는 경우)
기존 중복 번호는 병합하지 않았습니다
리뉴얼 이전에 이미 같은 번호로 만들어진 A·B 계정이 존재. 여기서도 억지로 합치지 않는 쪽을 선택
- 기존 계정은 통합하지 않고 각각 수강 이력 유지: 잘못 합치면 수강권이 사라지거나 남의 이력이 붙음
- 대신 번호 변경 유도 캠페인을 2차 과제로 분리: 대상자 로그인 시 본인 번호 인증 팝업을 띄우고, 인증이 완료될 때까지 노출을 유지
- 신규 가입은 그 시점부터 번호를 고유값으로 강제
입력 시점에서 막은 3가지 오류
배송은 취소 시점에 따라 상태를 자동 전이
세부 정책·예외 조건 · 원본 상세 보기
관리자 · 결제: 정산 정합성을 입력 시점에 지키기
어학원 결제는 대부분 PG 연동 없이 단말기로 이뤄져 엑셀 수기 관리에 의존하고 있었습니다. 회원정보와 수강·결제 정보가 시스템에 연결돼 있지 않아 전년도 매출과 수강생 현황을 비교 분석할 수단 자체가 없는 상태였습니다.
- 어학원: 엑셀 수기 관리를 관리자에서 매출 DB를 관리하는 구조로 전환. 등록 화면에 검증을 걸어 들어오는 데이터부터 맞춤
- 인강: PG사 사이트에서만 보던 결제 데이터를 API로 연동해 관리자에서 모니터링하고, 결제상태(부분취소·환불)까지 처리 가능하도록 수정
어학원 등록 화면에 적용한 검증 규칙
- 원 결제 없는 환불 차단: 매입금액이 (-)인 행 중 승인번호·거래일자가 일치하는 (+) 행이 없으면 등록 거부. "결제취소건 중 최초 결제내역이 존재하지 않는 건이 있습니다"
- 중복 등록 차단: 승인번호와 매입금액이 모두 일치하는 기존 건이 있으면 거부
- 온라인 결제건 삭제 차단: PG 연동 데이터는 수정·삭제 불가, 수기 등록건만 삭제 가능
- 결제 데이터와 수강 정보를 매핑: 회원정보·실결제금액·결제수단·결제일자·결제상태 등 결제 메타데이터와 수강상품·옵션·수강기간 등 수강 메타데이터를 연결. 가입, 수강신청, 수강까지 하나의 데이터 흐름으로 모니터링할 수 있는 시스템으로 설계
관리자 · 배송: 결제와 배송 상태를 자동으로 묶기
배송은 결제가 취소되면 따라서 멈춰야 함. 그런데 언제 취소됐느냐에 따라 해야 할 일이 다름. 시점을 셋으로 나눠 자동 연동 규칙을 수립. 유료 플러그인으로 운영하던 송장 관리도 자체 구축해 연동을 자동화
| 취소 시점 | 배송 상태 처리 |
|---|---|
| 송장 등록 전 | 배송상태 자동 배송취소 |
| 송장 등록 후, 발송 전 | 배송중 → 배송취소로 변경 가능 |
| 발송 후 (반송 확인) | 배송완료 → 반품완료 |
- 비가역 상태를 고정: 배송완료 상태에서는 상태값 변경 불가
- 상태와 필드를 연동: '해당없음(배송불필요)' 선택 시 송장번호 입력 필드 비활성화
- 매칭 키를 고유값으로 교체: 송장 일괄 업로드 매칭을 회원명+주문번호로 운영. 동명이인과 번호 변경에 취약한 이슈를 해소
- 9월 결제·10~12월 수강도 9월에 몰림
- 월별 수강생 수와 매출이 어긋남
- 환불월이 달라지면 소급 정산 문제 발생
- 수강시작월·종료월 기준으로 월별 귀속
- 정상 매출과 환불 경로 분리
- 사업팀/TNC 귀속을 각 경로에 명시
개발 전에 엣지 케이스 6종을 규칙으로 고정
세부 정책·예외 조건 · 원본 상세 보기
어학원 결제는 PG 연동이 아니라 학원 현장 단말기 결제가 대부분(약 95%)입니다. 결제 후 관리자 결제 입력폼은 회원의 수강상품·실결제액·결제일자·결제상태를 저장하는 구조인데, 정산은 이것과 다른 구조를 띠고 있었습니다.
- 인센티브가 두 조직으로 안분됨: 신규 결제·전액 환불은 사업팀, 재등록·부분 취소는 TNC 강사팀으로 귀속. 정산은 곧 두 팀의 실적을 가르는 일이었음
- 매출 귀속이 결제일로 정해지지 않음: 수강시작월 · 수강기간 · 수강취소시점에 따라 달라짐
- 기타 결제는 매칭할 상품 값이 없음: 응시료·모의고사·교재 등은 관리자에 대응하는 결제상품이 없어 별도 입력폼으로 관리 중이었음
이 구조를 매달 엑셀에 수기로 옮겨 안분했고, 사업팀과 TNC팀의 매출을 사람이 대조하는 데만 4.5~5시간이 들었습니다. 반 변경과 부분 환불이 월 경계에 걸리면 어느 팀 실적으로 잡을지 판단도 갈렸습니다. 관리자에서 가능한 만큼 자동화하는 정산 시스템이 필요한 상황이었습니다.
첫 설계(v1.0)가 안 되는 이유
v1.0은 결제 상태를 기준축으로 놓았습니다. 결제 시점에 이미 기록이 남는 값이기 때문입니다. 그런데 결제 시점 기준이면 9월에 결제하고 10~12월에 수강하는 회원이 9월 매출에만 잡힙니다. 월별 수강생 수와 매출이 서로 어긋나고, 환불은 발생 월이 또 달라 같은 경로에 두면 월별 정산이 틀어집니다. 이미 마감한 월의 정산은 소급해서 되돌릴 수 없고, 기준이 어긋났다는 사실은 몇 달 치가 쌓인 뒤에 드러납니다.
v2.0에서 바꾼 것
- 기준축 전환: 정산은 "언제 결제했나"가 아니라 "언제 수강 중이었나" 기준이어야 월별 귀속이 맞음. 결제상태 → 수강기간(수강시작월·종료월)을 출발 노드로 변경
- 매출·환불 경로 분리: 매출월과 환불월에 각각 매출귀속(사업팀/TNC)을 붙여 이원화. v1.0에서 8개가 한 덩어리였던 매출구분을 정상 매출과 환불로 갈라냄
- 수강기간의 독립성 고정: 매출귀속·매출구분·결제상태값에 영향받지 않도록 규정. 다운그레이드로 환불월에 -금액이 생겨도 수강기간은 변하지 않음
엣지 케이스 6종 정의
같은 "반 변경 200만원"인데 월이 같은지 다른지에 따라 처리가 갈림. 개발 착수 전에 6개 케이스를 정의해 전달
| 케이스 | 상황 | 집계 규칙 |
|---|---|---|
| 1 | 9월 신규 700 → 9월 반 변경 -200 | 별도 '변경' 행을 만들지 않고 '신규'에 증감 반영 (신규 500) |
| 2 | 9월 신규 700 → 10월 반 변경 -200 | 10월에 '변경 -200'으로 별도 계상 (월이 다르므로) |
| 3 | 9월 신규 700 이후 10월 반 변경 + 부분 환불 | 10월 이후에도 수강이 남아 있고 (+)금액인 경우에 한해 변경으로 처리 |
(6개 케이스 중 3개 발췌)
자동화하지 않기로 한 구간
억지 매핑 대신 한 선택
세부 정책·예외 조건 · 원본 상세 보기
기존 플랫폼에는 상품, 옵션, 강좌, 강의로 이어지는 구조 체계가 없었습니다. 옵션·강좌·강의·결제가 서로 연결되지 않고 각각의 테이블로 흩어져 있었으며, 코드도 꼬여 있어 따로 발라낼 수 없는 상황이었습니다. 상품 데이터는 구조상 존재하지도 않았습니다. 신규 플랫폼은 이 계층을 전제로 설계돼 있으니, 옮길 대상과 받을 그릇의 모양이 애초에 달랐습니다. 게다가 릴리즈까지 3개월밖에 남지 않아 현실적인 해결책을 찾아야 했습니다.
선제 설계: 매핑 필드 입력란 활성화
어드민 상품·옵션 관리 화면에 구 사이트 옵션 ID를 매핑하는 필드를 추가. 이관 시점에 신·구 데이터를 대조할 연결고리를 미리 만들어 상당 부분 싱크 확보
이관하지 못한 데이터
- 수강이력 · 결제이력 · 모의고사 첨삭 응시권: 원본이 구조화돼 있지 않아 신규 구조에 매핑 불가
- 잘못 이관되면 기존 수강생의 이용권·수강 상태가 어긋나 대규모 CS와 신뢰도 하락으로 직결되는 항목
억지 매핑 대신 한 선택
- 범위 재정의: 운영자들과 마이그레이션 데이터 범위를 다시 그음. 무엇을 옮기고 무엇을 안 옮길지부터 확정
- 정책으로 보상: 매핑 불가 항목은 기존 이용권 리셋 후 신규 이용권 재부여로 합의. 데이터를 옮기는 대신 사용자가 가진 권리를 보전하는 쪽으로 방향 설정
- 선제 안내: 리뉴얼 공지사항으로 변경 사항을 오픈 전에 고지
- 대응 표준화: FAQ·응대 가이드를 미리 정리해 CS 편차 제거
결과
- 기존 수강생의 혼란·불만 리스크를 정책과 사전 커뮤니케이션으로 흡수
- 이관 관련 대규모 CS 없이 오픈: 신뢰도 하락 없이 전환 완료
여기서 배운 것
개편 후 신규 가입 +42% · 체류시간 36초에서 51초로,
신규 상품 출시 후 매출 +32%
측정 2025.07 ~ 2026.06 (YoY)
(4.5h에서 30분으로 · 약 10배)
1차 고도화 '25.07~'25.09
어학원 55초에서 80초로 (+45%)
메인 23초에서 45초로 · 12초에서 68초로
'25.11~'26.06
전체 매출에서 차지한 비중
기초 상품군의 매출 비중과 수강률, 상세 페이지의 클릭·구매 전환을 함께 비교해 기초 학습 풀패키지를 구성했습니다. 신규 상품은 IELTS 인강 전체 매출의 35.6%를 차지했습니다('25.11~'26.06 · '26.06 말 기준).
정산 설계와 데이터 이관에서는 실제 운영 상황에 맞춰 100% 자동화를 목표로 두지 않고, 어디까지 자동화할지의 경계를 먼저 정했습니다. 시스템이 판정할 수 없는 구간은 인정하고, 수동 입력과 입력 정책으로 정합성을 확보했습니다.