본문 바로가기

자바(java)

날씨 알리미: API를 활용하여 날씨 정보를 가져와 사용자에게 보여주는 알리미를 만듭니다.

반응형

날씨 알리미 프로그램 (Java)


내용 설명
날씨 알리미는 API를 통해 실시간 날씨 정보를 수집하고 사용자에게 제공하는 프로그램입니다. 이 프로그램은 현재 기온, 습도, 풍속 및 기타 날씨 관련 정보를 사용자에게 보여줍니다.

프로그램 간 사용 함수 설명
connectToAPI: API에 연결하고 데이터를 요청하는 함수입니다.
parseJSON: 받아온 JSON 데이터를 파싱하여 필요한 날씨 정보를 추출하는 함수입니다.
displayWeather: 파싱된 날씨 정보를 사용자에게 보여주는 함수입니다.

 

코딩 내용

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
import org.json.JSONObject;

public class WeatherAlert {
    public static void main(String[] args) {
        String apiUrl = "http://api.openweathermap.org/data/2.5/weather?q=Seoul&appid=YOUR_API_KEY";
        String response = connectToAPI(apiUrl);
        JSONObject weatherData = new JSONObject(response);
        displayWeather(weatherData);
    }

    private static String connectToAPI(String apiUrl) {
        try {
            URL url = new URL(apiUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.connect();
            Scanner scanner = new Scanner(url.openStream());
            StringBuilder inline = new StringBuilder();
            while (scanner.hasNext()) {
                inline.append(scanner.nextLine());
            }
            scanner.close();
            return inline.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    private static void displayWeather(JSONObject weatherData) {
        double temperature = weatherData.getJSONObject("main").getDouble("temp") - 273.15; // Kelvin to Celsius
        int humidity = weatherData.getJSONObject("main").getInt("humidity");
        double windSpeed = weatherData.getJSONObject("wind").getDouble("speed");
        String description = weatherData.getJSONArray("weather").getJSONObject(0).getString("description");
        
        System.out.println("Temperature: " + temperature + "°C");
        System.out.println("Humidity: " + humidity + "%");
        System.out.println("Wind Speed: " + windSpeed + " km/h");
        System.out.println("Weather Description: " + description);
    }
}

 

전문 용어

API (Application Programming Interface): 애플리케이션 프로그래밍 인터페이스, 서로 다른 소프트웨어 간의 상호작용을 가능하게 하는 도구.
JSON (JavaScript Object Notation): 데이터 교환 형식으로 가볍고, 사람과 기계 모두 읽기 쉬운 텍스트 형식입니다.
파싱 (Parsing): 문자열로 된 데이터를 읽고 구문 분석을 통해 프로그램이 사용할 수 있는 형태로 변환하는 과정.

 


라이브러리 추가 및 실행 방법

필요한 라이브러리: Java JDK, JSON 처리를 위한 org.json 라이브러리 (json.org에서 다운로드 가능).
실행 방법: Java JDK를 설치하고, IDE(예: Eclipse, IntelliJ)에서 위의 Java 코드를 실행합니다.

반응형