주간 날씨 예보 애플리케이션 개발

JavaScriptBeginner
지금 연습하기

소개

이 프로젝트에서는 특정 위치의 주간 날씨 정보를 표시하는 날씨 예보 애플리케이션을 만드는 방법을 배우게 됩니다. 이 프로젝트는 API 에서 날씨 데이터를 가져오고, 응답을 파싱하며, HTML 요소를 동적으로 업데이트하여 사용자에게 날씨 예보를 제공하는 것을 포함합니다.

👀 미리보기

weather forecast app preview

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • jQuery 의 AJAX 기능을 사용하여 API 에서 날씨 예보 데이터를 가져오는 방법
  • 가져온 데이터를 웹 페이지의 해당 HTML 요소에 바인딩하는 방법
  • 주간 날씨 예보 정보를 사용자 친화적인 형식으로 표시하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • 사용자에게 주간 날씨 정보를 제공하는 간단한 날씨 예보 애플리케이션을 만들 수 있습니다.
  • API 에서 데이터를 가져오기 위해 AJAX 요청을 하는 방법을 이해할 수 있습니다.
  • jQuery 를 사용하여 DOM 을 조작하고 HTML 요소를 업데이트하는 능력을 보여줄 수 있습니다.

프로젝트 구조 설정

이 단계에서는 프로젝트 파일과 구조를 설정합니다. 이 단계를 완료하려면 아래 단계를 따르세요:

프로젝트 폴더를 엽니다. 디렉토리 구조는 다음과 같습니다:

├── images        ## 이미지 리소스
├── js            ## js 파일 및 json 파일 디렉토리
├── index.html    ## 날씨 예보 페이지
├── style.css     ## css 파일

WebIDE 의 오른쪽 하단 모서리에 있는 Go Live 버튼을 클릭하여 프로젝트를 실행합니다.

다음으로, VM 상단의 "Web 8080"을 열고 수동으로 새로 고치면 페이지가 표시됩니다.

Initial project structure view
✨ 솔루션 확인 및 연습

날씨 예보 데이터 가져오기

이 단계에서는 제공된 API 를 사용하여 W-town 의 주간 날씨 예보 데이터를 가져오는 방법을 배웁니다.

  1. 코드 편집기에서 js/index.js 파일을 엽니다.
  2. 날씨 예보 데이터를 가져오는 역할을 하는 getweather() 함수를 찾습니다.
  3. getweather() 함수 내에서 jQuery $.get() 메서드를 사용하여 js/weather.json API 엔드포인트에 GET 요청을 보냅니다.
// TODO
$.get("js/weather.json", function (data) {
  // Bind the weather forecast data to the HTML elements
  // ...
});
  1. API 에서 반환된 응답 데이터는 data 매개변수로 콜백 함수에 전달됩니다. 이 데이터에는 주간 날씨 예보 정보가 포함되어 있습니다.
✨ 솔루션 확인 및 연습

날씨 예보 데이터를 HTML 에 바인딩

이 단계에서는 가져온 날씨 예보 데이터를 페이지의 해당 HTML 요소에 바인딩하는 방법을 배웁니다.

  1. $.get() 메서드의 콜백 함수 내에서 데이터를 HTML 에 바인딩하는 코드를 찾습니다.
  2. jQuery 를 사용하여 날씨 아이콘, 날씨 설명, 온도 및 바람 정보와 같은 필요한 HTML 요소를 선택합니다.
function getweather() {
  // TODO
  $.get("js/weather.json", function (data) {
    let item = $(".item");
    let img, one, two, three, time;
    for (let i = 0; i < data.result.length; i++) {
      img = item[i].children[0];
      one = item[i].children[1].children[0];
      two = item[i].children[1].children[1];
      three = item[i].children[1].children[2];
      time = item[i].children[1].children[3].children;
      img.src = data.result[i].weather_icon;
      one.innerText = data.result[i].weather;
      two.innerText = data.result[i].temperature;
      three.innerText = data.result[i].winp;
      time[0].innerText = data.result[i].days;
      time[1].innerText = data.result[i].week;
    }
  });
}
  1. 위의 코드는 주간 날씨 예보 정보를 포함하는 data.result 배열을 반복합니다. 각 항목에 대해 해당 HTML 요소를 선택하고 API 응답의 데이터로 내용을 업데이트합니다.
  2. 변경 사항을 js/index.js 파일에 저장합니다.
  3. 웹 페이지를 새로 고치면 대상 이미지에 표시된 것처럼 주간 날씨 예보 정보가 표시됩니다.
Weekly weather forecast display

축하합니다! API 에서 데이터를 가져와 페이지의 HTML 요소에 바인딩하여 날씨 예보 프로젝트를 성공적으로 완료했습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.