날씨 알리미 프로그램 (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 코드를 실행합니다.
'자바(java)' 카테고리의 다른 글
캘린더 애플리케이션: 달력을 표시하고 일정을 추가하고 관리하는 애플리케이션을 제작합니다. (0) | 2023.12.19 |
---|---|
계산기: 기본적인 수학 연산을 수행하는 간단한 계산기를 디자인합니다. (0) | 2023.12.19 |
일기장 애플리케이션: 일기를 작성하고 저장하며 날짜별로 관리하는 애플리케이션을 개발합니다. (0) | 2023.12.19 |
투표 시스템: 사용자가 투표하고 결과를 표시하는 간단한 투표 시스템을 만듭니다. (0) | 2023.12.19 |
사진 슬라이드쇼: 이미지 파일을 가져와 자동으로 슬라이드쇼를 생성합니다. (0) | 2023.12.19 |