기업 고객 페르소나 분석

Data Analysis & Visualization

고객 데이터를 전처리하고 그룹으로 분류하여 이탈 패턴을 시각화하고 분석했습니다.

PythonPandasMatplotlibSeabornMySQL

핵심 기여 사항

  • Pandas를 활용하여 복수 파일에 걸친 사용자 데이터 통합 및 정규화
  • 성별, 나이, 이용 횟수 기반으로 고객 그룹 분류 및 페르소나 정의
  • Seaborn, Matplotlib을 활용하여 페르소나별 이탈률 및 행동 특성 시각화

도전 과제: 데이터 기반의 핵심 고객 페르소나 정의

스타트업 한달어스는 빠른 성장을 위해 마케팅 전략을 고도화할 필요가 있었지만, 어떤 고객에게 집중해야 할지에 대한 데이터 기반의 명확한 기준이 부족했습니다. 핵심 과제는 흩어져 있는 고객 데이터를 통합하고 분석하여, 비즈니스 목표에 부합하는 핵심 고객 페르소나(Persona)를 정의하고, 서비스 개선을 위한 구체적인 인사이트를 도출하는 것이었습니다.

해결 전략: 데이터 정제, 고객 세분화 및 시각화 파이프라인 구축

Python의 Pandas 라이브러리를 사용하여 여러 소스에 분산된 고객 및 주문 데이터를 통합하고 정제했습니다. 이후, 구매 빈도, 참여 프로그램 유형, 인구통계학적 특성 등 다양한 기준을 적용하여 고객을 여러 그룹으로 세분화했습니다. 각 그룹의 특징을 명확히 파악하기 위해 Matplotlib와 Seaborn을 활용하여 분석 결과를 다각도로 시각화했습니다.

다이어그램을 불러오는 중...

[그림 7] 고객 페르소나 분석 파이프라인

데이터 분석 결과, VIP 고객 그룹은 20-30대가 아닌 40대 후반 여성이라는 예상 밖의 사실을 발견했습니다. 또한, 라이트 유저 그룹은 단순히 가격에 민감한 것이 아니라, 독서 브런치 글쓰기와 같은 특정 자기계발 목적을 가진 경우가 많다는 점을 파악했습니다.

# 예시: Pandas를 활용한 고객 세분화 코드
import pandas as pd
# 고객 데이터와 주문 데이터 로드
customers = pd.read_csv('customers.csv')
orders = pd.read_csv('orders.csv')
# 데이터 통합
full_data = pd.merge(customers, orders, on='customer_id')
# 실구매 횟수 계산
purchase_counts = full_data.groupby('customer_id')['order_id'].count().reset_index()
purchase_counts.rename(columns={'order_id': 'purchase_count'}, inplace=True)
# 고객 데이터에 구매 횟수 병합
data_with_counts = pd.merge(customers, purchase_counts, on='customer_id')
# VIP 고객 정의 (예: 구매 횟수 상위 10%)
vip_threshold = data_with_counts['purchase_count'].quantile(0.9)
vip_customers = data_with_counts[data_with_counts['purchase_count'] >= vip_threshold]
print("VIP 고객 연령대 분포:")
print(vip_customers['age_group'].value_counts(normalize=True))

결과 및 성과

데이터 분석을 통해 두 개의 핵심 고객 페르소나(성장하는 40대 여성 강사, 커리어 전환을 꿈꾸는 30대 마케터)를 성공적으로 정의하고, 각 페르소나에 맞는 맞춤형 마케팅 전략과 서비스 개선안을 제시했습니다. 이 분석 결과는 기업이 막연한 추측이 아닌, 데이터에 기반하여 비즈니스 의사결정을 내리는 데 중요한 기준점을 제공했습니다.