개발 slecs

이벤트 참여·보상 지급·등급 승급 플로우 구현

목차

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

첫 댓글 달아줘.