Skip to content

own-playground/point-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

�포인트 시스템 디자인

요구사항

  • 포인트 적립 유형 식별
    • 다양한 유형(이벤트, 플레이, 출석 등)의 포인트를 적립할 수 있어야 함
    • 각 포인트가 어떤 유형에 의해 적립되었는지 구분 가능해야 함
  • FIFO 방식의 포인트 차감
    • 사용자가 포인트를 소모할 때는 가장 오래된 포인트부터 차감되어야 함
    • 일부 차감도 되어야 함
      • e.g. 13 포인트 사용
      • before) earn_point = 10, earn_point = 10
      • after) earn_point = 0, earn_point = 7
  • 포인트 만료 처리
    • 각 포인트 적립 건에는 만료 기간이 존재함
    • 별도의 배치 작업을 통해 만료 기간이 지난 포인트는 자동으로 소멸 처리함
  • 포인트 집계 처리
    • 일별, 월별, 사용자별 등 통계 집계가 되어야 함

Action Plan

1. 간단하고 직관적인 방식

테이블

  • 포인트 적립 내역
  • 포인트 사용 내역
  • 포인트 차감 내역

2. Insert-only 방식

테이블

  • 포인트 이벤트 기록
    • 포인트의 적립, 사용, 만료 등 모든 이벤트를 기록
  • 포인트 상세 기록
    • 각 이벤트에 대한 세부 내역을 기록(포인트 차감 시 어느 적립 건에서 차감되었는지)

참고 https://techblog.woowahan.com/2587/

About

[practice] point system design

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published