빅데이터 분석에 관한 FAQ
프로젝트에 나가거나, 외부에서 IT분야의 사람들을 만나면 빅데이터 분석과 기존의 데이터 분석의 차이에 대해 다양한 질문들을 받습니다. 이 궁금증이 비단 제가 만났던 분들만의 궁금증이 아니라는 생각에 그 질문들을 정리하여 나름대로 답을 내보았습니다. 이 글을 읽는 분들에게 도움이 되길 바랍니다.
빅 데이터 분석과 기존의 데이터 분석의 차이는 무엇인가요?
저는 log 데이터와 기존의 데이터를 함께 분석하여 새로운 가치를 창출하는 것을 빅 데이터 분석이라고 생각합니다. 일단 여기서 log 데이터와 기존의 데이터를 정의해야 할 것 같습니다.
· 기존의 데이터 : 서비스와 시스템을 운용하기 위한 목적으로 구축된 데이터베이스에 존재하는 데이터[1]. 기존의 데이터란 업무에 필요한 데이터를 의미합니다. 크게 마스터 데이터와 트랜젝션 데이터가 존재합니다.
HR 마스터, 시스템 마스터 등의 메타정보가 존재하는 데이터를 마스터 데이터라 합니다. 트랜잭션 데이터는 매일 데이터 베이스에서 생성, 변경, 삭제 등이 발생하는 데이터입니다. 대표적으로 쇼핑몰에서 상품 배송 상태, 총 주문 금액 등을 표현하는 데이터를 의미합니다.
· Log 데이터: log 데이터는 어떤 대상의 추적 데이터라고 생각합니다. 기존의 log 데이터는 시스템에 장애가 발생했을 경우 발생 원인을 추적하기 위해 남기었습니다. 하지만 빅 데이터의 시기가 되면서 log 데이터의 용도가 변화했습니다. 많은 로그 프로그램이 개발되었으며 로그 프로그램들이 일정 기간 이벤트를 기록하기 시작하였습니다. 데이터가 정형이든 비정형이든, 파일 형식이나 저장된 위치에 상관없이 특정 대상을 추적하기 위해 이벤트가 기록된 데이터라면 모두 log 데이터라고 생각합니다.
가장 대표적인 log 파일로 웹 로그 파일을 들 수 있습니다. 보통 웹 로그 파일에는 사용자의 해동패턴을 추적하기 위해 cookie, timestamp, ip, url, referrer 등의 정보가 남습니다.
기존에도 데이터 분석은 꾸준히 진행되었습니다. 우리가 흔히 봤었던 매출액 추이, 판매율, 마진율 등이 대표적인 예입니다. 여기에 더해 log 데이터를 이용하여 새로운 가치, 정보를 제공할 때 빅 데이터 분석이라 할 수 있습니다.
빅 데이터 분석을 통해 어떤 새로운 가치를 제공하나요?
기존의 데이터 분석도 충분히 가치를 제공합니다. 단순히 매출액 추이, 판매율, 마진율 등의 보고 뿐 아니라 정교한 통계 모델을 이용한 데이터 분석이 가능합니다. 대표적인 예로 CRM을 들 수 있습니다. 고객 세분화, 고객 성향, 고객별 로열티, 이탈 고객 등을 CRM 솔루션을 이용하여 분석이 가능합니다. 그리고 이것을 이용하여 마케팅 전략 수립이 가능 할 뿐 아니라 예측 모델링을 통해 고객별 추천 시스템을 구축할 수 있습니다.
Log 데이터를 이용하면 여기에 새로운 가치, 서비스를 제공하거나 기존의 서비스를 강화시킬 수 있습니다. 고객의 행동 패턴이 담겨있는 log 데이터를 이용하여 단순히 고객을 신규, 일반, 우수 등으로 구분하는 게 아니라 고객마다 자세한 등급을 매기거나, 고객이 이탈했던 경우와 남아있는 경우를 추적하여 이탈이 예측될 시 남아있도록 보상을 제공하거나, 이용 패턴의 변화를 파악하여 추천 상품을 변화시킬 수 있습니다.
프로세스 마이닝(Process Mining)은 어떤 가치를 제공해주나요?
In the end, It is the process that matters (and no the data or the software)
Not just patterns and decisions, but end-to-end processes[2]
프로세스 마이닝이 기존의 데이터 분석 툴과 가장 다른 특징은 end to end process 에 집중한다는 점입니다. 어떤 점에서 프로세스 마이닝과 데이터 마이닝이 다른지에 대해 자세히 알고 싶으시면 이 칼럼 https://blog.naver.com/prodiscovery/221300462213을 참조하시면 됩니다.
프로세스 마이닝은 log 데이터를 분석하기 위한 아주 좋은 도구라고 생각합니다. 특히 프로세스가 존재하는 log를 분석할 때, 강력한 도구가 됩니다.
예를 들어보면 웹 로그는 서비스를 이용하는 고객을 추적하기 위한 데이터입니다. 고객을 추적하고 분석하기 위해 쿠키, 세션, ip, domain, 사용 기기, url, referrer 등의 정보를 남깁니다. 그리고 고객은 어떤 목적을 위해 서비스를 사용합니다. 이 중 쇼핑몰을 예를 들어보면 상품을 구매하기 위해 사이트에 접속→검색→상품 비교→장바구니→구매 라는 프로세스를 진행합니다.
프로세스 마이닝으로 이를 분석하기 위해선 구매를 목적으로 하는 행동을 case id 로 지정하고, 구매를 하기 위한 행동(e.g 접속, 검색…)을 activity로, 이벤트가 기록된 시간으로 timestamp를 지정하면 실제 고객의 구매 프로세스를 추적할 수 있습니다.
프로세스 마이닝 분석 툴(tool)로 빅 데이터 분석을 할 수 있나요?
아쉽게도 프로세스 마이닝 분석 툴 하나로 빅데이터 분석을 할 수 없습니다. 프로세스 마이닝 분석 툴은 log 데이터를 분석할 수 있는 강력한 툴이지만 모든 상황에서 분석이 가능하지 않으며, 프로세스 분석에 초점을 맞추었기 때문에 기존의 데이터 분석에 부족한 부분이 존재합니다. 하지만 기존의 데이터 분석 툴과 함께 사용한다면 빅 데이터 분석의 도구로 사용할 수 있습니다.
간단한 예로 구매 프로세스를 들어 보겠습니다. 기존의 SAS 통계 솔루션에서 regression을 통해 구매 가격을 예측할 수 있는 시스템이 존재합니다. 근데 구매 프로세스가 복잡하고 프로세스에 따라 가격 변동이 심하다면 프로세스 마이닝 분석 툴을 통해 구매 프로세스를 분석할 수 있습니다. 그리고 sequence 나 process pattern을 Frequency로 변환하여 적용한다면 훌륭한 빅 데이터 분석이 될 수 있습니다.
혹은 프로세스 마이닝 분석 툴을 통해 구매 프로세스에서 병목 지점을 발견하고 병목 원인을 분석하기 위해 SAS를 이용하여 의사결정나무를 이용하여 원인을 분석할 수도 있습니다. 이 역시 훌륭한 빅 데이터 분석의 한가지라고 생각합니다.
프로세스 분석을 위한 log를 어떻게 수집해야 하나요?
https://blog.naver.com/prodiscovery/221058539389을 참조하시면 어떤 데이터가 필요한지 알 수 있습니다. 여기서 제가 첨언할 말은 process mining 은 process analysis와 data mining의 중간자적 역할을 한다는 점입니다. 그래서 기존의 프로세스 분석에 대한 선행 없이 적용한다면 실패할 확률이 높습니다.
선행 프로세스 분석이 실행되지 않았을 경우 가장 큰 문제는 적절한 분석용 log 데이터가 준비되지 않는다는 점입니다. Log 데이터는 준비되었지만 case id 나 activity로 삼을 수 없는 데이터만 남을 수 있습니다.
또 다른 문제는 프로세스 마이닝은 프로세스의 모든 문제를 해결할 수 있는 요술 봉이 아니라는 점입니다. 기존의 논리적, 추상적으로 도출된 프로세스 모델을 데이터 과학의 한 측면으로서 분석하는 기법이 프로세스 마이닝입니다. 만약 기존의 프로세스 분석이 진행되지 않았다면 단순히 log 데이터를 넣어서 분석하여도 유의미한 결과를 내기 힘듭니다.