12CODE
지금 읽는 곳 RFM 계산에 필요한 최소 데이터는 무엇인가 1 / 6
12code 라이브러리 아티클 표지. 데이터 요건 및 SQL 마이닝 인프라: 자사몰 구매 테이블에서 유저별 고유 ID 기준 최신 구매일, 누적 구매 횟수, 총 결제 금액 데이터 파싱 쿼리

데이터 요건 및 SQL 마이닝 인프라: 자사몰 구매 테이블에서 유저별 고유 ID 기준 최신 구매일, 누적 구매 횟수, 총 결제 금액 데이터 파싱 쿼리

RFM은 개념이 아니라 쿼리입니다 — 구매 테이블 하나만 있으면 세 값을 바로 뽑아낼 수 있습니다.

이 과목 02 / 11편 고급 3분
과목 ID121
트랙STEP 3 고급·전략
모듈3-3. 그로스해킹·CRM 전략
레슨02
난이도고급
플랫폼CRM(RFM 분석)
발행일2026-08-29
검토일2026-08-29
관련 과목119 · 120 · 122
출처2건
핵심요약5개
01

RFM 계산에는 구매 트랜잭션 테이블에서 유저 고유 ID, 결제일시, 결제금액 세 컬럼만 있으면 된다

02

GROUP BY 유저ID 기준으로 MAX(결제일시), COUNT(주문건수), SUM(결제금액)을 뽑는 것이 기본 쿼리 구조다

03

취소·환불 건을 원본 상태 그대로 포함하면 Monetary가 부풀려지므로 결제 상태 필터링이 선행돼야 한다

04

분석 기준일(오늘 날짜)과 최신 구매일의 차이를 계산해야 Recency를 일수로 환산할 수 있다

05

회원 탈퇴·비회원 주문 등 고유 ID가 끊기는 케이스를 어떻게 처리할지 먼저 정책으로 정해야 한다

01

RFM 계산에 필요한 최소 데이터는 무엇인가

RFM을 뽑으려고 별도 설문이나 새 트래킹 도구가 필요하지 않습니다. 자사몰의 주문(order) 또는 결제(payment) 테이블에 유저별 고유 ID, 주문 일시, 결제 금액, 결제 상태(완료/취소/환불) 컬럼만 있으면 세 지표를 모두 계산할 수 있습니다. 회원 가입 시 발급되는 유저 고유 ID(user_id)가 기준 키가 되고, 이 ID로 주문 테이블을 GROUP BY 해서 고객 단위로 값을 집계하는 것이 전체 쿼리의 뼈대입니다.

02

기본 쿼리 구조는 어떻게 짜는가

가장 단순한 형태의 쿼리는 다음과 같은 구조를 가집니다.

SELECT
  user_id,
  MAX(order_date) AS last_purchase_date,
  COUNT(order_id) AS purchase_count,
  SUM(payment_amount) AS total_spent
FROM orders
WHERE order_status = 'completed'
GROUP BY user_id;

MAX(order_date)가 Recency 계산의 기초 데이터(최신 구매일)이고, COUNT(order_id)가 Frequency, SUM(payment_amount)가 Monetary의 원시값입니다. 여기서 Recency는 "최신 구매일" 자체가 아니라 "오늘 날짜 - 최신 구매일"로 환산한 경과 일수를 써야 값의 방향(작을수록 좋음)이 F·M과 자연스럽게 맞습니다. 이 환산은 DATEDIFF나 동등한 날짜 함수로 별도 컬럼을 만들어 처리합니다.

03

취소·환불을 걸러내지 않으면 생기는 문제

주문 테이블에는 결제 완료 건뿐 아니라 취소·환불·미결제 건도 함께 쌓여 있는 경우가 많습니다. WHERE절에서 결제 상태를 필터링하지 않으면 Monetary가 실제보다 부풀려지고, Frequency도 실제로 산 적 없는 주문까지 횟수에 잡힙니다. 특히 환불은 결제 자체는 완료됐다가 나중에 취소되는 경우가 많아서, 주문 시점 상태가 아니라 "현재 시점 최종 상태"를 기준으로 필터링해야 합니다. 부분 환불(금액 일부만 환불)이 있는 쇼핑몰이라면 결제금액에서 환불금액을 차감한 순결제액 컬럼을 별도로 관리하는 것이 정확도를 높입니다.

04

고유 ID가 끊기는 경우를 어떻게 다룰 것인가

회원 탈퇴 후 재가입, 비회원 주문 후 회원 전환, SNS 로그인 연동 변경 등으로 같은 사람이 여러 개의 user_id로 흩어지는 경우가 실무에서 자주 생깁니다. 이 경우 RFM 집계가 한 사람을 여러 명으로 쪼개서 계산하게 되어 세그먼트 판정이 왜곡됩니다. 이메일이나 휴대폰 번호처럼 비교적 안정적인 식별자를 기준으로 ID를 병합하는 정책을 먼저 세워야 하며, 병합이 어려운 경우에는 "탈퇴 이력이 있는 계정은 별도 표시"처럼 최소한의 예외 처리 규칙이라도 정해두는 것이 낫습니다. 이 정책을 세우지 않고 바로 스코어링(3강)으로 넘어가면, 실제로는 활성 고객인데 이탈 등급으로 잘못 분류되는 사례가 반복적으로 생깁니다.

05

분석 기준일을 언제로 고정할 것인가

