Avro - Kafka의 데이터 구조
2026년 8월 4일
개요
카프카를 이용할 경우 프로듀서와 컨슈머는 메시지 기반 통신을 한다. 만약 JSON 형식으로 메시지를 공유한다고 가정하자. 이때 프로듀서가 생성하는 메시지의 포맷을 컨슈머도 공유해야 한다. 이런 부분은 개발자끼리 의사소통하여 해결해야 한다. 이러한 방식은 구조적으로 실수를 막을 수 없다. 이 문제를 해결하기 위한 데이터 구조가 Avro다.
핵심 개념
- 바이너리 기반에 메시지 전송으로 성능이 빠른 카프카의 데이터 구조다.
- Avro를 사용하면 사전에 정의된 스키마에 맞춰 DTO를 자동으로 생성, 직렬화/역직렬화 시 스키마를 기반으로 타입을 강제할 수 있다.
- Kafka는 Schema Registry를 함께 사용한다. 프로듀서 측에서 Schema Registry에 스키마 정보를 등록하고 컨슈머는 메시지를 받은 후 Schema Registry에서 스키마 정보를 획득하고 메시지를 역직렬화하여 사용한다.
- 복잡한 분산 처리 환경에서 사람의 실수를 줄일 수 있으며 메시지 스키마 관리에 용이하다.
댓글