리팩토링(Refactoring) - 랜덤 쿠폰 뽑기 성능 개선하기
·
Refactoring
배경새해 기념 랜덤 쿠폰 이벤트 페이지를 개발하면서 기존 랜덤 쿠폰 발급 성능을 개선했던 과정을 정리해본다.가중치 기반 랜덤 알고리즘은 다음 글에서 정리했으니 궁금하다면 참고 바란다. Algorithms - 가중치 랜덤 알고리즘(랜덤 쿠폰 뽑기)배경커머스 플랫폼 개발에서 랜덤 쿠폰 지급 이벤트는 빈번히 요구되는 기능이다. 이러한 이벤트에서는 일반적으로 할인율이 낮은 쿠폰일수록 당첨 확률이 높고, 할인율이 높은 쿠폰일수록 당green-bin.tistory.com 개발 환경Java 8SpringIntelliJ 기존 로직기존 랜덤 쿠폰 발급 로직 흐름을 살펴보자가중치 배열을 순회하며 누적 합(runningTotal)을 계산각 누적 합을 리스트(totals)에 추가 총 누적 합 범위 내에서 랜덤 값(rando..
Algorithms - 가중치 랜덤 알고리즘(랜덤 쿠폰 뽑기)
·
Algorithms
배경커머스 플랫폼 개발에서 랜덤 쿠폰 지급 이벤트는 빈번히 요구되는 기능이다. 이러한 이벤트에서는 일반적으로 할인율이 낮은 쿠폰일수록 당첨 확률이 높고, 할인율이 높은 쿠폰일수록 당첨 확률이 낮다. 이를 구현하기 위해 각 쿠폰에 가중치를 부여하고, 랜덤하게 쿠폰을 발행하는 가중치 랜덤 알고리즘(Weighted Random Algorithm)이 사용된다. 이번 포스트에서는 이 알고리즘을 알아보고 실제 구현, 테스트까지 진행해보자.  가중치 랜덤 알고리즘(Weighted Random Algorithm)가중치 랜덤 알고리즘은 각 요소에 가중치를 할당해서 선택 확률을 조절하여 선택하는 알고리즘이다.가중치가 높을수록 선택될 확률이 높고 가중치가 낮을수록 선택될 확률이 낮다. 사용 사례게임 개발: 디아블로 시리즈를..
Cold Bean