고객 맞춤형 추천을 위한 데이터 식별 방법: 1편

'User ID'와 'Device ID' 식별 방법의 장단점
Content's avatar
May 30, 2024
고객 맞춤형 추천을 위한 데이터 식별 방법: 1편

커머스 플랫폼에서 기존 고객을 충성고객으로 만드는 것은 매우 중요합니다. 이를 위한 여러 방법이 있지만, 그중에서도 고객이 좋아할 만한 상품을 적절히 노출하는 개인화 추천 서비스는 필수입니다. 단순한 최신순이나 인기순 필터는 이제 효과적이지 않은 대신, 개인화 추천은 고객 경험을 개선하고 브랜드 충성도를 높이며 매출 상승에도 기여하기 때문입니다. 

개인화 추천을 제공하기 위해서는 클라이언트의 서비스를 이용하는 ‘End-User(이하 고객)’의 행동 데이터가 필요합니다.

보통 고객이 특정 상품을 보고 행동한 ‘클릭’, ‘좋아요’, ‘장바구니 담기’, ‘구매’ 등 여러 데이터를 수집하여 이를 바탕으로 추천 AI 모델 학습이 이루어집니다. 그리고 블럭스는 이러한 데이터를 바탕으로 클라이언트들의 실시간 개인화 추천을 돕고 있습니다. 따라서 각 고객의 행동을 정확하게 식별하여 데이터를 수집하는 일이 매우 중요합니다.

여기서 ‘정확하게’란 고객이 로그아웃 상태라고 하더라도 각 개인이 구분되는 것을 뜻합니다. 즉, 로그인 여부와 상관없이 여러 기기에서 클라이언트의 서비스를 사용해도 해당 고객의 행동 데이터를 식별하여 수집할 수 있어야 합니다. 이번 글에서는 일반적으로 사용하 ‘User ID’와 ‘Device ID’를 활용해 고객을 구분하는 방법과 각각의 특징에 관해 설명하겠습니다. 

User ID로 식별하기

‘User ID’란 고객을 식별하기 위해 사용하는 가장 기본적인 식별자로, 일반적으로 서비스에서 회원가입을 하면 생성되는 계정에 1:1로 부여되는 ID입니다. 따라서 고객이 서비스에 로그인한 상황이면 클라이언트는 내부적으로 관리하는 User ID를 활용해 행동 데이터를 올바르게 수집할 수 있습니다. 하지만 만약 고객이 로그인하지 않은 채 서비스를 이용하는 경우, 별도 식별자가 부여되지 않기 때문에 해당 고객의 행동 데이터가 무작위로 섞이게 됩니다.

UserID식별

모든 비로그인 고객들의 행동 데이터가 무작위로 섞일 때 발생하는 가장 큰 문제는 이들이 모두 동일한 상품 추천을 받는 상황입니다. 이는 진정한 의미의 개인화 추천이라고 할 수 없습니다. 그렇다면 이를 해결하기 위해 비로그인 고객들에게도 임의로 식별자를 부여하면 문제가 해결될까요?

물론 이를 통해 모든 비로그인 고객의 행동 데이터가 무작위로 섞이는 상황은 막을 수 있을 것입니다. 하지만 임의로 부여된 식별자는 비로그인 상황에서만 유효하기 때문에 해당 고객이 로그인하면 그전에 행동한 데이터와 분리되는 문제가 새로 생깁니다.

그렇다면 비로그인 상태와 로그인 상태의 행동 데이터를 계속 연동하려면 어떻게 해야 할까요?

Device ID로 식별하기

DeviceID식별

위의 이미지를 보면 ‘null_1(비로그인)’과 ‘Luna(로그인)’의 행동 데이터는 모두 Device B에서 발생한 공통점이 있습니다. 이 점에 착안해 기기별로 고유하게 부여되는 ‘Device ID’를 식별자로 사용할 수 있습니다.

Device ID를 사용하면 로그인 여부와 상관없이 하나의 기기 내에서 발생하는 행동 데이터를 묶을 수 있기 때문에 다음과 같은 이점이 있습니다.

  • 모든 비로그인 고객의 행동 데이터가 섞일 염려가 없음

  • 로그인 여부에 따라 ‘세션(Session)’이 끊길 위험이 없음

세션연결

그러나 여기에도 허점이 존재합니다. 바로 고객 한 명이 여러 기기를 사용하는 경우입니다. 예를 들어 블럭스(Blux)의 클라이언트 중 하나인 다이소는 PC와 모바일 환경에서 모두 상품 판매 서비스를 제공하고 있습니다. 고객은 상황에 맞춰 때로는 PC로, 때로는 모바일 앱 등 서로 다른 기기에 접속해 별도의 행동 데이터를 쌓게 됩니다.

이때 Device ID를 식별자로 사용하면 PC에서의 행동 데이터가 모바일 앱에서는 반영되지 않게 됩니다. 반대의 경우도 마찬가지입니다. 만약 PC 또는 모바일 중 하나의 환경에서만 서비스를 제공하더라도 고객이 기기를 변경하는 상황이 발생하면 동일한 문제가 발생하게 됩니다.

DeviceID

반대로 하나의 기기를 여러 고객이 사용하는 경우에도 문제가 발생합니다. 예를 들어 거실에 있는 하나의 PC를 가족 구성원 모두가 공유하는 상황을 생각해 봅시다. 취향과 관심사가 제각각인 가족 구성원이 해당 PC를 이용해 행동 데이터를 발생시키면, 모두의 취향이 마구잡이로 뒤섞여 부적절한 상품 추천이 보이게 됩니다.

다른 방법은 없을까?

이처럼 ‘User ID’와 ‘Device ID’ 중 하나를 선택하여 식별자로 사용하는 경우, 상황에 따른 고객의 행동 데이터를 정확하게 구분할 수 없는 것을 알 수 있습니다.

각 방법에는 명확한 장단점이 존재하며, 정리하면 다음과 같습니다.

User ID로 식별

장점 👍

  • 사용하는 기기에 상관없이 로그인한 고객에 대하여 개인화 추천이 가능

    • 한 고객이 여러 기기를 사용하는 경우 세션 유지

    • 하나의 기기를 여러 고객이 사용하는 경우 서로 간 행동 분리

단점 👎

  • 한 고객이 여러 기기를 사용하는 경우 세션 단절

    • PC에서의 행동이 모바일 앱에 반영되지 않음

    • 기기 변경 시 이전 기기에서의 행동이 반영되지 않음

  • 하나의 기기를 여러 고객이 사용하는 경우, 기기 내 여러 고객의 행동 데이터가 뒤섞임

그렇다면 로그인 여부와 기기에 상관없이 모든 고객의 행동 데이터를 정확하게 구분하려면 어떻게 해야 할까요? 블럭스는 이 문제를 해결하기 위해 ‘User ID’와 ‘Device ID’를 동시에 활용해 고유 고객의 행동 데이터를 정확하게 식별하기 위해  ‘Blux ID’를 사용하는 방식을 선택했습니다.

다음 글을 통해 새 식별 방식인 Blux ID의 개발 배경과 활용하는 방법에 대해 더 자세히 알아보겠습니다!

글쓴이 

차동주 (Tommy) 블럭스 Software Engineer 보다 편리한 세상을 위해 끊임없이 고민하고 노력하는 개발자로, 블럭스와 함께 꿈을 이루기 위해 매일 땀 흘리고 있습니다. 현재 블럭스와 클라이언트 간 데이터 연동 작업을 담당하고 있습니다.

👉 고객 맞춤형 추천을 위한 데이터 식별 방법: 2편 읽으러 가기

Share article
RSSPowered by inblog