자바 데이터 분석

자바 데이터 분석: 데이터를 이용한 유용한 정보 추출

데이터 분석은 현대 비즈니스에서 가장 핵심적인 역할을 합니다. 왜냐하면 데이터 분석을 통해 기업은 전략적인 의사결정을 내릴 수 있기 때문입니다. 그렇다면 자바를 이용한 데이터 분석은 어떻게 이루어지며, 어떤 과정을 거쳐 유용한 정보를 추출할 수 있는지 알아보겠습니다.

1. 데이터 수집

데이터 분석의 시작은 데이터 수집입니다. 데이터는 다양한 소스에서 수집될 수 있습니다. 외부 데이터 소스로는 공공데이터포털, 네이버 데이터랩 등이 있고, 내부 데이터 소스로는 기업의 데이터베이스, 파일 등이 있습니다. 여기서는 외부 데이터 소스로 한국전력공사의 한국전력 사용량 데이터를 수집해보도록 하겠습니다.

“`java
import java.net.URL;
import java.io.InputStream;
import java.net.HttpURLConnection;

public static String getElectricityData() throws Exception {
URL url = new URL(“http://openapi.kepco.co.kr/service/energyExportSvc/getEnergyList?ServiceKey=인증키&numOfRows=10&pageSize=10&pageNo=1&startPage=1&fromDate=20160101&toDate=20201231&supplyDemandDiv=A&prducdDiv=01”);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection.setRequestMethod("GET");
connection.setRequestProperty("Content-Type", "application/json");

InputStream inputStream = connection.getInputStream();
int responseCode = connection.getResponseCode();

if (responseCode == HttpURLConnection.HTTP_OK) {
    StringBuffer response = new StringBuffer();
    byte[] buffer = new byte[1024];

    while (inputStream.read(buffer) != -1) {
        response.append(new String(buffer));
    }
    inputStream.close();

    return response.toString();
}
return null;

}
“`

2. 데이터 전처리

수집한 데이터는 바로 분석에 이용하기 어렵습니다. 이 데이터를 처리하고 분석하기 용이한 형태로 바꾸는 과정을 전처리라고 합니다. 자바에서는 전처리를 위해 다음과 같은 라이브러리들을 이용할 수 있습니다.

  • Apache Commons
  • Google Guava
  • Jackson

“`java
import com.fasterxml.jackson.databind.ObjectMapper;

public static Electricity[] parseElectricityData(String rawData) throws Exception {
ObjectMapper mapper = new ObjectMapper();
ElectricityList electricityList = mapper.readValue(rawData, ElectricityList.class);
return electricityList.getBody().getItems();
}

public static class ElectricityList {
private ElectricityListBody body = new ElectricityListBody();

public ElectricityListBody getBody() {
    return body;
}

public void setBody(ElectricityListBody body) {
    this.body = body;
}

}

public static class ElectricityListBody {
private Electricity[] items = {};

public Electricity[] getItems() {
    return items;
}

public void setItems(Electricity[] items) {
    this.items = items;
}

}

public static class Electricity {
private String usageDate;
private String usageAmount;

public String getUsageDate() {
    return usageDate;
}

public void setUsageDate(String usageDate) {
    this.usageDate = usageDate;
}

public String getUsageAmount() {
    return usageAmount;
}

public void setUsageAmount(String usageAmount) {
    this.usageAmount = usageAmount;
}

}
“`

3. 데이터 분석

이제 전처리한 데이터를 바탕으로 자바를 이용한 데이터 분석을 진행해보겠습니다. 이번에는 전국의 한국전력 사용량을 월별로 분석해보도록 하겠습니다.

“`java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public static void analyzeElectricityData(Electricity[] electricityList) {
SimpleDateFormat sdf = new SimpleDateFormat(“yyyyMM”);
Map monthlyElectricityMap = new HashMap();

for (Electricity e : electricityList) {
    if (e.getUsageAmount() == null) {
        continue;
    }
    String usageDate = e.getUsageDate().substring(0, 6);
    int usageAmount = Integer.parseInt(e.getUsageAmount());

    if (monthlyElectricityMap.containsKey(usageDate)) {
        monthlyElectricityMap.put(usageDate, monthlyElectricityMap.get(usageDate) + usageAmount);
    } else {
        monthlyElectricityMap.put(usageDate, usageAmount);
    }
}

for (String month : monthlyElectricityMap.keySet()) {
    int monthlyUsage = monthlyElectricityMap.get(month);
    System.out.println(sdf.format(new Date()) + " " + month + ":\t" + monthlyUsage);
}

}
“`

4. 데이터 시각화

마지막으로, 분석한 데이터를 시각화하여 유용한 정보를 추출하는 작업을 진행해보겠습니다. 자바에서는 다음과 같은 라이브러리들을 이용해 데이터 시각화를 할 수 있습니다.

  • JFreeChart
  • JUNG
  • JMSL

“`java
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public static void visualizeElectricityData(Map monthlyElectricityMap) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();

for (String month : monthlyElectricityMap.keySet()) {
    int monthlyUsage = monthlyElectricityMap.get(month);
    dataset.addValue(monthlyUsage, "전국 한전 사용량", month);
}

JFreeChart lineChart = ChartFactory.createLineChart(
    "전국 한전 월간 사용량",
    "월",
    "사용량",
    dataset,
    PlotOrientation.VERTICAL,
    false,
    true,
    false
);

ChartFrame chartFrame = new ChartFrame("전국 한전 월간 사용량", lineChart);
chartFrame.setVisible(true);
chartFrame.setSize(800, 600);

}
“`

위 코드를 실행하면 다음과 같은 차트가 생성됩니다.

Chart

이제 전국의 한국전력 사용량을 월별로 분석하고 시각화하는 자바 데이터 분석의 전체 과정을 살펴보았습니다. 데이터 분석은 기업 전략 수립에 필수적이며, 이를 위해 자바를 이용하는 방법을 배워보는 것은 매우 중요합니다. 다음에는 자바를 이용한 머신러닝을 공부해보는 것을 추천합니다.