[오늘가챠] 가챠 배너 확장성 확보하기: Strategy & Factory Pattern

·
◈ Yermi Project/오늘가챠🃏
초기 오늘가챠 시스템의 뽑기(Gacha) 로직은 단일 엔드포인트와 단일 비즈니스 로직으로 구현되어 있었습니다. 모든 카드를 동일한 확률로 뽑고, 고정된 재화(Stamina)를 소모하는 형태였습니다. 하지만 서비스가 고도화되면서 다음과 같은 기획 요구사항이 추가되었습니다:일반 배너 (Normal): 전체 풀에서 뽑기소셜 배너 (Social): 친구가 올린 사진 위주의 뽑기테마 배너 (Theme): 동물, 풍경, 음식 등 특정 테마 카드만 등장하는 한정 배너이 요구사항을 기존 CardService에 if-else나 switch 문으로 전부 쑤셔넣으면 코드가 매우 비대해지고, 새로운 배너가 추가될 때마다 핵심 도메인 로직을 수정해야 하는 문제(OCP 위배)가 예상되었습니다. 이러한 문제를 해결하기 위해 객체..