RateLimiter Gateway 적용 방식 선택
상태
승인
후보군
| 방안 | 설명 |
|---|---|
| 명시적 래핑 | Gateway 메서드 내부에 TossRateLimiterFacade.execute(group) { } 로 직접 감싸는 방식 |
| AOP 어노테이션 | @RateLimiter(name = "...") 어노테이션을 Gateway 메서드에 선언하는 방식 |
결정
명시적 래핑 — TossRateLimiterFacade.execute(group) { ... } 패턴 사용
결정 이유
TossRateLimiterFacade를 MockK로 단순 모킹해 테스트 가능성이 높음- 호출 스택이 직관적이어서 디버깅 용이
- 컴파일 타임에 적용 여부를 확인할 수 있어 어노테이션 누락 위험 없음
검토 대안
| 방안 | 기각 이유 |
|---|---|
| AOP 어노테이션 | Proxy 생성 구조로 테스트 시 Mock이 복잡해짐, 어노테이션 누락 시 미적용 위험 |
트레이드 오프
- 득: 테스트 가능성 확보, 명시적 호출 스택, 컴파일 타임 검증
- 실: Gateway 메서드마다 래핑 코드 3~5줄 추가 (AOP 대비 코드량 증가)