첫 번째는 오픈웨더 API를 사용해서 날씨 표현.
두 번째는 실시간으로 바뀌는 시간.
세 번째는 자바스크립트로 글쓰기
네 번째는 To-do-list 작성
마지막은 배경화면 랜덤 변경
git https://github.com/leeyulgok/3-Day-1/blob/main/%EC%8B%A4%EC%8A%B5/practice4.js
const weatherElement = document.querySelector(".weather");
const getSeoulWeather = async () => {
const API_KEY = "my_api_key";
const LAT = 37.5683;
const LON = 126.9778;
const API_URL = `https://api.openweathermap.org/data/2.5/weather?lat=${LAT}&lon=${LON}&appid=${API_KEY}`;
try {
const response = await fetch(API_URL);
if (!response.ok) {
throw new Error("날씨 정보를 가져오는데 실패했습니다.");
}
const data = await response.json();
const weather = data.weather[0].main;
const temperature = Math.round(data.main.temp - 273.15);
weatherElement.textContent = `날씨: ${weather}, 온도: ${temperature}°C`;
} catch (error) {
console.log("날씨 정보를 가져오는데 실패했습니다.", error);
weatherElement.textContent = "날씨 정보를 가져오지 못했습니다.";
}
};
getSeoulWeather();
https://openweathermap.org/current
function updateTime() {
let date = new Date();
let hour = date.getHours();
let minutes = date.getMinutes();
let seconds = date.getSeconds();
let formattedTime =
formatTime(hour) + ":" + formatTime(minutes) + ":" + formatTime(seconds);
document.getElementById("clock").innerText = formattedTime;
}
function formatTime(time) {
return time < 10 ? "0" + time : time;
}
setInterval(updateTime, 1000);
const onAddList = (event) => {
event.preventDefault();
const inputField = document.getElementById("inputField");
const listItem = createListItem(inputField.value);
const listItems = document.getElementById("listItems");
listItems.appendChild(listItem);
inputField.value = "";
};
const createListItem = (text) => {
const listItem = document.createElement("li");
listItem.textContent = text;
const deleteButton = document.createElement("button");
deleteButton.textContent = "삭제";
deleteButton.addEventListener("click", () => {
listItem.remove();
deleteButton.remove();
});
const itemContainer = document.createElement("div");
itemContainer.classList.add("item");
itemContainer.appendChild(listItem);
itemContainer.appendChild(deleteButton);
return itemContainer;
};
본 후기는 유데미-스나이퍼팩토리 10주 완성 프로젝트캠프 학습 일지 후기로 작성 되었습니다.
#프로젝트캠프 #프로젝트캠프후기 #유데미 #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #리액트 #react #부트캠프 #리액트캠프
모야 언제 이렇게 준비하고있었어....!