2. [앱과 서버] 우리 앱에서의 서버
- api유형에는 두 가지가 있다.
1. 서버가 제공하는 도메인(url주소) 사용해 데이터를 요청
2. 서버가 만들어 놓은 함수 사용해 데이터를 요청
- 우리가 쓸 서버는 json데이터를 줄거다
- 서버에 데이터를 요청하는 규칙을 API (application programming interface)라고 한다.
- 서버에 항상 api 를 따라 데이터를 요청하면 된다.
- useEffect안에서 필요한 데이터를 요청해 준비하고
- useState로 데이터를 활용할 것이다
3. [앱과 서버] 날씨 서버 외부 API - 휴대폰 위치 가져오기
[날씨 api 사용해보기]
1. 현재 위치(좌표) 필요 -> expo location 활용
2. 현재 위치 날씨 데이터 요청
우리가 사용할 날씨 api 공식문서
https://openweathermap.org/current
expo location 사용을 위한 공식문서 안내
https://docs.expo.dev/versions/latest/sdk/location/
설치하기
expo install expo-location
[async await]
- javascript 는 무거운 기능들(네트워크나 파일 시스템에 접근하는 무거운 기능들 ex.서버에서 데이터 받아오기, 갤러리 사진 가져오기)을 할 때 그냥 시키면 순서를 지키지 않고 빨리 끝나는 대로 결과값을 던져줌.
- 실행 순서를 꼭 지키고 싶을 때 사용.
- 함수 선언 시 앞에 async 를 붙임
- 순서를 지켰으면 하는 부분마다 await을 붙여줌. 첫번째 await부분의 실행이 끝난 후에야 그 다음 await 뒤의 코드가 실행됨.
4. [앱과 서버] 날씨 서버 외부 api - api 적용
api 사용을 위한 키 값을 발급
도메인을 사용한다고 했으니 도메인을 입력하고 연결할 도구를 사용해야 함 : axios
자바 스크립트 도구임.
yarn add axios
데이터에 대한 설명은 날씨 api의 공식문서 참고해야 함
https://openweathermap.org/current
복잡한 json데이터의 구조를 파악해 필요한 데이터를 뽑아내야 함
5. [서버리스] 서버를 사용만 하자! 서버리스(Serverless)란?
- 서버를 직접 구현할 필요없이 원하는 기능만 사용할 수 있도록 해주는 서비스
6. [파이어베이스] 파이어베이스(firebase) 소개
- 구글의 서버리스 서비스
- 로그인, db, storage등..
- 회원가입하고 프로젝트 생성. 구글 애널리틱스 새 계정 생성해도 되고.. 트래픽 등 분석 결과를 나중에 구글 애널리틱스에 해당 계정으로 들어가서 확인할 수 있음.
7. [파이어베이스] 파이어베이스를 앱에 연결하기
** Reactnative는 웹개발 언어로 개발중이므로 플랫폼 중 웹을 선택해야 함!!
앱 등록 후 나오는 firebaseConfig코드를 내 프로젝트에 넣어줘야 함
그 전에 내 프로젝트에 firebase를 설치해 줌
expo install firebase
firebaseConfig코드가 서비스 키 값 역할을 함
내 프로젝트의 components 폴더 안에 firebaseConfig라는 js파일을 새로 생성하고
그 안에 firebaseConfig코드가 포함된 코드를 넣음. 정확한 내용은 공식문서 참고
8. [파이어베이스] 파일 스토리지(storage)
Firebase 의 Storage 기능을 사용해 데이더를 저장하자.
Storage : 데이터를 url주소로 접근 할 수 있는 저장소.
Storage 생성을 하면 버킷(저장소)이 생성됨
새 폴더를 만들고 아무 이미지나 올려
9, 10, 11은 Realtime Database 관련 내용.
나는 주로 Firestore를 사용하왔어서 일단 안 듣고 넘어감.
ReactNative와 연결하는 방법은 나중에 들어두기
'ReactNative' 카테고리의 다른 글
[React Native] 스파르타 앱개발 종합반 5주차 (0) | 2021.08.15 |
---|---|
[React Native] 스파르타 앱개발 종합반 3주차 (0) | 2021.08.15 |
[React Native] 스파르타 앱개발 종합반 2주차 (0) | 2021.08.15 |
[React Native] 스파르타 앱개발 종합반 1주차 (0) | 2021.08.15 |