오늘 데일리미션은 SQL 과제의 복습이었기 때문에 미뤄두었던 인강의 진도를 나가기로 했다. 그리고 마침 오늘 진도가 자바스크립트를 활용하여 웹페이지를 꾸미는 것이기 때문에 오늘의 TIL주제로 적절할 것 같다는 생각이 들었다.
과제는 다음과 같다.
데일리모토에 실시간 서울 날씨 API를 적용해보세요.
수업을 진행하면서 제작한 데일리 모토 사이트의 우측상단에 현재 서울의 날씨를 적용하면 된다.
let weather_url = "http://spartacodingclub.shop/sparta_api/weather/seoul";
fetch(weather_url)
.then(res => res.json())
.then(data => {
console.log(data);
weather_url을 해당 서버으로 정의한다. 그리고 fetch를 통해서 해당 서버로부터 데이터를 가져온다. 그리고 그 응답을 JSON으로 변환 한 후 data 변수에 저장을 해서 콘솔창에 출력하도록 한다.
데이터가 정상적으로 콘솔창에 표시되는 것을 확인했다. 이제 해당 데이터를 프론트에 표시되도록 하면 된다.
우선 vscode로 돌아와서 현재온도를 표시하고 있는 부분을 찾아서 그 부분에 id를 설정해주자.
<p>날씨 맑음, 20ºC</p>
<p id = 'quoteweather'>날씨 맑음, 20ºC</p>
그 다음으로 temp라는 변수에 위에서 구한 현재온도를 입력한 후 설정한 id에 표시하도록 설정하면 된다.
let temp = data['temp']
$('#quoteweather').text(`날씨 맑음, ${temp}°C`)
마지막으로 현재 온도가 변화할 때 즉시 반영할 수 있도록 작성한 구문을 함수로 만들어준다.
function currenttemp() {
let weather_url = "http://spartacodingclub.shop/sparta_api/weather/seoul";
fetch(weather_url)
.then(res => res.json())
.then(data => {
let temp = data['temp']
$('#quoteweather').text(`날씨 맑음, ${temp}°C`)
})
}
이제 지속적으로 온도를 업데이트 하기 위해서 30분(180,000밀리초)마다, 그리고 페이지가 실행될때 자동으로 해당 함수가 작동하도록 설정을 해주면 된다.
setInterval(currenttemp, 1800000);
currenttemp();
'내일배움캠프' 카테고리의 다른 글
본캠프 3일차 (0) | 2024.06.26 |
---|---|
본캠프 2일차 (0) | 2024.06.25 |
아티클스터디 - 웹 개발을 위해 Python을 배우는 것의 장점은? (1) | 2024.06.20 |
Lv3. 단어 맞추기 게임 - 복습 (2) | 2024.06.19 |
Lv2. 스파르타 자판기 - 복습 (0) | 2024.06.18 |