묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
직렬화, 역직렬화 관련
안녕하세요. 좋은 강의 감사합니다.직렬화, 역직렬화 관련해서 질문이 있습니다.저는 Spring 프레임워크를 사용해서 프로듀서와, 컨슈머를 각각 따로 서버를 만들어서 개발 하고 있습니다.수업 내용은 단순히 String이지만 제가 실무에 사용하려고하는건 웹 애플리케이션 과 같이 DTO 클래스로받은 데이터를 그대로 프로듀서에서 send()에 담아서 보내고 있습니다. 컨슈머에서 DTO로 받으려고관련 자료를 찾아 보니 JsonSerializer가 있어 해보았습니다. Object 로 받아서 여러 DTO를 받을 수 있는Consumer factory를 만들다 보니 여러 에러가 발생해서 ObjectMapper를 사용했습니다.@Component public class ObjectMapperService { private final ObjectMapper objectMapper = new ObjectMapper(); public <T> T convertValue(String json, Class<T> valueType) throws JsonProcessingException { return objectMapper.readValue(json, valueType); } }@Component @Slf4j @Data @RequiredArgsConstructor public class KafkaConsumer { private final ObjectMapperService mapper; @KafkaListener(topics = "member-join", containerFactory = "commonKafkaListenerContainerFactory") public void receiveMemberJoin(ConsumerRecord<String, String> consumerRecord, Acknowledgment acknowledgment) throws Exception { String value = consumerRecord.value(); MemberJoin memberJoin = mapper.convertValue(value, MemberJoin.class); String recommendCode = memberJoin.getRecommendCode(); log.info("recommendCode: {}", recommendCode); log.info("received payload = {}", memberJoin.toString()); acknowledgment.acknowledge(); } }이런식으로 사용해서 DTO클래스로 사용했는데 실무에서는 어떤식으로 하는지 궁금합니다. 혹시 참고할 수 있는 정보가 있을까요?감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
직렬화에 대한 추가질문
안녕하세요 강사님. 정성스러운 강의 감사히 잘 듣고 있습니다. 해당 강의 질문 내역 중 serializable 인터페이스를 구현한 객체에 대해서 아래와 같이 답변해 주신 것을 확인했습니다. 과정에서 특정 클래스에만 직렬화를 한것은 특별한 이유없이 작업된 것 같습니다. CatalogEntity에도 직렬화를 해 주는 것이 좋습니다. 위 답변주신 내용을 저는 CatalogEntity와 CatalogDto 객체에는 Serializable이 필요하고, ResponseCatalog는 없어도 된다(?)로 이해했습니다. 질문드리고 싶은 것은 아래 2가지 입니다.. 1. 객체에 serializable의 구현이 필요한 기준은 무엇이 되면 좋을까요 ?? 2. 현재 강의에서 진행중인 프로젝트에서 serializable을 구현하지 않음으로써 발생할 수 있는 상황이 존재할까요 ?? (CatalogDto에 Serializable을 구현하지 않고 /catalogs 호출까지는 문제(에러)를 직면하지 못했습니다.) 부족한 경험으로 인해 직렬화에 대한 개념이 추상적으로만 다가와 어려운 마음에 질문드립니다. 감사합니다.