개인화된 추천목록 제공을 위한 정보

편의점 할인 행사 정보를 모아보여주는 우리 서비스에는 개인화된 추천 목록을 제공한다. 이를 위해서는 사용자 행동 추적 정보, 상품의 특성 정보 를 저장해야 한다.

사용자 행동 추적 정보

서비스에서 추적할 수 있으며 의미가 있는 정보는 서비스마다 조금씩 다를 것이다. 우리 서비스에서는 검색기록, 상품 정보 조회 기록, 리뷰 작성 및 조회 기록이 유의미하다 판단했다. 이 중에서 우선 우리 서비스에서는 리뷰 조회와 작성 기록을 이용해 보기로 했다. 서비스의 UX 설계상 리뷰를 조회하는 시점과 상품의 정보를 확인하는 시점이 일치하기 때문이다.

앱 화면 - 상품 정보 조회 페이지

앱 화면 - 상품 정보 조회 페이지

리뷰 조회나 작성 기록에 어떤 데이터가 포함될지 생각해봐야 한다. 우선, 어떤 상품에 대한 리뷰인지 알아야 한다. 또한, 상품의 할인 정보는 변경될 수 있으므로, 할인의 종류 역시 저장해야 한다. 마지막으로, 언제 접근했는지 그 시간을 알아야 한다. 이를 정리하면 다음과 같은 JSON으로 표현할 수 있다.

{
	"accessTime" : "2023-10-17T00:47:32",
	"item" : {
			...
	},
	"promotionType" : "ONE_PLUS_ONE" 
}

이때, 할인 정보를 저장하는 테이블과 상품 정보를 저장하는 테이블은 외래키로 관계를 맺고 있으므로, 실제로는 할인 정보의 PK 만 저장하면 된다. 다시 정리하면 다음과 같은 JSON으로 표현할 수 있다.

{
	"accessTime" : "2023-10-17T00:47:32",
	"accessType" : "READ",
	"promotionID" : 45 
}

상품의 특성 정보

상품의 특성 정보에 어떤 데이터가 포함되어야 하는지 역시 서비스마다 다르다. 이를 결정하기 위해선, 우선 보유하고 있는 데이터를 파악해야 한다. 서비스 구축을 위해 우리가 수집한 상품&할인 정보는 다음과 같다.

  1. 상품 이름
  2. 편의점 브랜드
  3. 상품 분류 : 음료, 식품, 과자, 아이스크림, 생활용품 중 하나
  4. 상품 가격 : 개별 상품 가격. 할인 적용 전
  5. 행사 종류 : 1+1 혹은 2+1
  6. 행사 기간 : 공개된 데이터 부족으로, 정확한 기간은 수집 실패. 매일 자정 오늘도 행사중인가? 를 확인하는 방식