이벤트 참여·보상 지급·등급 승급 플로우 구현
목차
feat: 이벤트 폼 내 보상 및 사용 여부 토글 기능 추가
이벤트/보상 시스템 구현 작업임. 이벤트 참여 → 보상 지급 → 등급 승급으로 이어지는 플로우를 구현했음.
이벤트 유형
| 유형 | 조건 | 보상 |
|---|---|---|
| 첫 충전 | 최초 1회 | 보너스 포인트 |
| 추천인 | 추천 코드 사용 | 양측 포인트 |
| 등급 달성 | 누적 구매 기준 | 혜택 쿠폰 |
| 기간 한정 | 특정 기간 내 | 이벤트 상품 |
이벤트 참여 검증
public boolean isEligible(EventParticipateDto dto) {
if (!event.isActive()) return false;
if (mapper.countParticipation(dto.getMemberSn(), dto.getEventSn()) > 0) return false;
return conditionChecker.check(event.getCondition(), dto.getMemberSn());
}
등급 승급 배치
@Scheduled(cron = "0 0 1 * * ?") // 매일 새벽 1시
public void runGradePromotion() {
List<Member> targets = gradeMapper.selectPromotionTargets();
targets.forEach(m -> gradeService.recalculate(m.getSn()));
}
개발 원칙 정리
이 작업을 진행하면서 재확인한 원칙들:
작은 커밋: 변경 단위를 작게 유지해서 코드 리뷰와 롤백이 쉽게.
테스트 먼저: 변경 전 현재 동작을 파악하고, 변경 후 동일하게 동작하는지 확인.
문서 동기화: 코드가 바뀌면 관련 주석과 문서도 같이 업데이트.
| 원칙 | 이유 |
|---|---|
| 단일 책임 | 하나의 함수/클래스는 하나의 역할만 |
| 명시적 코드 | 영리한 코드보다 읽기 쉬운 코드 |
| 실패 우선 처리 | happy path보다 에러 케이스 먼저 설계 |
끝
댓글 0
첫 댓글 달아줘.