[java] 카프카에서 자바로 데이터 시각화

카프카(Kafka)는 대용량의 데이터를 신속하게 처리하기 위한 분산 메시징 시스템입니다. 자바(Java)는 카프카와의 통신 및 데이터 처리를 위한 많은 라이브러리와 프레임워크를 제공하므로, 카프카에서 받은 데이터를 자바로 시각화하는 것은 간단한 작업입니다.

카프카에서 데이터 수신

카프카에서 데이터를 수신하려면, 먼저 카프카의 클라이언트 라이브러리를 사용하여 데이터를 subscribe해야 합니다. 다음은 카프카의 KafkaConsumer를 사용하여 데이터를 수신하는 예제입니다.

import org.apache.kafka.clients.consumer.*;
import org.apache.kafka.common.serialization.StringDeserializer;

import java.util.*;

public class KafkaConsumerExample {
    private static final String TOPIC = "my-topic";
    private static final String BOOTSTRAP_SERVERS = "localhost:9092";
    private static final String GROUP_ID = "my-group";

    public static void main(String[] args) {
        Properties props = new Properties();
        props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, BOOTSTRAP_SERVERS);
        props.put(ConsumerConfig.GROUP_ID_CONFIG, GROUP_ID);
        props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
        props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());

        KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
        consumer.subscribe(Collections.singleton(TOPIC));

        while (true) {
            ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
            for (ConsumerRecord<String, String> record : records) {
                // 데이터 처리 및 시각화 로직
                System.out.println(record.value());
            }
        }
    }
}

위의 예제는 “my-topic”이라는 토픽에서 메시지를 수신하고, 받은 메시지를 화면에 출력하는 간단한 예제입니다.

데이터 시각화

카프카에서 받은 데이터를 시각화하기 위해서는 자바에서 사용할 수 있는 다양한 시각화 라이브러리를 활용할 수 있습니다. 예를 들어, JFreeChart 라이브러리를 사용하여 그래프를 그릴 수 있습니다. 다음은 간단한 선 그래프를 그리는 예제입니다.

import org.jfree.chart.*;
import org.jfree.data.xy.*;

import javax.swing.*;

public class DataVisualizationExample {
    public static void main(String[] args) {
        XYSeries series = new XYSeries("Data");
        series.add(1, 10);
        series.add(2, 20);
        series.add(3, 30);

        XYSeriesCollection dataset = new XYSeriesCollection(series);

        JFreeChart chart = ChartFactory.createXYLineChart(
                "Data Visualization",
                "X",
                "Y",
                dataset,
                PlotOrientation.VERTICAL,
                true,
                true,
                false
        );

        ChartPanel chartPanel = new ChartPanel(chart);
        
        // 그래프 화면에 표시
        JFrame frame = new JFrame("Data Visualization");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

위의 예제는 JFreeChart 라이브러리를 사용하여 X축과 Y축에 데이터를 입력하고, 선 그래프를 그리는 간단한 예제입니다. 데이터의 수신과 그래프의 그림 로직을 결합하여 원하는 데이터를 시각화할 수 있습니다.

결론

이 글에서는 카프카에서 자바로 데이터를 시각화하는 방법에 대해 알아보았습니다. 카프카에서 데이터를 받아오는 것은 KafkaConsumer를 사용하여 간단하게 처리할 수 있으며, 시각화를 위해서는 자바의 다양한 시각화 라이브러리를 활용할 수 있습니다. 데이터 시각화는 대량의 데이터를 관리하고 시각적으로 분석하기 위한 효과적인 도구입니다.