해결된 질문
작성
·
117
0
16:48 에서 말씀하신 것처럼 결제 완료 Event 로그를 남길 때 State로서 여러가지 Parameter를 같이 남길 수가 있으니까요.
정보들도 같이 보관을 하게 되면 각 카테고리 별 해시맵이던 벡터 계산이던 해서 향후 개개인의 사용자에게 사용 패턴이나 주문한 음식 등의 정보를 바탕으로 맞춤 추천이 가능할 것 같아요.
(예시: 보통은 국물 요리나 한식 위주로 먹는 사람도 파스타를 며칠에 한 번 주문을 하는지 등의 정보도 가공해서 평소와 다르게 양식을 추천으로 보여준다던지..)
결제 이력이나 이런 정보도 결국은 서버 로그라는 큰 틀 안에 있는 세부적인 요소인 건가요?
답변 1
0
성배님 안녕하세요! 로그 설계 파트를 학습하고 계시나봐요.
추천 시스템의 데이터를 사용자의 로그 데이터를 기반으로 만듭니다. 어떤 카테고리를 클릭했는가, 어떤 화면에서 얼마나 체류했는가 등의 데이터를 활용할 수 있지요. 이걸 클라이언트 사이드에서 기록할 수도 있고, 서버 사이드에도 기록할 수 있습니다. 또한 DB에도 기록할 수 있구요. 회사의 상황에 따라 다르긴한데, 단순히 클릭 데이터라고 하면 보통 클라이언트 사이드에서 로그 수집 서버에 수집하도록 보내 저장합니다. 어디에 저장하는지보단 데이터 로그 설계를 한다!라는 것을 알고 계시면 좋을 것 같네요.
결제 이력 같은 경우는 DB의 데이터에 저장하는데, 서버 로그라기보단 그냥 데이터베이스에 저장한다고 보시면 됩니다
서버 로그 : 서버의 API Request, Response 등을 파일 시스템으로 저장(JSON 등)하고, 그걸 AWS S3에 저장
클라이언트 로그 : GA/Firebase를 사용하면 클라이언트에서 로그 설계를 하면 BigQuery에 저장되며, 이걸 사용하지 않는 회사는 자체 로그 수집기를 만듭니다. 클라이언트에서 로그 수집기에 데이터를 보내면, 로그 수집기에서 데이터를 저장합니다. 이 땐 AWS S3일수도 있고, DB일수도 있고 다양한데 보통 사용자 로그 데이터를 DB에 기록하진 않고 만약 한다고 하면 NoSQL 정도엔 기록하곤 합니다. NoSQL에 저장하는 것이 편하거든요
DB : 데이터가 무결해야 하는 것들을 기록합니다. Transaction이 대표적인 예시고, DB에 저장해서 서비스에서 사용해야 한다고 하면 대부분 DB에 저장할거에요.
회사의 구조나 어떻게 설계했냐에 따라 달라서, 어디에 저장하는지에 집중하시는 것보단 여러가지 패턴이나 자주 이렇게 쓰이는구나 정도로 알고 계시면 될 것 같네요.
레퍼런스를 공유드리면 좋을 것 같아 찾아 공유드려요. 29cm에선 Amplitude로 사용자 로그를 수집하는데, 이것을 BigQuery에 저장해서 추천 알고리즘에 활용했다고 하네요
https://medium.com/29cm/gcp-recommendations-ai-retail-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%B6%94%EC%B2%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%EC%B6%95-eb68a0cd5d97
궁금하신 내용이 있다면 또 남겨주셔요-! 학습 파이팅입니다! :)