인프런 커뮤니티 질문&답변

밤의멜로디님의 프로필 이미지
밤의멜로디

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Orders Microservice 수정 - Orders Kafka Topic

강사님 Schema에 대해 궁금점이 있습니다.

해결된 질문

작성

·

392

0

좋은 강의 감사드립니다.

덕분에 많은 걸 배워서 마음이 든든해 집니다.

그런데, 하나 궁금한 점이 있어서 여쭤보고 싶습니다.

우리 개발자들은 사실 귀찮은 걸 싫어하기 때문에 기술이 나날이 발전해 가는 것이라 생각이 되는데요, 강사님이 설명주신 부분처럼 Schema나 Payload를 계속해서 수동으로 만드는 것은 개발자 입장에서는 매우 비효율적일거라 생각이 됩니다.

따라서, 이미 저 부분을 해결하기 위한 많은 부분들이 고려되었을 것으로 예상이 되는데요, 혹시 저 부분을 편하게 등록할 수 있는 다른 방법이 있을까요? 키워드라도 주시면 찾아서 공부해 나가는데 큰 도움이 될 것 같습니다.

 

감사합니다.

답변 1

2

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

말씀하신 것처럼, 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://avro.apache.org/

https://www.confluent.io/hub/confluentinc/kafka-connect-avro-converter

감사합니다.

 

밤의멜로디님의 프로필 이미지
밤의멜로디

작성한 질문수

질문하기