React를 이용한 Weather App 만들기

hongcoder·2020년 9월 14일
0

Front-end

목록 보기
9/12

(Youtube: https://www.youtube.com/watch?v=GuA0_Z1llYU)

유투브를 통해 클론 코딩했던 나라별 날씨 체크를 하는 웹 튜토리얼이다.

이 프로젝트는 React와 React Hooks (useState)와 외부 API를 이용해서 만드는

작업이다.

제일 처음 터미널에서 리액트를 위한 CRA을 실행시켜준다.

npx install create-react-app

그리고 날씨 정보를 얻기 위해

openweathermap 홈페이지를 가입하고 current weather data API를 받아오자.

const api = {
	key: "~~",
	base: "https://api.openweathermap.org/data/2.5/"
}    

api 변수를 지정해서 개인 고유의 key값과 url의 값을 지정해주고

functional 컴포넌트로 시작한다.

uesState hook을 통해서 검색을 위한 query값과 지역 날씨의 데이터를 받을 객체의

디폴트 값을 공백과 빈 배열 주고 첫 번째 인자로 query, weather

변경하고자 하는값을 setQuery, setWeather 두 번째 인자로 준다.

그리고 search-bar에 원하는 장소를 적고(value) keyPress로 Enter를 쳤을 때,

fetch에서 backtick(``) 템플릿 리터럴을 통해

외부에서 가져온 api의 url 의 값에 우리가 원하는 지역명과 키값을 넣는다.

res.json()으로 JSON.stringify()메소드를 호출하여 파라미터를

JSON string 형태로 변환 한 뒤, res.send()를 호출하여 응답을 내보낸다.

이 search 변수를 통해서 도출한 날씨값과 지역값을 특정할 수 있다.

현재 Date값을 표시하기위해서 변수에 저장해두고 사용한다.

유투브 튜토리얼에서 유투버가 제공하는 이미지값을 이용하면 일정온도를 기준으로

배경을 따뜻하게 할지 차갑게 할지를 지정해줄 수 있다.

weather.main값은

이렇게 openweathermap에서 제공하는 형식으로 나오는데

typeof weather.main != 'undefined --weather.main값이 존재할 때,

삼항 연산자를 이용해서 weather.main의 기온이 16 이상일 때,

따뜻한 색의 배경, 그렇지 않으면(16도 이하일 때) 차가운 색상의 배경이 클래스값으로 나타난다.

input 필드에서 onChange값으로 변화가 있을 시 e.target.value로

인풋 필드에 입력한 값을 value로 하는 코드를 작성해서 엔터를 누르면 서치할 수 있도록 한다.

그리고 한번 더 삼항연산자를 이용해서 지역명과 해당 지역의 나라값을 입력해주고,

아까 빌드해 둔 dateBuilder를 통해서 new Date()값을 받아와 요일 날짜 월 년도를 입력해주고

Math.round(weather.main.temp)값으로 소숫점을 반올림해준다.

마지막으로 현재 지역의 날씨의 청명한 정도를 나타내는 지표를

weather.weather[0].main값으로 받아올 수 있다.

*현재 시각의 서울

*현재 시각의 런던


굉장히 심플하고 최소한의 기능을 구현한 이번 프로젝트를 통해서

리액트와 외부 api를 받아와서 실시간으로 웹을 구현해 볼 수 있었다.

리액트의 색채가 강하진 않았지만 useState를 이용해서 setState보다 짧고 간결하게

코드를 작성할 수 있었고 api를 통해 날씨를 가져오는 기본적인 api사용법을 알 수 있었다.

profile
기록하지 않으면 기억되지않음🧐

0개의 댓글