데이터 분석이란 업무를 맡게 된 이후,
이론적으로만 알고 있던 데이터 분석을 실제로 해보면서 느꼈던 가장 큰 어려움은 데이터를 수집하고 전처리하는 것이었습니다.
정말 많은 데이터들이 수집되고 있지만
원하는 값을 보기 위해 데이터들을 하나로 엮는 작업이 쉽지 않았습니다.
예를 들어 보죠.
어떤 회사의 홈페이지에 특정 유입 경로를 통해 방문한 고객들은 구매까지 보통 몇 회 방문을 한 뒤에 구매를 하는지, 그리고 구매를 할 때 보유하고 있는 할인 쿠폰은 어떻게 사용하는 지 알고 싶다고 해보겠습니다.
이 때 필요한 데이터는 크게 세 가지 입니다.
1. 고객들의 LG전자 홈페이지 방문 데이터
2. 구매 데이터
3. 쿠폰 데이터
여기서 우선 문제가 발생합니다.
1. 방문 데이터는 통상 Google Analytics(이하 GA)와 같은 웹 데이터 수집 기반입니다.
2. 구매 / 쿠폰 데이터는 웹 데이터와 별개의 결과 데이터입니다.
따라서, 방문 데이터와 구매/쿠폰 데이터는 별도의 DB에 존재할 가능성이 높습니다.
방문 데이터는 GA에 구매 / 쿠폰 데이터는 AWS에 저장되어 있다고 해봅시다.
그렇다면 우리는 GA에서 방문 데이터를 추출하고, AWS에서 구매 / 쿠폰 데이터를 추출해야 합니다.
만약 여기서 구매 데이터와 쿠폰 데이터도 서로 다른 DB에 존재한다면, 총 세 곳의 다른 DB에서 데이터를 추출해야 합니다.
이렇게 서로 다른 DB에서 데이터를 추출하고 나면 다음 문제가 발생합니다.
이 세 데이터를 어떻게 하나로 엮을 것인가?
흔히, Key값이라고도 말합니다.
엑셀의 Vlookup에서 찾는 값에 해당하는 부분입니다.
다양한 DB가 존재하면, 데이터를 엮는 과정부터 문제가 생깁니다.
이번 사례에서는 고객들을 식별할 수 있는 특정 값이 있다고 해보겠습니다.
이 값을 Identified Key 라고 해보겠습니다.
다행히 이 값은 GA, AWS 에 저장된 방문 / 구매 / 쿠폰 데이터에 모두 있다고 해보겠습니다.
그럼 어떤 값을 기준으로 세 개의 데이터를 엮을 지 해결이 되었습니다.
다음은 각 DB에서 어떤 값들을 추출할 것인지에 대한 과정이 필요합니다.
우선 방문 데이터에서는 유입 경로, 방문일자, 방문횟수 등이 있겠고, 구매 데이터에서는 구매 일자, 구매 금액, 구매 수량 등이 있겠고, 쿠폰 데이터에서는 쿠폰 유형, 쿠폰 종류, 쿠폰 사용 여부, 쿠폰 할인액 등이 있겠습니다.
이 중 목적에 맞는 데이터를 Identified Key와 함께 추출해야 합니다.
이렇게 데이터를 추출하고 나면, 이 세 DB에서 나온 데이터를 하나로 묶어야 합니다.
이 때 만약 데이터 분석가에게 주어진 분석가만의 DB가 있다면 그 DB에 데이터 테이블을 생성하면 되겠고,
아쉽게도 그렇지 않다면 내 PC 하드디스크에 저장해야 합니다.
그런데 만약 용량이 크다면?
PC 하드디스크에 저장한 방법으로 분석 자체를 못 할 수도 있습니다.
내 컴퓨터를 MySQL, Oracle 등으로 DB화하는 방법이 있을 수 있고, Python을 활용하는 방법도 있을 수 있습니다.
이제야 드디어 세 종류의 데이터를 저장하고, 분석을 위해 엮었다고 해보겠습니다.
다음은 데이터 전처리를 해야합니다.
특히, 방문 데이터의 경우 하나의 고유 Identified Key 가 여러 번 반복되는 경우가 많기 때문에 필요시 중복을 제거해야 하는 등의 작업을 거쳐야 합니다.
구매나 쿠폰 데이터도 분석에 불필요한 데이터(특정 기간 등)를 제거하는 작업을 해야 합니다.
세 종류의 데이터를 엮은 뒤에 잘 묶였는지 확인하는 작업도 해야 합니다.
방문 데이터에는 분명 어떤 Identified Key 기준으로 수많은 데이터가 있는데, 구매나 쿠폰 데이터에서 전혀 보이지 않는다면 이를 구매하지 않은 사람이라고 볼 것인지 등에 대한 규칙도 정해야 합니다.
이렇게 수집하고 전처리하는 과정을 마치고 나서야 분석이 시작됩니다.
만약, 이 모든 데이터들이 하나의 DB에 저장되고 있었다면, 앞선 과정에서 상당수의 절차들이 생략될 수 있을 것입니다.
하지만, 아직 제가 일하는 곳에선 그런 DB가 존재하지 않기 때문에, 어떤 분석 주제를 선정하고 분석을 하기 위해선 위와 같은 수집과 전처리 과정을 매번 반복해야 합니다.
그 덕분에 수집과 전처리에 대해 많은 경험을 할 수 있었다는 장점이 있네요!
반면 이 단계에서 진이 빠져서 분석에 쓸 에너지가 부족해진다는 단점도 있습니다. ;)
데이터 분석 단계 중 가장 지난한 과정이 데이터 수집과 전처리 과정입니다. 데이터 분석을 공부할 때만해도 와닿지 않았던 말인데, 실제 경험을 해보니 정말 지난하다는 표현이 가장 잘 어울리는 단계가 두 과정입니다. 그럼에도 이 과정들을 잘 마무리해야 하는 것은 '정확한 데이터 분석 결과'를 만들어내기 위함입니다.
만약, 데이터 수집과 전처리 단계를 대충 마무리지어버리면, 데이터 분석 결과는 현실적이지 않을수도 있고 잘못된 방향성을 제안하게 될 수도 있습니다. 차라리 현실적이지 않다면 아무도 받아들이지 않겠지만, 그럴듯한 결과가 나오면 그야말로 위험합니다. 사업 자체에 위협이 될 수 있기 때문이죠. 이런 이유 때문에 데이터 수집과 전처리는 매우 철저하게 이뤄져야 합니다.