์ปค๋ฎค๋ํฐ ์๋น์ค
- 2023๋ 5์ ~ 6์
- ๊ฐ์ธ ํ๋ก์ ํธ
- react: ^18.2.0
- axios: ^1.4.0
- bootstrap: ^5.2.3
- firebase: ^9.22.0
- framer-motion: ^10.12.16
- http-proxy-middleware: ^2.0.1
- moment: ^2.29.4,
- react-router-dom: ^6.11.1
- emotion: ^11.11.0
- reduxjs-toolkit: ^1.7.1
- aws-sdk: ^2.348.0
- express: ^4.17.2
- mongoose: ^6.1.3
- nodemon: ^2.0.22
- path: ^0.12.7
- multer: ^1.4.4
- multer-s3: ^2.10.0
๋ก๊ทธ์ธ ๊ธฐ๋ฅ
- firebase Auth ํ์ฉ
- ๋ธ๋ก๊ทธ
๊ฒ์๊ธ ์์ ,์ญ์ ,๋ฑ๋ก ๊ธฐ๋ฅ
- mongoose๋ฅผ ์ฌ์ฉํ์ฌ mongoDB์ ์์
- ๋ธ๋ก๊ทธ
๊ฒ์๊ธ ์ ๋ ฌ ๊ธฐ๋ฅ
- sort()๋ฉ์๋ ํ์ฉ
- ๋ธ๋ก๊ทธ
๋ด์ฉ ๊ฒ์ ๊ธฐ๋ฅ
- $regex(์ ๊ทํํ์) ํ์ฉ
- ๋ธ๋ก๊ทธ
server, res.sendFile(๊ฒฝ๋ก ๋ฌธ์ )
- path ๋ด์ฅ ๋ชจ๋, app.use(express.static(...)) ์ฌ์ฉํ์ฌ ํด๊ฒฐ
- ๋ธ๋ก๊ทธ
Axios ๋ฌดํ ๋ ๋ ๋ฌธ์
- useEffectํ ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐ
CORS ์ด์ ๋ฌธ์
- http-proxy-middleware๋ฅผ ์ฌ์ฉํ์ฌ cors ์ ์ฑ ์ ์ฐํ๋ก ํด๊ฒฐ
- ๋ธ๋ก๊ทธ
client์์ ๋ณด๋ด์จ req.body, server์์ ํ์ธ์ ๋ํดํธ ๊ฐ์ผ๋ก Undefined ์ค์ ๋ฌธ์
- ๋ฒ์ ์ ๋ฐ์ดํธ๋ก react์ ๋ด์ฅ๋ body-parser ๋ชจ๋ ์ฌ์ฉ
- ๋ธ๋ก๊ทธ
server์์ mongoDB ๋ฐ์ดํฐ find()๋ก ์ฐพ์ ์์ ์๊ธฐ๋ ๋ฌธ์
- findOne() ์ฌ์ฉ์ผ๋ก ๋จ์ผ ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ฌ ํด๊ฒฐ
- ๋ธ๋ก๊ทธ
video ํ๊ทธ๋ก ๋ฐํํ๋ฉด์ ์์ ์ ํ ์์ ์์ดํฐ ์๋ ์์ ํ๋ ๋ฌธ์ (์๋๋ก์ด๋๋ ์ ์)
- videoํ๊ทธ์ playsInline ์์ฑ ์ถ๊ฐ๋ก ํด๊ฒฐ
firebase import ๋ฒ์ ๋ฌธ์
- firebase import์์ compat ์ถ๊ฐ๋ก ํด๊ฒฐ
- ๋ธ๋ก๊ทธ
redux ๋น์ง๋ ฌํ ๊ด๋ จ ์๋ฌ
- ๋ฏธ๋ค์จ์ด ์ค์ ์ผ๋ก ์์ํด๊ฒฐ
- ๋ธ๋ก๊ทธ
Axiosํต์ ์์ ๋๋ ์ด ๋ฌธ์ ๋ก ์ ๊ทผ์ฑ ๋ฎ์์ง๋ ๋ฌธ์
- ๋ก๋ฉํ๋ฉด(์คํผ๋) ์ถ๊ฐ
- ๋ธ๋ก๊ทธ
ํํ๋ก์ ํธ)์นด์นด์ค๋งต์ ํ์ฉํ์ฌ ๊ด๊ด์ง ๊ฒ์ ์ฌ์ดํธ ๊ตฌํ
- ๋งก์ ์์
- ์ง์ญ๋ณ ๊ด๊ด์ง ์ ๋ณด ๋ฐ ์ขํ api data searching
- ์๋ธ ํ์ด์ง, ๊ฒ์ํ ๊ตฌํ
๊ฐ์ธ)์น ์ฌ์ดํธ ๊ตฌํ
- javascript, jQuery, html, css๋ฅผ ์ฌ์ฉํ์ฌ ์น์ฌ์ดํธ ๊ตฌํ
- ์ฌ์ดํธ