[오늘가챠] 유저의 수집욕을 자극하라: 자체 업적 및 뱃지 시스템 구축

·
◈ Yermi Project/오늘가챠🃏
'오늘가챠' 앱의 핵심 재미 요소는 단순히 카드를 모으는 것을 넘어, 특정한 조건을 달성했을 때 뱃지(업적)와 보상을 획득하는 것입니다. 이를 구현하기 위해 백엔드에서 랭킹 통계와 배지 룰을 어떻게 조합했는지에 대한 이야기입니다.1. 하드코딩과 동적 생성의 조화뱃지는 'SSR 10장 수집', '특정 테마(음식) 50장 수집' 등 조건이 매우 다양합니다. 이를 일일이 DB에 데이터로 관리하면 유지보수가 어려워, 자바 코드 레벨에서 명시적으로 관리하는 BadgeDef 레코드를 도입했습니다. 실제 BadgeService.java의 뱃지 정의 코드입니다.// BadgeService.java — 뱃지 정의 레코드와 핵심 뱃지 목록public record BadgeDef(String id, String catego..