프론트엔드 개발자가 될거야./react

[1인 헤어샵 예약 시스템 구현기] 초기세팅과 firebase (기술스택: react, ts, redux-toolkit, styled-component + firebase)

정니정은니 2022. 10. 21. 16:14

부트캠프를 수료한 후 개인적으로 typeScript, redux-toolkit을 공부해서 프로젝트 리팩토링도 하고 개인 프로젝트도 했다.

기초적인 toDoList, 가위바위보 게임을 구현했었기에 더 깊게 파볼 수 있는 프로젝트를 하고싶었다.

이에 적절한 토이프로젝트가 뭐가 있을까? 고민하다가 1인 미용실 예약 시스템을 구현하기로 했다.

기술스택은 react, ts, redux-toolkit, styled-component + firebase 이정도!

항상 backend가 없어서 한정적인 데이터만 보여줄 수 있으니 아쉬웠는데 firebase로 예약정보를 관리해보려고 한다.

기대된다!!!! firebase과의 만남...

 

이 글에는 초기세팅과 firebase를 어떻게 세팅하는지 적어보려고한다.

 

https://jeongeuni.tistory.com/74

 

[1인 헤어샵 예약 시스템 구현기] firebase로 실시간 예약 시스템 구현하기

백엔드가 없으면 한정된 mock데이터로만 작업해야 하는 아쉬움이 있었다. 이번에 firebase을 공부해서 실시간으로 user의 데이터가 반영되는 헤어샵 예약 시스템을 만들었다. 이거 구현할 수 있을까

jeongeuni.tistory.com


📌 1인 미용실 예약 서비스

나만 알아볼 수 있겠지만.. 나름 구상해봤다.

1인 헤어샵이며 페이지는 home, 예약하기, 예약확인 이렇게 구성되어있다.


📌 초기세팅

1. 타입스크립트 템플릿 다운받기

npx create-react-app typescript --template typescript- 설치

 

2. Router 다운받기

npm i react-router react-router-dom
npm i -D @types/react-router @types/react-router-dom

 

3. redux 다운받기

npm i @reduxjs/toolkit @types/react-redux

 

4. styled-component 다운받기

npm i --save styled-components
npm i --save-dev @types/styled-components
npm i styled-reset

 

5. eslint, prettier 다운받기

npm i -D eslint prettier
npm i -D @typescript-eslint/eslint-plugin @typescript-eslint/parser
npm i -D eslint-config-airbnb
npm i -D eslint-config-prettier eslint-plugin-prettier
npm i -D eslint-plugin-react eslint-plugin-react-hooks
npm i -D eslint-plugin-jsx-a11y eslint-plugin-import

이렇게 다운받고 eslint, prettier, tsconfig.json, 폴더구조 초기세팅을 한 후 git에 올렸다.

 


📌 firebase 설정하기

1. 먼저 코딩애플을 보자! 그럼 이해가 잘된다.

https://www.youtube.com/watch?v=bJ-33ANIScE&t=191s 

 

2. firebase에서 프로젝트를 추가해주자!

 

3. 그리고 웹에서 프로젝트를 진행할 것이니 </> 를 누른다.

4. vscode에 가서 firebase를 설치해주자.

npm i firebase

 

5. src폴더 아래에 firebase.ts를 만들고 세팅해주자. (js기반이면 firebase.js)

import firebase from "firebase/compat/app";
import "firebase/compat/firestore";

const firebaseConfig = {
 //자신의 것 복붙
};

firebase.initializeApp(firebaseConfig);

const firestore = firebase.firestore();

export { firestore };

 

6. index.tsx에서 firebase가 잘 들어갔는지 확인해보자.

import React from "react";
import ReactDOM from "react-dom/client";
import { Provider } from "react-redux";
import { App } from "./components/App";
import { GlobalStyle } from "./styles/Global.style";
import store from "./store/store";
import firestore from "./firebase";

console.log(firestore);

const root = ReactDOM.createRoot(
  document.getElementById("root") as HTMLElement
);
root.render(
  <React.StrictMode>
    <GlobalStyle />
    <Provider store={store}>
      <App />
    </Provider>
  </React.StrictMode>
);

7. 잘 찍히면 성공 : )