์ด๋ฏธ์ง ๊ด๋ฆฌ ํ์คํ(feat. Node.js, React, MongoDB, AWS)
โ์ด๋ฏธ์ง์ ๊ฐ์ ํ์ผ๋ค์ ์ด๋์ ์ด๋ป๊ฒ ์ ์ฅํด์ผ ๋์ง? ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ? ์๋๋ฉด ์๋ฒ ํ๋๋์คํฌ? ์ด๋ป๊ฒ ํ๋ฉด ์๋ฒ ๋ถํ๋ฅผ ์ค์ผ ์ ์์๊น? ์ด๋ป๊ฒ ํ๋ฉด ๋ฒ๋ฒ ๊ฑฐ๋ฆผ ์์ด ๋ง์ ์ด๋ฏธ์ง๋ค์ ๋น ๋ฅด๊ฒ ๋ถ๋ฌ์ฌ ์ ์์๊น? AWS S3? CDN?! ๋จ์ํ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ค๊ณ ์ถ์๋ฐ ์ ์ด๋ ๊ฒ ์์๋ค์ด ๋ง์ ๊ฑธ๊น? ์ด๋ค ์์๋ค์ด ๋ฌด์จ ์ญํ ์ ํ๊ณ ์ด๋ป๊ฒ ์กฐํฉํด์ผ ๋ ๊น?โ ์ด๋ฏธ์ง ํ์ผ ๊ด๋ จ ํ์ํ ์์๋ค์ ํ์คํ์ผ๋ก ์ฒ์๋ถํฐ ๋๊น์ง ์ ์ ํด์ ๊ฐ๋ฅด์ณ๋๋ฆฝ๋๋ค :)
์๊ฐ์ 655๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

