Kafka Streams SerDes Explained 🚀 | JSON & Custom in Spring Boot @Javatechie
- Kafka Streams에서 문자열 대신 객체를 처리하기 위해 직렬화/역직렬화(SerDes)가 필수적입니다. 🔄
- SerDes는 Serializer와 Deserializer의 약자로, 데이터를 바이트 배열로 변환하거나 다시 객체로 변환하는 역할을 합니다. 📚
JsonSerde를 사용하면 객체를 JSON 문자열로 쉽게 직렬화/역직렬화할 수 있으며, 프로듀서, 스트림 애플리케이션, application.yml에서 설정 가능합니다. 💡
- 하지만
JsonSerde는 프로덕션 환경에서 데이터 압축, 암호화, 스키마 진화, 특정 필드 숨기기 등 세밀한 제어가 어렵다는 한계가 있습니다. 🚧
- 프로덕션 환경에서는
Serializer와 Deserializer 인터페이스를 직접 구현하여 커스텀 SerDes를 정의하는 것이 권장됩니다. 🛠️
- 커스텀 SerDes는 객체를 바이트 배열로 변환하는
Serializer와 바이트 배열을 객체로 변환하는 Deserializer를 구현하고, 이를 Serdes.Wrapper를 상속받는 커스텀 Serde 클래스로 래핑하여 사용합니다. 🎁
- 커스텀 SerDes를 사용하면 데이터 처리 방식에 대한 완벽한 제어가 가능하며, 스트림 애플리케이션과
application.yml에 해당 클래스를 지정하여 적용합니다. ✅
- 향후 강의에서는 Kafka Streams의 윈도잉, 그룹 바이 등 고급 기능들을 다룰 예정입니다. 📈
데브허브 | DEVHUB | Kafka Streams SerDes Explained 🚀 | JSON & Custom in Spring Boot @Javatechie