# Dream Coding - React 9. Business Card Maker
## ==9.1 프로젝트 소개==
사용하는 기술 Stack
- React Hooks
- PostCSS
- React Router
- Firebase
- Authentication
- Realtime Database
- Cloudinary
## ==9.2 React Router란?==
### `Routing` in web
- a mechanism where HTTP requests gets link to specific web pages/resources
- Router determines which page should be opened when a user visits a certain path
### `SPA` (Single Page Application)
- React 는 대표적인 SPA를 활요하는 기술
- 브라우저 자체의 history (북마크, 뒤로가기, 네비게이션 등) 가 작동하지 않는 다는 문제점이 있음.
### `React Router`
[React Router: Declarative Routing for React](https://reactrouter.com/)
- SPA의 단점 (history 관리가 안됨) 을 보완한 React 라이브러리
- history를 관리할 수 있음
## ==9.3 React Router 실전 예제 연습==
### `BrowserRouter`
### `Link`
### `Switch`
### `Route`
### `usehistory`
⇒ 나중에 한 사람이 라이브러리 정리 할 것
- inline props로 component를 전달하지말고, child component로 전달할 것.
- 만약, component안에서 자체적으로 history 조작을 원하다면, `useHistory` 등의 Hook을 이용할 것
## ==9.4 Firebase 알아보기==
### Firebase
- 장점과 단점을 알아볼 것
- 서버를 왜 아직도 작성하고 있는가?
⇒ Serverless의 개념
### sdk
- software development kit
- public api 와 차이점을 비교해 볼 것
## ==9.5 Cloudinary 알아보기==
### `cloudinary`
- 사용자의 파일을 자유롭게 커스터마이징 할 수 있는 사이트
- 사이즈 재조정, 필터링 씌우기 등등
- 이미지 스토리지 활용에 효과적
- REST API 를 이용할 수 있으므로 개발 친화적
## ==9.7 프로젝트 셋업==
### Post CSS Values
- `PostCSS` 를 이용하면 훨씬 간단하게 만들 수 있음
- `@value key: value;` 로 선언
- `@value key from 'path'` 로 가져오면 됨
- CRA 에 포함된 플러그인들
`postcss-flexbugs-fixes`
`postcss-loader`
`postcss-normalize`
`postcss-preset-env`
`postcss-safe-parser`