데이터 패치
로컬 데이터: 동적 호출(Dynamic Import) 방식 활용
원격 데이터: Promise 또는 Async/Await를 사용하여 비동기 호출
응답(Response) 받은 데이터를 사용해 컴포넌트 상태 업데이트
※ 비동기 통신을 사용한 데이터 패치 과정은 부작용(Side Effect)의 범주에 해당되므로 라이프 사이클 훅 함수를 사용해야 합니다.
1. 로컬 데이터, 동적 import 활용
로컬 JSON 데이터를 동적으로 호출한다.
class App extends Component {
// 메서드
fetchData = () => {
import('@api/ediyaDB.json')
.then(module => console.log(module))
.catch(error => console.error(error.message));
};
// 라이프 사이클 훅
componentDidMount() {
this.fetchData();
}
}
2. 원격 데이터, fetch API (Promise) 활용
Firebase의 ediyaDB.json 데이터를 비동기 통신 요청하여 응답 받은 데이터를 JSON으로 변경하여 패치(Fetch) 할 수 있습니다.
Firebase에 새로운 프로젝트를 생성한 후, 실시간 데이터베이스를 만들어 JSON을 추가한 다음 원격 서비스에 이용할 수 있습니다.
2.1 src/App/App.js
process.env를 통해 등록한 환경 변수 값을 가져와 데이터를 패치하는 구문을 작성합니다.
2.2 원격 데이터, Async/Await 활용
ES7의 async 함수를 사용해 데이터 패치를 비동기 통신으로 처리해봅니다.
3. Firebase 데이터베이스
Firebase실시간 데이터베이스를 사용하여 JSON을 원격으로 서비스 할 수 있습니다.

다음의 Firebase 데이터베이스 규칙을 참고하여 원하는 규칙을 설정합니다. (개발 중에는 '공개 규칙' 사용)
3.1 기본 규칙
3.2 공개 규칙
3.3 인증된 사용자 규칙
Last updated
Was this helpful?