프로젝트 주제 소개
프로젝트 마타는 고객이 운영하는 사이트에서 생성된 웹 로그를 수집하여 유의미한 정보를 제공해주는 서비스입니다. 고객이 페이지의 어느 부분에 관심을 두는지, 어디로 자주 이동하는지를 알아내서 UI/UX 개선에 도움을 줄 수도 있고, 만약 광고를 냈다면 어디에서 유입했는지를 알아내어 더욱 효과적인 광고를 하도록 비즈니스적인 인사이트를 줄 수도 있습니다.
프로젝트 주제 선정 이유 및 배경
분산처리가 필요할 만큼 큰 데이터를 다뤄보고 싶었고, 여러 아이템 중 실시간으로 쌓여가는 웹 로그를 처리하여 유의미한 인사이트를 줄 수 있다면 좋은 결과를 끌어낼 수 있지 않을까 하여 선정하게 되었습니다. 볼륨이 큰 프로젝트는 자체적으로 사용자가 남긴 로그들을 처리하겠지만 로그 분석해서 얻는 이점보다 비용이 더 많이 드는 경우가 저희 프로젝트의 주 고객층이 될 것 같습니다.
프로젝트 주제 상세
1. 프로젝트 주제 관련 기술 및 트렌드의 동향
웹 로그를 수집하는 서비스는 각 쇼핑 채널에서 이미 사용하고 있는 기술이며 수집된 웹 로그를 통해 각 채널의 UI 배치나 마케팅 전략, 광고 수립과 같은 일들을 진행할 수 있도록 분석하여 마케팅 팀에 전달하는 트렌드가 있습니다. 또한, 웹 로그 분석에서 이루어지는 민감성 정보와 같은 활용 동의를 회원 가입 시에 받는 이유는 그만큼 웹 로그로 받을 수 있는 정보가 무수하고 사용자가 예상치 못한 정보를 수집할 수 있음을 미리 고지하고 수집하는 것이 최근 쇼핑 채널의 트렌드 동향입니다.
2. 벤치마킹 대상 또는 유사 서비스 사례 소개 및 활용
구글 애널리틱스와 뷰저블 등의 유사서비스를 참고, 벤치마킹해 보았습니다. 구글 애널리틱스도 사용자들이 자신의 웹사이트에 추적코드를 심는 과정 부터 시작하게 됩니다. 이 과정에서 GDPR 등의 개인 정보 보호 관련한, 쿠키 사용 여부 등의 동의를 받고 분류를 하는 과정이 필요한데, 자체적으로 민감 정보를 최소화 하여 이 과정을 간소화 할 수 있습니다. 또한 각 페이지를 넘어 뷰저블 등의 추가 과금 서비스에서나 제공하던 전체 고객 여정 지도 등의 기능을 추가 제공합니다.
3. 사용자 및 시장에 제공되는 가치
여러 기업이 수많은 서비스에서 발생하는 사용자의 실제 사용 경험을 로그로 분석하기 쉬워집니다. 광고, 서비스 효과, UI 변경에 따른 효과를 보다 쉽게 알아낼 수 있습니다. 사용자의 행동을 분석하고 UX를 개선하여 수익 효율을 높일 수 있습니다. 데이터 웨어하우스로 로그 자체의 안정적 수집, 저장을 보장합니다.
4. 향후 전망
향후에 웹 로그 수집과 관련해서 시장에서는 오픈 소스로 무료 배포되어 각 유통, 쇼핑 채널 IT 팀에서 자유롭게 자신들의 입맛에 맞춰 사용할 수 있는 환경이 조성될 것이라고 생각합니다. 여기서 오픈 소스가 아닌 B2B 서비스로 발전하기 위해서는 우리가 가지고 있는 킬링 포인트가 필요할 것이라고 생각되고 그렇지 않다면 시장에 곧 풀리게 될 오픈 소스에 밀려 B2B로서의 경쟁력을 상실하게 될 것이라고 보고 있습니다.
요구사항 및 기능 정의
ID | 요구사항 | 기능 정의 |
Req. 1. | 회원가입 | Username & Password 방식으로 서비스에 가입할 수 있다. |
Req. 2. | 서비스 로그인/로그아웃 | 회원의 웹사이트 이용을 위한 로그인/로그아웃 기능을 구현한다. |
Req. 3. | 서비스 등록 | 사용자는 하나 이상의 웹 페이지를 등록할 수 있다. |
Req. 4. | 서비스 토큰 발급/재발급 | 클라이언트의 웹사이트에서 추출될 데이터를 Spring 서버로 전송하기 위해 필요한 토큰을 발급받을 수 있다. |
Req. 5. | 분석 정보 제공 | 대쉬보드는 가공된 시각화 자료를 제공하며, 제공되는 자료는 다음과 같다.
• 사이트 이용시간 • 컴포넌트 별 클릭 수
• 이벤트 호출 빈도 분류 • 시간별, 날짜별 사용자 수 • 페이지별 상세 정보 |
Req. 5-1 | 클릭 정보 제공 | 사용자의 페이지를 사용하는 고객이 어디를 자주 클릭
했는지를 히트맵으로 제공한다. |
Req. 5-2 | 이동 정보 제공 | 사용자의 페이지를 사용하는 고객이 어디에서 어디로 움직이는지를 그래프로 제공한다. |
Req. 5-3 | 유입 정보 제공 | 사용자의 페이지를 사용하는 고객이 어디에 있는 광고를 보고 유입 했는지를 그래프로 제공한다. |
Req. 5-4 | 고객 수 정보 제공 | 사용자의 페이지를 사용하는 고객 수를 제공한다. |
Req. 5-5 | 컴포넌트별 정보 제공 | 사용자가 A/B 테스트를 진행할 수 있도록 특정 컴포넌트별 이벤트 발생 수를 제공한다. |
애플리케이션 아키텍처 다이어그램
※ 프로젝트 구현을 위해 계획한 애플리케이션 아키텍처 다이어그램을 작성합니다. 작성 도구 및 툴은 자유롭게 선택할 수 있으며, 필요 시 다른 종류의 다이어그램도 추가할 수 있습니다.
2-1. 활용 언어 및 기술
적용 대상 | 항목 | 비고 |
백엔드 | SpringBoot | |
DB | MySQL, Hive, Cassandra, Redis | |
분산처리 | Hadoop, Spark | |
프론트엔드 | Vue, Bootstrap | |
메시지 큐 | RabbitMQ, Kafka | |
스케쥴링 | Airflow |
1. 로그 수집항목
- serviceToken: 로그 권한 검증을 위해 클라이언트에게 발급되는 토큰
- sessionId: 웹페이지에 접속한 사용자에게 주어지는 익명의 세션 ID
- event: 발생한 이벤트명
- targetId: 이벤트를 발생시킨 컴포넌트의 ID
- positionX: 이벤트 발생 시 페이지에 대한 마우스의 상대 X좌표
- positionY: 이벤트 발생 시 페이지에 대한 마우스의 상대 Y좌표
- location: 사용자의 현재 웹페이지 경로
- prevLocation: 사용자의 이전 웹페이지 경로
- referrer: 사용자가 현재 웹서비스에 유입한 경로(google, naver, etc.)
- timestamp: 이벤트가 발생 한 시간
- pageDuration: 해당 이벤트 발생까지 사용자가 현재 웹페이지에 머무른 시간
- user-agent 문자열 : 브라우저나 디바이스의 운영체제, 브라우저 엔진, 브라우저 버전 등의 정보 (보낼 때 헤더에 기본으로 포함되게 할 수 있음)
Plain Text
복사
칼럼
사용자 수: 단위시간에 들어온 총 세션의 수, (기존 사용자와 신규 사용자로 구분하려면 쿠키 활용이 필요함)
클릭 수: 단위시간 당 event가 "click"인 이벤트의 수
그 외 대부분 항목의 평균치 내지는 합산치, 클릭좌표 전부
...
이탈율: 마지막 타겟 페이지까지 가지 못하고 중간에 이탈한 세션 비율
전환율: 원하는 타겟 페이지까지 접속한 비율 전환수/세션수 (100초과 가능 세션당 2회이상 전환 가능)
Plain Text
복사