AOP 기반 Feature Toggle 라이브러리 심층 분석: 유연한 기능 제어를 위한 핵심 기술

by DD
6개월 전
조회수 7

AOP를 활용하여 Feature Toggle 기능을 구현, 서비스의 유연성을 확보함

Spring 기반의 멀티 모듈 구조로, mvc, webflux 환경을 지원하며, ToggleRouter 어노테이션을 통해 기능 제어

WebClient를 사용하여 외부 저장소 API를 호출, 싱글톤 기반 Registry를 통해 대체 메서드 관리

AOP 기반 Feature Toggle 아키텍처

AOP를 활용하여 ToggleAspect에서 @ToggleRouter 어노테이션이 적용된 메서드를 가로챈다. 구체적으로, ProceedingJoinPoint를 통해 원본 메서드 실행 전후에 토글 상태를 확인한다. 따라서, ToggleSyncClient를 통해 토글 상태를 조회하고, 활성화/비활성화 여부에 따라 다른 로직을 수행한다.

멀티 모듈 구조와 장단점

라이브러리는 mvc, webflux 모듈로 분리되어, 각 환경에 맞는 기능을 제공한다. Internal 모듈은 공통 인터페이스를 정의하여, 저장소 통신을 담당한다. 반면, 멀티 모듈 구조는 초기 설정 복잡성을 증가시킬 수 있다. 따라서, 서비스의 요구사항에 따라 적절한 모듈을 선택해야 한다.

싱글톤 Registry와 대체 메서드 관리

ToggleRouteRegistry@ToggleAlternative 어노테이션으로 등록된 대체 메서드를 관리한다. 구체적으로, 애플리케이션 시작 시 ToggleInitializer가 대체 메서드를 스캔하여 Registry에 저장한다. 따라서, AOP는 런타임에 routeKey를 기반으로 대체 메서드를 호출하여, 유연한 기능 전환을 가능하게 한다.

AOP 기반 Feature Toggle 라이브러리

댓글 0

첫 번째 댓글을 남겨보세요!