해결된 질문
작성
·
392
0
좋은 강의 감사드립니다.
덕분에 많은 걸 배워서 마음이 든든해 집니다.
그런데, 하나 궁금한 점이 있어서 여쭤보고 싶습니다.
우리 개발자들은 사실 귀찮은 걸 싫어하기 때문에 기술이 나날이 발전해 가는 것이라 생각이 되는데요, 강사님이 설명주신 부분처럼 Schema나 Payload를 계속해서 수동으로 만드는 것은 개발자 입장에서는 매우 비효율적일거라 생각이 됩니다.
따라서, 이미 저 부분을 해결하기 위한 많은 부분들이 고려되었을 것으로 예상이 되는데요, 혹시 저 부분을 편하게 등록할 수 있는 다른 방법이 있을까요? 키워드라도 주시면 찾아서 공부해 나가는데 큰 도움이 될 것 같습니다.
감사합니다.
답변 1
2
안녕하세요, 이도원입니다.
말씀하신 것처럼, Domain 처리를 위한 Business Logic을 구현하는 것 이외에, 다른 부수적인 작업들에 대해서, 개발자들이 번거럽게 생각하는 작업이 꽤 있습니다. 저 또한 그렇고요. 문의하신 내용은 Schema를 위한 자바 클래스 생성에 대한 부분인 것 같습니다. 우선 아파치의 아브로(AVRO) 프래임워크가 대표적일 것 같습니다. 자료형과 프로토콜 정의 등을 위해 JSON을 작성하고 해당 데이터를 직렬화하여 Kafka에서 필요로 하는 스키마에 맞게 메시지를 직렬화/역직렬화가 가능합니다. 아래와 같은 .avsc 파일을 생성 한 다음, 직렬화/역직렬화 처리를 구현하시거나, Confluent의 avro-kafka-connector 또는 아래와 같은 플러그인등을 사용하실 수도 있습니다.
User.avsc 파일 예시
{"namespace": "example.avro", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"}, {"name": "favorite_number", "type": ["int", "null"]}, {"name": "favorite_color", "type": ["string", "null"]} ] }
https://github.com/davidmc24/gradle-avro-plugin
https://www.confluent.io/hub/confluentinc/kafka-connect-avro-converter
감사합니다.