2021-05-29 : ๋ฆฌ์กํธ๋ฅผ ์ค๋๋ง์ ์จ๋ณด์๋๋ฐ, ๊ธฐ์ด์ ์ธ๊ฒ๋ง ๋ค๋ฃจ์ด ๋ณด์์ง๋ง ์ ๋ง์ด์ง ํ๋๋ ๊ธฐ์ต์ด ์๋์ ์ฒ์๋ถํฐ ๋ค์ ์์ํ๋ ๊ธฐ๋ถ์ด์๋ค.
- ์ฐ์ npm library๋ค์ ๋ฒ์ ผ์ ๋ง์ถ์ด ์ฃผ์๋๋ฐ
DevTools warning: SharedArrayBuffer will require cross-origin isolation
์ ๋ ์ ์ฌ๋ผ์ง์ง ์๋๊ฒ์ธ๊ฐ. - ๊ธ๋ก๋ฒ ์คํ์ผ , css-in-js ๋ฐฉ์์ผ๋ก ์คํ์ผ๋ค์ ์ ์ฉํด์ฃผ์๋ค.
- src\components ํ์ ํด๋์ Button, Header, Layout, Navigation ์ ๋ง๋ค์๋ค
- GlobalStyle์ ๋ง๋ค์ด ํ๋ก์ ํธ ์ ๋ฐ์ ์ฌ์ฉ ๋ css๋ฅผ ์ฌ์ ์ ํด์ฃผ์๋ค
component์ ์๊ธ์๋ ๋๋ฌธ์๋ก ๋ง๋ค์ด์ผ ํ๋ค. ์ด์ ๋ HTML ์์์์ ์ถฉ๋์ ํผํ๊ธฐ ์ํด์๋ค.
- ๊ฐ ํ์ด์ง๋ณ ์ด๋์ ์ํด
import { BrowserRouter as Router, Route } from 'react-router-dom';
๋ฅผ ํด์ฃผ์๊ณ ์ฌ์ฉ์ ๋ฐ์์ ๊ฐ์ด
import { BrowserRouter as Router, Route } from 'react-router-dom';
const Pages = props => {
return (
<Router>
<Layout>
<Route exact path="/" component={Home} />
<Route path="/mynotes" component={MyNotes} />
<Route path="/favorites" component={Favorites} />
</Layout>
</Router>
);
};
์ฒ๋ผ ์ป๋ค.
- ์ํด๋ก ํด๋ผ์ด์ธํธ๋ฅผ ์ ์ ํด์ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํจ๊ป ์๋ํ๊ณ ์ฌ๋ฌ ๊ทธ๋ํQL์ฟผ๋ฆฌ๋ฅผ UI์ ํตํฉํ์๋ค.
- ๊ทธ๋ํ QL API๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ธ์ฆ ์์คํ ์ ๊ตฌ์ถ. ๋ธ๋ผ์ฐ์ ์ JWT๋ฅผ ์ ์ฅํ๊ณ , ์์ฒญ๋ง๋ค ํ ํฐ์ ์ ์กํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๋ฅผ ์ถ์ ํ ์ ์๊ฒ ๋ง๋ค์๋ค.
- ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ์ ๊ตฌํํ์๋๋ฐ...์ ์ ์ฑ ์ด ์ค๋ช ์ด ์งง์์ง๊ณ ์คํ๊ฐ ๋์ค๊ณ ๊ธฐ์กด์ ๋ง๋ค์ด๋์ ์์ค์ ์ฐ๋์ด ์๋๋ ์ฌํ๊น์ง ์๊ฒผ๋ค. ( ๊ธฐ์กด api ๊ตฌํํ ๋ ๋ก๊ทธ์ธ์ username, email, password ๋ก ์งฏ๋๋ฐ web์์๋ ๋๊ธฐ๋ ํ๋ผ๋ฏธํฐ๊ฐ email, password ๋ฟ์ด๋ผ๋์ง.. ) ์ ์ ์ด ์ฑ ์ ๋ด๊ฐ ํ๋๊ฒ ์๋ฏธ๊ฐ ์๋ ์ถ๋ค. 225/386 ํ์ด์ง๊น์ง ์จ ์ํ๋ก..ํฌ๊ธฐํ๊ธฐ๋ ์ ๋งคํ์ง๋ง.... ์ด ์ฏค์์ MongoDB ์ React ๊ทธ๋ฆฌ๊ณ GraphQL์ ๋ง๋ดค๋ค๋ ๊ฒ์ผ๋ก ๋ง์กฑํด์ผํ๋? ๋ผ๋ ์๊ฐ์ด ๋ ๋ค.
- ๊ฒ์๊ธ์ CRUD๋ฅผ ๊ตฌํํ์๋ค. ์ฑ ์ด ๊ฐ์๋ก ์ฝ๋์ค์ฌ์ด ๋๋ค...์ค๋ช ์ด ์ข ๋ถ์กฑํ๋ฐ ๋ญ CRUD๊ฐ ์๋ ๊ทธ๋ฐ๊ฑฐ ์๋๊ฒ ๋ ์ถ๋ค. ๋ณ๋์ ๋ก์ง์ด๋ ๊ทธ๋ฐ๊ฑฐ ์์ด ๊ณ์ ๋ฐ๋ณต๋๋ ์ฝ๋์๋ค ๋ค์ 17์ฅ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์ธ๋ฐ ์ด๋ป๊ฒ ํ๊ฒ ๋ ์ง ๊ถ๊ธํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ถ๋ช ํ ์ด ์ฑ ์๋ถ๋ถ์์ ๋งํฌ์ ๊ธฐ๋ฐ์ ๊ธ ์์ฑ ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ผ๊ณ ํ๋๋ฐ..๋ญ๊ฐ ๋งํฌ์ ๊ธฐ๋ฐ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.... ์ฒซ ๋๋ฉ ํ์ด์ง๊ฐ ๋ ธ์ ์ด๋ ๋ฎ์๋ค์ ๋? ๊ทธ๊ฑฐ ๋ง๊ณ ๋ ์๋ค. ์๋ฌด๋๋ ์ฑ ์ ์์ฑ๋๋ ๋ด์ฉ๋ฉด์์ ๋ง ์์ฒญ๋๊ฒ ๋ฐ์ด๋ ๊ฒ ๊ฐ์ง ์๋ค.
- ํํ์ด์ง ๋ก ๋ฐฐํฌ๊น์ง ์๋ฃ api๋ heroku, web์ netlify๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ์๋ค. ๊นํ์ ์ฌ์ฉํด์ ์๋์ผ๋ก ์ฐ๋๋๊ฒ๋ ํ์๋ค. ๊นํ์ ์๋ก์ด ์ฌํญ์ด ๋ฐ์๋๋ฉด ์ฌ๋น๋ํด์ ์๋๋ฐฐํฌ ๋ ๊ฒ์ด๋ค.
๊ทธ ๋ค์์ฅ๋ถํฐ๋ ๋ฐ์คํฌํ๊ณผ ๋ชจ๋ฐ์ผ ์ฑ ๋ฐฐํฌ์ธ๋ฐ.. ์์ง ๋ด๊ฒ ๊ทธ๋ ๊ฒ ํ ๋งํ ์ฌ๋ ฅ์ด ์๊ณ ๊ฑฐ๊ธฐ๊น์ง ๊ฐ์ผํ๋ ์ถ์ด์ ์ฌ๊ธฐ๊น์ง๋ง ์์ ์ ๋ง์น๊ณ ๊ธฐ์กด์ ๊ฒ๋ค์ ์ข ๋ ๋ค๋ฌ์ด์ ๋ด ๊ฒ์ผ๋ก ๋ง๋๋๋ฐ ์ฃผ๋ ฅํ๊ณ ์ ํ๋ค. ๋!