핵심 요약
펫프렌즈가 Spring 기반 AOP 기반 Feature Toggle 라이브러리를 도입해, 기능 토글의 활성화 여부에 따라 원본 메서드 실행 여부를 결정하고 필요 시 대체 메서드로 라우팅하는 구조를 구현했습니다.
구현 방법
- 멀티모듈 구조: internal, mvc, webflux 모듈 구성 및 의존성 최소화
- 커스텀 어노테이션: @ToggleRouter, @ToggleAlternative 사용
- ToggleHandler 마커 인터페이스로 AOP 대상 식별
- ToggleAspect: Around Advice로 토글 상태 확인 및 분기 처리
- 토글 상태 조회 저장소: ToggleSyncClient 및 WebClient 기반 SyncClient
- 라우팅 캐시/매핑: ToggleRouteRegistry
- 자동 구성: ToggleAutoConfiguration, ToggleInitializer를 통한 초기화 및 자동 스캔
주요 결과
- 외부 저장소에서 토글 상태 조회 및 동적 분기 지원
- 토글 활성화 시 원본 메서드 실행, 비활성화 시 "Disabled" 반환 또는 대체 메서드 실행
- 5초 타임아웃 설정을 통한 응답 지연 관리
- 애플리케이션 시작 시 대체 메서드 레지스트리 자동 구성으로 운영 편의성 향상