- ๋ฏธํด๊ฒฐ
Router.use ๋๋ฒ์งธ ํ๋ผ๋ฏธํฐ ImageRouter : undefined ์ ๋ฌ ์ค๋ฅ
Router.use() requires a middleware function but got a undefined export require ๊ฒฝ๋ก ํ์ธ ์ ํ๋๋ฐ ์ ๋ฐ์ํ ๊น์...?
reactnode.jsawsmongodbexpresslambda๋ฐ์งํ
ใป
0
93
2
- ๋ฏธํด๊ฒฐ
์์ค์ฝ๋ ์์ฒญ
ํน์ ๊ฐ์ ์์ค์ฝ๋ ๋ฐ์ ์ฌ ์ ์์๊น์?์ ๊ฐ ๋ฐฑ์๋๋ ๋ค ์์ฑ ํ๋๋ฐ ํ๋ก ํธ ์ชฝ ํ์๋ ๋ถ์ด ์ธ๊ตญ ๋ถ์ด๋ผ ์ค๋ช ํ๊ธฐ์๋ ์ด๋ ต๊ณ ํด์ ์์ฒญ๋๋ฆฝ๋๋ค.
reactnode.jsawsmongodbexpresslambdashinjaeo
ใป
0
144
1
- ๋ฏธํด๊ฒฐ
ํ๋ก์ ๊ด๋ จ ์ง๋ฌธ
์๋ ํ์ธ์ ๊ฐ์ฌ๋,proxy ์ค์ ์ ํ๋ฉด ์ด๋ ๊ฒ ์ค๋ฅ๊ฐ ๋จ๋ฉด์ ์๋ฒ ์์์ด ์๋ผ์.ํ๋ก์ ๋ถ๋ถ์ ์ง์ฐ๋ฉด ์ ์๋ํ๋๋ฐ์ด๋๊ฐ ์๋ชป๋๊ฑธ๊น์?<img src="https://cdn.inflearn.com/public/files/post
reactnode.jsawsmongodbexpresslambda์ ํด๋ฆฌ๋์ํํธ
ใป
0
143
1
- ๋ฏธํด๊ฒฐ
Presigned URL ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ ์์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ ์์ ํ์ฌ ์ด๋ฏธ์ง ์ ๋ก๋ ๊ด๋ จํด์ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์๋๋ฐ, ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํด ๋ณ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ์ด ํ์ํด์ ํด๋ผ์ด์ธํธ์์ pr
reactnode.jsawsmongodbexpresslambda์ง์
ใป
0
309
1
- ๋ฏธํด๊ฒฐ
์ด๋ฏธ์ง ๋ฑ๋ก์ ์๋ ๋ฑ๋ก ์ค๋ฅ
์ด๋ฏธ์ง ๋ฑ๋ก์์ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ์ด๋ฏธ์ง๊ฐ ๋ฆฌ์คํธ์ ๋ฑ๋ก์ด ๋๊ธดํ๋๋ฐ ์ด๋ฏธ์ง ํํ๊ฐ ๊นจ์ ธ์ ๋ฑ๋ก์ด ๋ฉ๋๋ค. ์๋ก๊ณ ์นจ์ ํด์ผ ์ ์์ ์ผ๋ก ๋ฐ์๋๋ ์ค๋ฅ๊ฐ ์๋๋ฐ ์ด๋ ์ฝ๋๊ฐ ์๋ชป๋์ง๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋คใ ใ <a target="_blank" rel="noopen
reactnode.jsawsmongodbexpresslambda์์ฑ์ ์์
ใป
0
195
1
- ๋ฏธํด๊ฒฐ
๊ฐ์์ ์ฌ์ฉ๋ ์ฝ๋ ๋ค์ด ๋ฐ๋ ์ฌ์ดํธ ์ฃผ์ ์๋์?
๊ฐ์์ ์ฌ์ฉ๋ ์ฝ๋ ๋ค์ด ๋ฐ๋ ์ฌ์ดํธ ์ฃผ์ ์๋์?
reactnode.jsawsmongodbexpresslambdasupport
ใป
0
359
2
- ๋ฏธํด๊ฒฐ
axios ์ด์ฉํด์ ๋ฐฑ์๋๋ก ์ด๋ฏธ์ง ์ ์ก ์ค ์๋ก๊ณ ์นจ
<img src="https://cdn.inflearn.com/public/files/posts/dc4c9282-3a4c-4606-8d93-5591b91a59e5/ํ๋ฉด์บก์ฒ2023-09-28223212.png" alt="ํ๋ฉด ์บก์ฒ 2023-09-28 223212.p
reactnode.jsawsmongodbexpresslambda์ ์คํฌ
ใป
0
459
1
- ๋ฏธํด๊ฒฐ
ImageList ์ปดํฌ๋ํธ์์ ์ ๋ก๋ ํ ์ฌ์ง์ ๋ฆฌ์คํธ์์ ๋ฐ๋ก ๋ณด๊ธฐ ์ํด ์ด ๋ฐฉ๋ฒ๋ ๊ด์ฐฎ๋์??
ImageList ์ปดํฌ๋ํธ ์์ ์๋ useEffect ์ข ์๋ฐฐ์ด ์์ images๋ฅผ ๋ฃ๊ฒ ๋๋ฉด images๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค get์ ํธ์ถํด์ ์ฌ์ง์ ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฌ์ง์ ์ ๋ก๋ํ๋ฉด ๋ฆฌ์คํธ์ ๋ฐ๋ก ๋ณด์ฌ์ง๊ธด ํ๋๋ฐ ์ ์ข์ ๋ฐฉ๋ฒ์ธ๊ฐ์? ์ ์๋
reactnode.jsawsmongodbexpresslambdaJiwoo Jung
ใป
0
369
1
- ๋ฏธํด๊ฒฐ
์ด๋ฏธ์ง ์ฒ์ ์ฌ๋ฆด ๋๋ง ๋ํ๋๋ ์ค๋ฅ
์ฌ์ดํธ ์ด๊ณ ์ด๋ฏธ์ง "์ฒ์" ์ฌ๋ฆด ๋ ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ ์,
reactnode.jsawsmongodbexpresslambdayoon0j
ใป
0
245
1
- ๋ฏธํด๊ฒฐ
es6 ์คํ์ผ๋ก Import ํ ๋ ๋์ํ์ง ์์ต๋๋ค.
<img src="https://cdn.inflearn.com/pub
reactnode.jsawsmongodbexpresslambda๊นํ
ใป
0
373
1
- ๋ฏธํด๊ฒฐ
์ด๋ฏธ์ง ์ ๋ก๋์
๋ฆฌ์กํธ์์๋ ์ด๋ฏธ์ง ์ ๋ก๋ํ๋ ค๊ณ ํ ๋ ์ด๋ฏธ์ง๋ฅผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ๊ฐ๋ฅํ๊ฑธ๋ก ์๊ณ ์๋๋ฐ ํ ํ๋ฆฟ์์ง hbs์์๋ ์ด๋ฏธ์ง ํ์ผ ์ ํํด์ ์ด๋ฏธ์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ณผ์์๋๋ก ํ ์์๋์?
reactnode.jsawsmongodbexpresslambda๋ฐ๋ช๋ฌ
ใป
0
353
1
- ๋ฏธํด๊ฒฐ
node js๋ฅผ ์ด์ฉํ๊ณ mysql์ ์ด๋ฏธ์ง ๊ฒฝ๋ก ์ ์ฅ
nodejs, multer๋ฅผ ํตํด์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ์ต๋๋คdb์ ํด๋น ํ์ผ๋ช uuid()๋ฅผ ํตํด์ ์ ์ฅ์ ํ๋๋ฐ ์ด๋ฏธ์ง ์ฃผ์๋ณต์ฌ ํด์ ๊ฒ์ํด์ ๋ค์ด๊ฐ๋ฉด ์ด๋ฏธ์ง๊ฐ ๋์ค๋๋ฐ ๊ฒ์ํด๋ ๋ชป๋ค์ด๊ฐ๊ฒ ํ๋ ค๋ฉด ์ด๋ป๊ฒ
reactnode.jsawsmongodbexpresslambda๋ฐ๋ช๋ฌ
ใป
2
1,252
1
- ๋ฏธํด๊ฒฐ
์ ์๋ cloudFront๋ฅผ ์ฌ์ฉํ๊ฒ๋๋ฉด S3๋ private์ผ๋ก ์ฌ์ฉํ๋๊ฒ ์ข์๊น์
s3๋ฅผ ํผ๋ธ๋ฆญ์ผ๋ก ๋๋๊ฒ์ ์ข์ง ์๋ค๊ณ ์๊ฐํ๋๋ฐ,CDN ์ฃผ์๋ก ์ ๊ทผํ๋๊ฑฐ๋ฉด s3๋ private์ผ๋ก ํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ์ด ๊ฐ๋ฅํ ๊น์?
reactnode.jsawsmongodbexpresslambdajy y
ใป
0
525
1
- ๋ฏธํด๊ฒฐ
์ ์๋ aws-sdk ๋ชจ๋์ ์ฐพ์ ์ ์๋ค๊ณ ํฉ๋๋ค.
aws-sdk๋ ๋ฐ๋ก ์ค์น๋ฅผ ์ํด๋ ๊ด์ฐฎ๋ ํ์ ์ ์ค์น๋ฅผ ์ํ์ต๋๋ค. ํ์ง๋ง Cannot find module 'aws-sdk' ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. <img src="https://cdn.infl
reactnode.jsawsmongodbexpresslambdajy y
ใป
0
642
1
- ๋ฏธํด๊ฒฐ
new aws.S3 version ํ์ธ
"multer-s3": "^2.10", "@types/multer-s3": "^2.7.12", ๋ฒ์ ์ ์์ฒ๋ผ ๊น์์ฃผ์ ์ผ ๊ฐ์์ ํธํ๋
reactnode.jsawsmongodbexpresslambdajy y
ใป
2
499
1
- ํด๊ฒฐ
react-router-dom v6 useHistory ์ด์
react-router-dom v6 ์ด์์์๋ useHistory ๋์ useNavigate ๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํฉ๋๋ค.v5import { useHistory } from "react-rou
reactnode.jsawsmongodbexpresslambdahoo8799
ใป
7
630
0
- ๋ฏธํด๊ฒฐ
๋๋ค์์ ์๊ฐ ์ด๊ณผ ์๋ฌ๊ฐ ๋น๋๋ค!
<img src="https://cdn.inflearn.com/public/files/posts/5abbfcd1-26d1-44cb-b3f3-ebd0d4e2d854/แแ ณแแ ณแ แ ตแซแแ ฃแบ2023-05-23แแ ฉแแ ฎ4.41.59.png" alt="แแ ณแแ ณแ แ ตแซแแ ฃแบ 202
reactnode.jsawsexpresslambdashinjaeo
ใป
0
304
1
- ํด๊ฒฐ
์ฒซ ๋ก๋์ ๋์ผํ ์ด๋ฏธ์ง ๋๋ฒํธ์ถ
์ผ๋จ ์ ๋ ๊ณต๊ฐ/๋น๊ณต๊ฐ๋ ์ ์ธํ๊ณ ๋ง๋ค๊ณ ์์๋๋ฐ ImageContext์์ prevDara๋ฅผ ์ถ๊ฐํ ์ดํ๋ก ์ฒซ ๋ก๋์์ ์ฒซ๋ฒ์งธ ์ด๋ฏธ์ง ๋ฆฌ์คํธ๋ค์ ๋๋ฒ ํธ์ถํ๋๋ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ํด๊ฒฐํด์ผ ํ ๊น์???์ต์ ๋ฒ๊ฐ ๋ฐ๋ ๋๋ฉด ๋๋ฒ์งธ ํ์ด์ง ๋ฆฌ์คํธ๋ค์ ํ๋ฒ๋ง ํธ
reactnode.jsawsmongodbexpresslambda๋ฐ์ฉ์ง
ใป
2
475
1
- ํด๊ฒฐ
์ด๋ฏธ์ง ์ ๋ก๋ ์ ๋ฐฐ์ด๋ก
<img src="https://cdn.inflearn.com/public/files/posts/5f7315fd-ec8e-493e-8f98-584ee823abae/แแ ณแแ ณแ แ ตแซแแ ฃแบ2023-03-28แแ ฉแแ ฎ3.56.37.png" alt="แแ ณแแ ณแ แ ตแซแแ ฃแบ 202
reactnode.jsawsmongodbexpresslambda๋ฐ์ฉ์ง
ใป
2
515
1
- ๋ฏธํด๊ฒฐ
Promise.all์ ๋ํ ์ง๋ฌธ
์ ์๋ ์๋ ํ์ธ์.์ด๋ฒ ๊ฐ์์์ ์ฌ์ฉ๋ Promise.all์ด ๋ญ์ง ๋ชฐ๋ผ์์ฐพ์๋ณด๋ async-await๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ๋์์ ์ํ๊ฐ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ํ ๋ค์ ์ฝ๋๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฝ์ด๋๊ฐ๋ค๋ณด๋ ์ด๋ ๊ฒ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ ๊ฐ์ ํ๊ธฐ ์ํด Prom
awsnode.jsreactmongodbnodejsexpresslambdakhhan1990
ใป
0
410
1






