본문 바로가기

log

서비스 로그 남기기 #1

반응형

서비스 로그란 무엇인가?

이 글에서 서비스 로그는 유저의 상태변경, 행동에 대한 기록이라고 정의내리겠습니다.

 


들어가며

이 글은 카페에서 작성하고 있으니,
제가 카페 사장이라는 가정하에 고객의 행동패턴을 기록하고 분석한다(=서비스 로그를 남기고 분석한다)는
예시를 들어보려고 합니다.

 

저는 서비스로그 분석해 궁극적으로 매출증대를 목표로 하고 있다고 가정해봅시다.
매출증대를 하는 방법은 여러가지가 있을 것으로 생각합니다.
하지만 저는 판매가나 매출영역에 관해서 더 신중하게 접근하기로 결정했습니다.

서비스 로그로 알고자 하는 목표는 무엇일까?

우선 저는 어떤 고객들이 제 카페에 방문하고 행동하는지 더 깊이 이해하고자 합니다.
다시말해 고객유형을 이해를 하고자 하는 것입니다.
고객의 고객유형을 나누고, 그 차이를 아는 것을 목표로 해봅시다.

 

목표를 달성하기 위해 어떤 것을 질문해야 할까?


저는 고객이 카페를 들어온 순간부터 나가는 순간까지의 여정을
서비스 로그라는 이름으로 데이터를 남길 수 있습니다.
다시말해 카페에 들어오는 고객에게 고유값을 부여하고,

해당 고객이 무엇을 주문하는 지, 몇 시에 카페를 나가는지 등을 기록합니다.

 

다시 한 번 우리의 목표를 환기시키자면, 우리는 고객유형을 이해하려고 합니다.
그러기 위해서 고객의 어떤 것을 알고 있어야 고객유형을 나누는 데 도움이 될 것 입니다.
위 문장에서의 어떤 것은 무엇이 될까요?
저는 고객의 나이/성별/시간/주문내역 등을 알고 있어야 고객유형을 나눌 수 있다고 생각합니다.
따라서 저는 아래와 같은 질문을 만들어 보았습니다.

 

카페를 방문하는 고객의 연령, 성별, 시간의 분포가 어떻게 될까?
고객 유형을 어떻게 나눌 수 있을까?
고객 유형에 따라 매장체류시간이 다를까?
고객 유형에 따라 주문평균단가가 다를까?
주문시간과 메뉴픽업시간의 차이가 10분 이내인 고객과 10분 이후의 고객 사이에 차이가 있을까?

단골고객의 정의를 어떻게 내릴까? 단골고객과 그렇지않은 고객간의 차이는 무엇이 있을까?

 

질문에 대답하기 위해,
어떤 이벤트와 항목을 만들까? (이벤트 설계)

저는 위의 질문에 대답하기 위해 매장입장(Entrance), 주문(Order), 픽업(Pickup), 매장퇴장(Out) 4개유형으로
이벤트를 나누어 남겨볼 수 있을 것 같습니다.
4개의 이벤트로 나눈다는 것은 4개의 표를 만들어 작성하는 것과 비슷합니다.

Entrance

time 고유입장ID 고객ID 나이 성별
... ... ... ... ...

Order

time 고유주문ID 고객ID 주문가격 주문 수량
... ... ... ... ...

Pickup

time 고유주문ID 고객ID 주문가격 주문 수량
... ... ... ... ...

Out

time 고유퇴장ID 고객ID 나이 성별
... ... ... ... ...


가상데이터 만들기

가상의 고객을 만들어 그 행동을 각 이벤트에 맞추어 임의에 데이터를 만들어보겠습니다.

time 고유입장ID 고객ID 나이 성별
2021-08-14 08:33:20 123 1 27 M
time 고유주문ID 고객ID 주문가격 주문 수량
2021-08-14 08:34:15 94739 1 4000 1
time 고유주문ID 고객ID 주문가격 주문 수량
2021-08-14 08:36:42 94739 1 4000 1
time 고유퇴장ID 고객ID 나이 성별
2021-08-14 08:37:01 321 1 27 M

 

한 고객이 매장에 방문해 주문을 하고, 주문한 메뉴를 픽업 후, 매장을 떠나는 전 과정을 저는 이와 같이 임의로 생성해보았습니다.

 

아침 8시 33분에 27살 남성이 매장에 방문해 4천원짜리 메뉴 하나를 시키고, 2분 후에 메뉴를 픽업했습니다.
20초 후 매장을 떠났습니다. 테이크아웃 고객인 걸 유추해 볼 수 있습니다.


 

데이터로 대답하기

한달간 데이터를 쌓고 분석을 하면, 처음했던 질문에 대한 대답이 아래와 같이 나올 수 있습니다.

 

고객 유형을 어떻게 나눌 수 있을까?

나이와 성별을 조합해 고객 유형을 나누는 방법을 시도해봅니다.

 

  • 나이는 ~19, ~29, ~39, ~49, ~59, ~69, 70~ 7개 군  성별 남,여 2개 군
    7*2 = 14. 최종적으로 유형을 14개로 만들어 새 컬럼을 만든다.


Entrance 데이터를 이용해
카페를 방문하는 고객의 연령, 성별, 시간의 분포가 어떻게 될까?
의 질문에 대해 아래와 같은 사실을 발견했다고 가정해봅시다.

 

  • 아침시간(개점~10:00) 에는 20~40대 연령의 방문비율이 전체의 70%를 차지한다.
  • 점심시간(11:00~02:00)에는 20~40대 연령의 방문비율이 전체의 90%를 차지한다.
  • 낮시간(2:00~5:00)에는 20~40대 연령의 방문비율이 전체의 30%를 차지한다.

 


고객 유형에 따라 매장체류시간이 다를까?
Entrance 이벤트와 Out이벤트를 활용해 카페 내 체류시간을 구할 수 있습니다.
Out의 time에서 Entrance의  time 의 차이를 구하는 것입니다.
이를 통해 아래와 같은 사실을 발견했다고 가정해봅시다.

  • ~19세_남성 고객유형은 ~19_여성 고객유형에 비해 매장체류시간이 상대적으로 짧다.
    -> 이 차이는 어디에서 올까?
  • 남성 군 중에서 ~29세_남성와 ~39세_남성의 매장체류시간이 가장 길다.
    -> 두고객유형은 매장에서 무엇을 할까? 공부? 업무? 대화?

해당 사실을 기반으로 이후에 더욱 세밀한 관찰을 시도해 볼 수 있을 것입니다.

다른 질문도 이와 비슷하게 데이터를 조합해 대답할 수 있습니다.

 

 

 

 

 

 

 

 


해당 글은 전효준님의 발표자료에서 영감을 받아 작성했습니다.
좋은 발표 감사드립니다.

https://speakerdeck.com/devinjeon/jamag-ndc19-joheun-rogeuran-mueosinga-joheun-rogeureul-wihae-goryeohaeya-hal-geosdeul

 

(자막)[NDC19] 좋은 로그란 무엇인가?: 좋은 로그를 위해 고려해야 할 것들

NDC19에서 발표하였습니다. 자막없이 보기 -> https://hyojun.me/~ndc19-slide

speakerdeck.com

 

반응형

'log' 카테고리의 다른 글

서비스 로그 남기기 #2  (0) 2021.08.15