본문 바로가기

BackEnd304

[BigData] Ch12. 광고-구매 Join을 통한 광고효과 Streaming 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 이번 글에서는 광고와 구매 이력을 통한 스트리밍 서비스 개발을 다룬다. 사용자가 광고를 볼 때마다 해당 이력이 Kafka에 저장되며, 구매 이력 역시 지속적으로 기록된다. 광고와 구매 사이의 시간 차이는 있으나, 이를 감안하고 개발을 진행한다. 사용자가 광고를 본 제품을 구매할 경우, 광고가 효과적이었음을 판단하고 광고의 효과 비율을 분석한다.1. Kafka 설정 변경수정 전초기 Kafka 설정에서는 KafkaStreamsConfiguration을 통해 스트림의 기본 설정을 구성한다. 여기에는 애플리케이션 ID, 부트스트랩 서버 주소, 기본 키와 값의 SerDe 클래스 설정이 포함된다. 이 설정은 스트리밍 애플리케이션을 위한 기초적인 환.. 2024. 9. 19.
[BigData] Ch12. Kafka Stream을 활용한 KStream 개발(4) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 이번 글에서는 KStream이 아닌 K-Table을 활용하여 조인(join)을 구현하는 방법을 다룬다. K-Stream과 K-Table의 차이점KStream은 메시지가 오는 대로 모든 메시지를 처리한다.K-Table은 최신 상태만을 유지하며 중복된 키 값이 들어왔을 때는 가장 최신의 값으로 덮어쓴다. 즉, 실시간으로 상태(state)를 관리하는 테이블이라고 할 수 있다.K-Table을 이용한 조인 구현package com.example.kafkaproducer.service;import org.apache.kafka.common.serialization.Serdes;import org.apache.kafka.streams.StreamsB.. 2024. 9. 18.
[BigData] Ch12. Kafka Stream을 활용한 KStream 개발(3) - 스트림 조인 개념 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 이번 포스트에서는 Kafka Streams를 사용한 다양한 스트림 조인 개념에 대해 소개하며, 특히 외부 조인(outer join)에 대한 테스트 결과를 살펴본다.package com.example.kafkaproducer.service;import org.apache.kafka.common.serialization.Serde;import org.apache.kafka.common.serialization.Serdes;import org.apache.kafka.streams.StreamsBuilder;import org.apache.kafka.streams.kstream.*;import org.springframework.beans.fa.. 2024. 9. 18.
[BigData] Ch12. Kafka Stream을 활용한 KStream 개발(2) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 지난 시간에는 Kafka Streams를 활용한 필터링 기능 구현을 살펴보았다. 이번 시간에는 Kafka Streams의 또 다른 기능인 조인을 집중적으로 다룰 것이다. 조인을 사용하면 두 개의 스트림을 키 기반으로 결합하여 새로운 스트림을 생성할 수 있다. 이 과정에서 각 스트림의 데이터를 어떻게 효과적으로 결합할지 살펴볼 예정이다. 조인의 실행과 확인이번 실습에서는 두 개의 토픽 leftTopic과 rightTopic에서 데이터 스트림을 읽어, 각각의 데이터에서 ":" 기호 앞의 내용을 키로 선택하여 두 스트림을 조인했다. 결과적으로, 키 값이 일치하는 레코드들이 _ 기호를 사용하여 결합되었다. 조인된 스트림은 joinedMsg 토픽.. 2024. 9. 18.
[BigData] Ch12. Kafka Stream을 활용한 KStream 개발(1) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. KafkaConfig 설정Kafka Stream 설정을 위해 KafkaConfig 클래스에서 스트림 설정을 정의한다. Kafka Stream은 실시간 데이터 스트림 처리를 위한 기능을 제공하며, 이를 위해 애플리케이션 ID, 부트스트랩 서버 주소, 키와 값에 대한 직렬화 방법 등의 필수 정보를 설정한다. 복수의 Kafka 서버 주소를 포함시킴으로써 높은 가용성을 보장하고, 데이터 처리의 신뢰성을 높인다. 또한, 스트림 처리를 위한 병렬 처리 스레드 수도 설정할 수 있다.@Configuration@EnableKafka@EnableKafkaStreamspublic class KafkaConfig { @Bean(name = KafkaSt.. 2024. 9. 18.
[BigData] Ch12. Kafka Produce, Consuming 개발 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다.이번 글에서는 프로듀서와 컨슈머를 만들어 봄으로써 실제 어떤 식으로 스프링부트에서 카프카에 데이터를 넣고 뺄 수 있는지 알아본다. 1. 프로젝트 생성스프링 이니셜라이저를 이용해 새 프로젝트를 생성한다. 의존성 추가스프링 카프카, 스프링 웹 등의 필요한 의존성을 pom.xml에 추가한다. 이를 통해 카프카 프로듀서와 컨슈머 기능을 사용할 수 있다. 4.0.0 org.springframework.boot spring-boot-starter-parent 3.0.1 com.example kafkaExercise 0.0.1-SNAPSHOT kafkaPro.. 2024. 9. 18.