본문 바로가기
Skill_Excel&DataAnalytics

[Skill_데이터분석] 데이터 분석 실무의 현실: 수집·전처리·조인이 절반을 먹는다

by Forever_Student 2025. 10. 2.
반응형

고객 여정 타임라인: 세션 방문에서 구매·쿠폰 사용으로 이어지는 흐름과 요약 테이블
고객 여정 분석 과정에서 가장 중요한 것은 분석보다 데이터 수집-전처리-조인 과정이다.

1. 이론에서 실무로: '분석'보다 먼저 오는 일들

데이터 분석 업무를 맡고 가장 먼저 겪은 어려움은 모델링도, 시각화도 아니었다. 실제로는 데이터를 모으고 정리하는 수집·전처리 단계가 가장 힘들고 시간이 많이 들었다. 회사 안팎에서 매일같이 수집되는 수많은 로그와 테이블 속에서, 내가 보고 싶은 값을 꺼내기 위해 서로 다른 원천을 하나의 스토리로 엮어내는 작업이 생각보다 까다로웠다.

 

LG전자 홈페이지의 데이터를 분석한다고 해보자. 예를 들어,

'특정 유입 경로로 들어온 고객은 구매까지 평균 몇 회 방문하고, 보유 쿠폰은 어떤 방식으로 사용하는가?'

라는 질문에 답하려면 최소한 다음 세 가지 데이터가 필요하다.

  • 방문 데이터(세션·유입 경로·방문일자·방문횟수) - 보통 Google Analytics(GA) 등 웹 로그
  • 구매 데이터(구매일·금액·수량) - 주문 DB
  • 쿠폰 데이터(쿠폰 유형·발급/사용 여부·할인액) - 프로모션 DB

데이터의 출처나 유형보다 중요한 점은 이들 데이터가 한곳에 있지 않다는 점이다. 방문 데이터는 GA, 구매와 쿠폰 관련 데이터은 사내 DB에 저장되어 있을 가능성이 높다. 심지어 구매 데이터와 쿠폰 데이터도 서로 다른 DB에 있을 수도 있다. 이 경우 데이터 추출부터 여러 DB에서 진행되고, 그다음부터는 각각의 DB에서 가져온 데이터를 병합/조인(Join)하는 전쟁이 시작된다.


2. 조인의 핵심은 '식별키': 무엇으로 데이터를 이어 붙일 것인가

서로 다른 DB를 한 장의 테이블로 합치려면 기준이 필요하다. 보통은 고객 또는 디바이스를 가리키는 식별자(아이디), 쿠키·로그인 아이디·광고 클릭 ID 등을 쓴다. 여기서는 편의상 이를 Identified Key라고 해보겠다. 만약 방문·구매·쿠폰 데이터에 이 키가 모두 들어 있다면, 조인의 기준은 쉽게 Identified Key가 된다. 

 

이렇게 결정이 쉬운 경우에도, 결정을 내려야 하는 부분이 몇 가지 있습니다.

  • 조인의 방향 : '방문을 기준(Left)으로 구매/쿠폰을 붙일 것인가, 반대로 구매를 기준으로 방문을 붙일 것인가?' 에 대한 문제이다. 고객 여정 관점이라면 보통 방문(Left) 기준이 해석에 유리하다.
  • 비구매 고객 처리 : 방문 기록이 있지만 구매를 하지는 않아서 구매, 쿠폰 데이터에는 보이지 않는 키가 있을 수 있다. 이 고객들을 ‘미구매’로 볼 것인지, 데이터 누락으로 판단할 것인지 규칙을 세워야 한다. 
  • 중복 제거와 집계 단위 : 방문 데이터는 말 그대로 방문 데이터라서, 한 개의 키가 여러 번 반복되는 경우가 대부분이다. 이를 세션 단위로 볼지, 일자 단위로 볼지, 고객 단위로 집계할지 집계의 단위를 명확히 해야 한다.

결국 ‘어떤 키로, 어느 단위에서, 어느 방향으로’ 조인을 할 것인지 정해두면 이후 단계에서의 작업이 크게 수월해진다. 반면, 이 기준이 흐려지면 분석 결과의 해석도 함께 흔들린다. 즉, 데이터를 어떻게 가져올 것인지가 분석의 큰 방향과 결과에 영향을 준다는 것이다.


