우리 서비스의 고객 중 누구에게 집중해야 할까?
신규 유저? 충성 고객? 아니면 이탈 직전의 위험 고객?
그 답을 숫자로 정확히 보여주는 분석 기법이 RFM 분석이다.
Recency, Frequency, Monetary라는 세 가지 기준으로
고객의 행동을 숫자로 요약하고, 그 숫자를 바탕으로 마케팅 우선순위를 정하는 데이터 분석 기법이다.
RFM 지표를 통해 데이터 기반으로 고객을 분류하고 그에 맞는 전략을 세울 수 있다.
이 글에서는 RFM 분석의 개념부터 BigQuery를 활용한 실습, 그리고 고객 등급별 해석과 마케팅 전략까지 정리해 보았다.
RFM 분석은 고객의 구매 행동 데이터를 기반으로
사용자가 얼마나 최근에, 얼마나 자주, 얼마나 많은 금액을 구매했는지라는 세 가지 지표(Recency, Frequency, Monetary)를 기준으로 고객을 그룹화하는 기법이다.
| 지표 | 설명 | 예시 |
|---|---|---|
| Recency | 가장 마지막 구매가 언제였는가? | 최근 구매일 기준으로 얼마나 시간이 지났는지 |
| Frequency | 얼마나 자주 구매했는가? | 구매 빈도 |
| Monetary | 얼마나 많이 지출했는가? | 총 구매 금액 |
💡 이 세 가지 기준을 조합하면 고객을 숫자로 세분화할 수 있고,
충성도 높은 고객, 잠재 이탈 고객, 고가치 유저 등을 분류해 낼 수 있다.
예시 상황을 통해 RFM 지표를 더 이해해 보자.
| 사용자 | 최근 구매일(Recency) | 구매 횟수(Frequency) | 총 구매 금액(Monetary) |
|---|---|---|---|
| A | 3일 전 | 10회 | 1,200,000원 |
| B | 90일 전 | 1회 | 5,000원 |
| C | 7일 전 | 3회 | 60,000원 |
이 데이터를 기준으로 Recency는 적을수록 좋고, Frequency와 Monetary는 클수록 좋은 등급이다.
위와 같은 이유들로 RFM 지표를 사용하는 것이 중요하는다는 것을 생각해 볼 수 있다.
Recency: 최근 구매일로부터 며칠 지났는가?Frequency: 해당 사용자의 주문 횟수Monetary: 총 구매 금액WITH RFM AS (
SELECT user_id,
DATE_DIFF(CURRENT_DATE(), DATE(MAX(order_date)), DAY) AS Recency,
COUNT(*) AS Frequency,
SUM(order_value) AS Monetary
FROM project_name.dataset.rfm
GROUP BY user_id
),
NTILE(5)을 사용하여 각각 1~5점으로 등분하였다.
RFMScores AS (
SELECT user_id,
Recency,
Frequency,
Monetary,
NTILE(5) OVER (ORDER BY Recency DESC) AS RecencyScore,
NTILE(5) OVER (ORDER BY Frequency ASC) AS FrequencyScore,
NTILE(5) OVER (ORDER BY Monetary ASC) AS MonetaryScore
FROM RFM
)
RFM_Segment
RFMScore
SELECT *,
CAST(RecencyScore AS STRING) ||
CAST(FrequencyScore AS STRING) ||
CAST(MonetaryScore AS STRING) AS RFM_Segment,
(RecencyScore + FrequencyScore + MonetaryScore) AS RFMScore
FROM RFMScores;

출력 결과를 바탕으로
RFM_Segment에 따라 다음과 같은 해석을 해 볼 수 있다.
지금까지 RFM 지표란 무엇인지 살펴보고
빅쿼리 상에서 RFM 지표 계산 및 점수화 과정을 통해 도출된 결과를 해석해 보았다.
RFM 분석은 단순히 고객을 점수화하는 것이 아니다.
누가 진짜로 우리 브랜드를 지탱하고 있는지, 어떤 고객이 이탈 위험에 놓여 있는지, 그리고 어디에 자원을 집중해야 할지를 알려주는 나침반 같은 도구이다.
특히 마케팅 예산이 한정되어 있는 스타트업이나, CRM 캠페인을 설계해야 한다면
💡 RFM 분석은 가장 실용적인 고객 분석 방법 중 하나가 될 수 있다.