대규모 웹로그 프로세스마이닝

대규모 웹로그 프로세스마이닝

Thumbnail은 프로세스마이닝 결과 기반의 대시보드 예시입니다.

프로젝트 요약

🕜 기간 : 2021.08 ~ 2022.02

👪 참여인력 : 개인

✏️ 사용기술 :
 ▪️ 언어 및 소프트웨어: Python, Disco
 ▪️ 데이터 처리: Pandas, NumPy
 ▪️ 데이터 시각화: Matplotlib, Disco
 ▪️ 데이터 분석: pm4py, Disco

프로젝트 목적

본 프로젝트에서 일 평균 5000 만 ~ 7000 만 건가량의 로그 데이터가 발생하는 사이트의 사용자 행동패턴을 분석하기 위해 프로세스마이닝을 적용하였습니다. 그리고 이를 바탕으로 가시화되지 않은 프로세스를 발견하고, 고객 이해도를 높여 사이트의 구성을 최적화하는 것을 목적으로 진행되었습니다.

프로젝트 회고

전처리 과정

분석을 위해 전달 받은 데이터는 웹로그 분석을 위해 불필요한 레코드들을 제거하거나 필요한 필드만 선택하는 등의 전처리 과정이 필요 하였습니다.

[사용자 식별 기준]

사용자의 행동패턴을 이해하기 위해, 사용자 식별 기준을 정하는 것부터 많은 고민이 필요했습니다.

프로젝트 당시에는 Host 필드를 이용하여 사용자를 구별하였는데, 이 방법은 같은 프록시(proxy) 서버를 사용해 사이트에 접속하는 사용자는 모두 동일한 IP 주소를 갖기 때문에 정확한 사용자 식별을 보장하지 못한다는 한계와, 일반적인 사용자의 경우 동적 IP를 사용하기 때문에 같은 사용자라 하더라도, IP가 변경되어 다른 사용자로 분류될 수 있다는 문제가 있었습니다.

지금 생각해보면, 쿠키를 시용자 식별 기준으로 하여 분석을 진행해볼 수도 있었을 것 같아 아쉬움이 남습니다.

[세션 식별 기준]

로그 데이터는 사용자의 접속상황을 시간 순서로 기록한 것이기 때문에 사용자가 언제 새로운 접속을 시도하여 언제 그 접속을 종료 하였는지에 대한 정보가 없습니다. 따라서, 저는 30분 이상의 시간간격이 발생하면 새로운 세션이라 가정하고 분석을 진행하였습니다.

분석 결과

분석용 데이터를 생성하고 프로세스 마이닝 툴인 Disco 툴을 활용해 프로세스를 확인하니, 인사이트를 도출할 수 없는 스파게티 프로세스가 도출되었습니다. 이후, 유의미한 분석 결과를 얻기 위한 분석용 데이터 생성에 많은 시간이 소요되었고, 웹사이트와 사용자에 관한 이해도가 낮아 단순한 분석 결과만을 도출하게 되었습니다.

프로젝트 후기

이 당시, 제가 웹사이트에 관한 이해도가 낮은 상태였어서, 분석용 데이터를 생성하는 데 있어서 기준을 잡기 힘들었던 것 같습니다. 또한, 프로젝트를 수행하는 당시에는 프로세스마이닝을 위한 소프트웨어와 라이브러리에 관한 이해도가 낮은 상태였습니다. 이를 해결하기 위한 시간이 많이 소요되었으며, 제가 생각한 유의미한 결과를 도출하지 못하고 프로젝트가 종료되었습니다.

해당 프로젝트를 통해 아래와 같은 내용을 배우는 계기가 되었습니다.

프로젝트를 통해 배운점 ⭐

대용량 데이터 처리를 위한 시스템의 필요성

평소 데이터분석, 머신러닝 모델 개발 등의 프로젝트에서는, csv, txt 파일로 데이터를 전달받아 프로젝트를 수행하여서 빅데이터 처리에 관한 필요성을 직접적으로 느끼지 못하고 있었습니다. 본 프로젝트에 사용될 데이터를 전달받았을 당시에, 낮선 포맷의 데이터를 사용 목적에 맞게 전처리하려 하니 그 과정에 시간이 많이 소모되었습니다. 또한, 대용량의 데이터여서 제 데스크탑으로 데이터를 읽어들이니 메모리가 초과되어 전처리에 어려움이 있었던 기억이 납니다.

결국, 저는 연구실 서버에서 pandas, numpy를 활용하여 데이터를 전처리하고 프로젝트를 진행하였습니다. 이때, ‘단일 사이트 웹로그가 이 정도면, 기업에서 대용량 데이터를 다룰 때는 수집된 데이터를 빠르고 효과적으로 활용하기 위해서는 데이터 엔지니어의 역할이 중요하겠다.’라는 생각이 들었고, 이는 제가 대용량 데이터 처리에 관심을 가지게 된 계기가 되었습니다.

도메인 지식의 중요성

웹사이트 내에 페이지 중 방문패턴을 분석하는 데 무의미한 정보가 되는 페이지와 콘텐츠 페이지를 좀 더 명확하게 이해하고 있었다면, 제가 이를 고려하여 전처리를 진행하고 더욱 의미 있는 인사이트를 도출할 수 있었을 것으로 생각됩니다. 또한, 해당 사이트를 운영하는 기업의 비즈니스와, 이를 이용하는 사용자에 대한 이해도가 높았다면 다른 시각으로 분석을 진행하고 새로운 관점에서 인사이트를 얻을 수 있었을 것입니다.

즉, 분석한 정보와 머신러닝 모델 등으로 도출된 결과는 하나의 지표라 생각하며, 저는 이를 해석하는 의사결정자의 판단이 매우 중요하다고 생각합니다. 특히, 비즈니스 환경, 고객의 요구사항, 산업 동향 등에 대한 도메인 지식을 데이터 분석에 녹여내는 것이 중요하다고 생각하고 이를 위해 데이터 엔지니어, 해당 비즈니스 전문가 등과의 적극적인 소통할 필요가 있으며, 저 역시 해당 비즈니스에 관한 이해를 높이도록 노력해야 한다 생각합니다.

데이터 마트의 필요성

해당 프로젝트에서, 대용량 데이터를 전처리하고 분석하는 데 있어 많은 시간과 컴퓨팅 자원이 소모된다는 문제가 있었습니다. 본 프로젝트에 활용된 대용량의 데이터를 특정 비즈니스 영역에 특화된 구조로 데이터를 가공하여 저장하고, 분석가가 이를 활용했다면 필요한 정보를 더욱 빠르고 효과적으로 활용할 수 있었을 것으로 생각합니다. 즉, 이러한 구성은 저장공간과 처리 비용 절감을 기대할 수있으며, 분석가가 인사이트를 얻기 위해 많은 시간을 절약할 수 있게 된다고 생각합니다.