지저분한 스프레드시트가 전처리 후 정돈된 데이터 테이블로 바뀌는 과정
지저분한 데이터를 정리하는 것은 데이터 분석에서 가장 중요한 과정이고, 가장 지난한 과정이다.

3. 수집과 전처리: 로그 데이터는 늘 지저분하고, 정답은 규칙에 있다

어떤 키를 기준으로 조인할 것인지 정했다면, 이제는 각 원천 데이터에서 어떤 필드를 가져올지도 목적에 맞게 최소화해야 한다. 이렇게 해야 데이터의 양이 불필요하게 늘지 않기 때문이다. 앞선 예를 계속 활용해보면, 방문 데이터에서는 유입 경로, 방문일자, 방문횟수, 구매 데이터에서는 구매일자, 구매SKU, 구매금액, 구매수량, 쿠폰 데이터에서는 쿠폰 유형, 사용 여부, 할인금액처럼 각 데이터에서 핵심 필드만 추린다. 이 때 주의할 것은 키 값이 반드시 포함되어야 한다는 점이다.

 

이렇게 데이터를 합친 다음 해야 할 일이 전처리(Preprocessing) 이다.

  • 방문 데이터는 동일 키가 반복되므로, 필요하면 중복을 제거하거나 세션→고객 집계가 필요하다.
  • 구매 데이터나 쿠폰 데이터는 필요한 기간 필터링비정상 값(음수, Null) 정리를 해야 한다.
  • 세 테이블을 합친 뒤에는 결합 품질을 꼭 확인한다. 예를 들어, 방문 데이터에는 많은데 구매/쿠폰 데이터에는 전혀 없는 키가 과도하게 많다면, 분석을 수행하기 전에 추가 누락 여부를 반드시 점검해야 한다.

이 모든 과정을 하나의 DB에서 처리할 수 있다면 이상적이겠지만, 안타깝게도 현실은 그렇지 못하다. 심지어 분석 전용 DB도 없다면 방대한 데이터를 로컬PC에 저장해야 하고, 데이터가 수십메가 단위만 되어도 엑셀로는 분석이 어려워진다. 이럴 땐 SQLite/MySQL 같은 경량 DBPython의 pandas 라이브러리를 써서 로컬에서도 조인·집계를 수행하는 식으로 우회하는 방법을 사용한다. 저장 포맷도 xlsx보다 CSV, CVS 대신 Parquet처럼 가벼운 형식을 쓰면 메모리 부담을 줄일 수 있다. 


4. 분석은 '그다음': 분석의 전 단계를 반복하며 배운 것

데이터 수집 → 전처리 → 조인 → 검증의 단계가 끝나야 비로소 분석을 수행하게 된다. 만약 이 모든 데이터가 처음부터 단일 데이터 웨어하우스에 정돈되어 있다면, 위 과정의 대부분을 줄일 수 있다. 하지만 실제 현장에서는 여러 DB가 공존하는 경우가 많기 때문에, 수작업으로 각각 추출하는 방식을 쓸 때가 많다.

 

이런 반복 작업 덕분에 수집과 전처리가 얼마나 중요한 것인지 알게 되었고, 동시에 이 단계를 수행하면서 진이 다 빠져서 분석에 쓸 에너지가 줄어드는 날도 있다. 결국 반복 숙달에 있다. 같은 유형의 과제를 반복할수록, 추출 필드, 조인 키, 집계 단위 및 결합 품질을 체크하는 노하우가 쌓이고, 속도와 정확도가 함께 올라가게 되기 때문이다.


 

5. 마무리: 분석의 절반은 정리에서 완성된다

데이터 분석은 분석 단계 이전에 수집과 전처리의 품질에서 그 결과의 유의미함이 갈린다고 믿고 있다. 원천 데이터가 흩어져 있어도, 조인 키와 수집 단위를 명확히 하고, 조인 규칙을 고정하고, 결합 품질을 매번 점검하면 결과의 신뢰는 꾸준히 올라가게 된다. 

반응형