RateLimiter Gateway 적용 방식 선택

상태

승인

후보군

방안설명
명시적 래핑Gateway 메서드 내부에 TossRateLimiterFacade.execute(group) { } 로 직접 감싸는 방식
AOP 어노테이션@RateLimiter(name = "...") 어노테이션을 Gateway 메서드에 선언하는 방식

결정

명시적 래핑TossRateLimiterFacade.execute(group) { ... } 패턴 사용

결정 이유

  • TossRateLimiterFacade를 MockK로 단순 모킹해 테스트 가능성이 높음
  • 호출 스택이 직관적이어서 디버깅 용이
  • 컴파일 타임에 적용 여부를 확인할 수 있어 어노테이션 누락 위험 없음

검토 대안

방안기각 이유
AOP 어노테이션Proxy 생성 구조로 테스트 시 Mock이 복잡해짐, 어노테이션 누락 시 미적용 위험

트레이드 오프

  • 득: 테스트 가능성 확보, 명시적 호출 스택, 컴파일 타임 검증
  • 실: Gateway 메서드마다 래핑 코드 3~5줄 추가 (AOP 대비 코드량 증가)