Recency 계산의 기준점(오늘 날짜)을 매번 쿼리 실행 시점으로 잡을지, 매일 특정 시각(예: 새벽 배치 시점)으로 고정할지도 미리 정해야 합니다. 기준일이 흔들리면 같은 고객의 R값이 하루 단위로 들쭉날쭉해지고, 등급 경계에 걸친 고객이 매일 다른 세그먼트로 왔다갔다하는 현상(경계 흔들림)이 생깁니다. 대부분의 실무 파이프라인은 자정 직후 배치로 전날까지의 데이터를 기준으로 하루 한 번만 RFM 값을 갱신하는 방식을 씁니다. 이 배치 주기는 8강에서 다루는 자동화 동기화 파이프라인과 그대로 이어집니다.

06

쿼리 성능은 언제 문제가 되는가

고객 수가 수만 명대까지는 위 쿼리를 그때그때 돌려도 크게 무리가 없지만, 주문 테이블이 수백만 건을 넘어가면 GROUP BY 집계 자체가 무거워집니다. 이 시점부터는 매번 원본 테이블을 통으로 스캔하지 않고, user_id·order_date에 인덱스를 걸거나 RFM 결과만 담는 별도 요약 테이블(예: user_rfm_daily)을 두고 매일 배치로 갱신하는 구조로 바꾸는 것이 일반적입니다. 요약 테이블을 따로 두면 CRM 툴이나 광고 플랫폼과 연동할 때도 원본 주문 테이블에 매번 무거운 쿼리를 날리지 않고 이 요약 테이블만 읽으면 되므로, 8강에서 다룰 자동화 동기화 파이프라인의 부하도 크게 줄어듭니다. 요약 테이블 설계는 다음 강의부터 이어지는 스코어링·세그먼트 분류 작업 전체의 기반이 되므로, 이 시점에 컬럼 구조를 한 번 더 점검해두는 편이 좋습니다.

다음 행동

지금 쓰는 주문 테이블에서 위 쿼리 구조를 그대로 적용해보고, 결제 상태 필터링 전후로 고객 수·평균 결제금액이 얼마나 달라지는지 먼저 확인해보세요 — 그 차이가 크다면 3강의 점수 기준을 잡기 전에 데이터 정제부터 다시 해야 합니다.

다음 글 · 레슨 03→RFM 스코어링 가이드라인: 1점부터 5점까지 비즈니스 단가 구조에 맞는 정규분포 기준점 수립 및 등급 스케일링 설정

← 이전 글 · 레슨 01 고객 가치 등급화의 고전이자 핵심: 최근성(Recency), 빈도(Frequency), 금액(Monetary) 지표를 활용한 정량적 고객 세그멘테이션 원리

출처

facts 항목 기준 · 본문 인라인 미표기2건

플랫폼 기능·심의 기준·가격·법률은 바뀝니다. 이 글은 2026-08-29에 위 출처를 기준으로 확인했습니다.

CHALLENGE

배운 걸 실전 문제로 확인

카테고리별 Level Test로 실무 레벨을 점검해보세요.

챌린지 보기 →
이 과목의 게시글11편
01고객 가치 등급화의 고전이자 핵심: 최근성(Recency), 빈도(Frequency), 금액(Monetary) 지표를 활용한 정량적 고객 세그멘테이션 원리02데이터 요건 및 SQL 마이닝 인프라: 자사몰 구매 테이블에서 유저별 고유 ID 기준 최신 구매일, 누적 구매 횟수, 총 결제 금액 데이터 파싱 쿼리03RFM 스코어링 가이드라인: 1점부터 5점까지 비즈니스 단가 구조에 맞는 정규분포 기준점 수립 및 등급 스케일링 설정048대 핵심 고객 세그먼트 매칭: [VIP 고래 고객], [이탈 위기 챔피언], [신규 유입 주니어], [놓치면 안 되는 과거 고객]의 입체적 분류 정의05세그먼트별 차등 마케팅 오퍼 설계: VIP에게는 품격 있는 혜택(선출시 알림)을, 이탈 위기 유저에게는 파격적인 비용 혜택(50% 복귀 쿠폰) 차등 배정06[실패 사례 분석] 획일화된 적립금 지급으로 인한 마진 누수: 전 회원 대상 동일 쿠폰을 발행했다가, 어차피 살 VIP 고객에게 마진만 깎아주고 이탈 고객은 못 잡은 실패 복구07RFM 등급 이동 추이(Migration Matrix) 분석: 지난달 '신규' 등급 유저가 이번 달 '단골'로 올라갔는지, '이탈'로 떨어졌는지 등급 전이 속도 트래킹08자동화 오디언스 동기화: SQL로 분류된 RFM 세그먼트 데이터를 CRM 메시징 툴 및 메타 광고 맞춤 타겟으로 매일 새벽 자동 동기화하는 파이프라인09실험 및 판정 기준: 무작위 타겟 마케팅 집행 대조군 vs RFM 정밀 세그먼트 기반 맞춤 마케팅 집행군의 캠페인비 대비 순이익(ROI) 통계적 우위 검증10업종별 RFM 변형 설계: 결제 주기가 긴 가구/가전 업종의 R(최신성) 가중치 조정 및 일일 결제가 일어나는 식품 쇼핑몰의 F(빈도) 마지노선 변경 규칙11[레슨] AI 기반 예측 RFM(Predictive RFM)의 도입: 머신러닝 알고리즘을 활용해 "향후 30일 내 이탈 확률이 80% 이상인 유저" 사전 선점 기법 수립 과목 전체 보기 →

MKT TOOLS

실무자를 위한 무료 도구

카피 글자수 검사, CPC·ROAS 계산기, UTM 생성기까지.

워크스페이스 열기 →