비동기 마이크로서비스 아키텍처에서 Kafka와 같은 메시징 채널을 통한 통신은 확장성과 복원력을 향상시키지만, REST API의 Swagger와 같은 표준화된 문서화 도구가 없어 디버깅 및 이해에 어려움이 있습니다. 🤯
SpringWolf는 Spring Boot 코드에서 직접 비동기 API 문서를 자동으로 생성하여, Kafka와 같은 메시징 기반 이벤트 중심 서비스의 계약을 Swagger처럼 쉽게 파악할 수 있도록 돕습니다. 💡
대출 처리 시스템 예시를 통해, SpringWolf가 복잡한 마이크로서비스 환경에서 어떤 서비스가 생산자이고 소비자인지, 그리고 메시지 페이로드 구조가 어떻게 되는지 명확하게 문서화하는 과정을 보여줍니다. 🏦
SpringWolf 설정은 pom.xml에 두 가지 의존성 추가와 application.yml에 최소한의 설정(활성화, 기본 패키지, API 정보, Kafka 서버)만으로 가능하며, 생산자 정보 표시 및 UI에서 메시지 발행을 위해 추가적인 어노테이션과 Kafka 프로듀서 설정이 필요합니다. ⚙️
SpringWolf는 생산자/소비자 식별, 토픽 이름, 페이로드 스키마, 헤더 정보 등 비동기 통신의 모든 계약 정보를 Swagger와 유사한 UI로 제공하며, 필요시 UI에서 직접 메시지를 발행할 수 있는 강력한 기능을 제공합니다. 🚀
기본적으로 SpringWolf는 Kafka 외에도 RabbitMQ, ActiveMQ, JMS 등 다양한 메시징 채널을 지원하며, 각 채널에 맞는 프로토콜 및 호스트 설정과 어노테이션 변경을 통해 유연하게 적용할 수 있습니다. 🌐
UI에서 메시지 발행 기능은 보안상의 이유로 기본적으로 비활성화되어 있지만, 특정 환경에서 springwolf.kafka.publishing.enabled=true 설정을 통해 활성화할 수 있으며, 환경별 부트스트랩 서버를 지정하여 안전하게 테스트할 수 있습니다. 🔒