๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/Code-States

[D+138] Final Project : 18์ผ์ฐจ Multer๋กœ AWS ์—…๋กœ๋“œํ•˜๊ธฐ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2021. 3. 7.

 

 

D+138

-  Final Project : 18์ผ์ฐจ -

( multer-s3๋กœ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ํ•˜๊ธฐ )

 


 

 

์˜ค๋Š˜์€ ์ง€๋‚œ๋ฒˆ์— multer ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด์„œ ํŒŒ์ผ์— ์ง์ ‘ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์„ ์‹œ๋„ํ•ด๋ณด์•˜๋‹ค๋ฉด,

์ด๋ฒˆ์—๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ AWS multer -s3์— ์ด๋ฏธ์ง€๋ฅผ ์ง์ ‘ ์—…๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง์ ‘ ์‹œ๋„ํ•ด ๋ณด์•˜๋‹ค.

 

multer-s3๋ฅผ npm์—์„œ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ AWS S3์šฉ ๋ฉ€ํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด๋ผ๋Š” ์ •์˜๊ฐ€ ๋˜์–ด์žˆ๋‹ค.

 

ํ•ด๋‹น๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์—๋Š” multer๋Š” ํŒŒ์ผ์ž์ฒด์—์„œ ์—…๋กœ๋“œ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๊ณ ,

multer-s3๋Š” S3๋ฒ„ํ‚ท์— ์—…๋กœ๋“œํ•˜๊ธฐ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” multer์™€ ๋‹ค๋ฅธ ๋ฒ„์ „์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ  ๋ง‰์ƒ ์‚ฌ์šฉํ•ด ๋ณด๋‹ˆ ์ผ๋‹จ ๊ธฐ๋ณธ์ ์œผ๋กœ multer๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋…€์„์ด์—ˆ๊ณ ,

multer-s3๋Š” ์ผ์ข…์˜ multer์™€ AWS S3๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ฐ๊ฒฐ๋‹ค๋ฆฌ ๊ฐ™์€ ์—ญํ• ์„ ํ•ด์ฃผ๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ˜น์‹œ multer-s3๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด

๋จผ์ € multer๋ฅผ ์‹œ๋„ํ•ด๋ณด๊ณ  ๊ทธ ๋‹ค์Œ์— ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ๋ฅผ ๊ถŒํ•œ๋‹ค.

 

์ผ๋‹จ ํ•ด๋‹น ๋ชจ๋“ˆ๋“ค์„ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด npm install์„ ํ•ด์ฃผ๊ณ  requireํ•ด์ฃผ๋Š” ๊ฒƒ์„ ์žŠ์ง€๋ง์ž.

 

์—ฌ๊ธฐ์„œ ๋ถ€ํ„ฐ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ๋ฉด ๋˜๋Š”๋ฐ

์ด๋•Œ ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋ง์•„์•ผ ํ•  ๊ฒƒ์€ multer๊ฐ€ ๋” ํฌ๊ด„์ ์ธ ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์—

multer์˜ storage์•ˆ์— s3์— ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค.

 

๋‚˜๋Š” multer์— ์ด๋ฏธ์ง€๊ฐ€ ๋„ˆ๋ฌด ํฐ๊ฑฐ๋ฅผ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์•„์„œ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•ด์คฌ๋Š”๋ฐ

์ด ๊ณผ์ •์—์„œ multer์— ์˜ต์…˜์„ ์„ค์ •ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ multer-s3์— ๋„ฃ์–ด์ค˜์„œ

์˜ค๋ฅ˜ ์ฐพ๋Š”๋ฐ ์• ์ข€ ๋จน์—ˆ๋‹ค...ใ…Žใ…Ž

 

s3์—๋Š” aws์™€ ์—ฐ๊ฒฐํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์•ก์„ธ์Šคํ‚ค์™€ ๋น„๋ฐ€ํ‚ค๋ฅผ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋˜๋Š”๋ฐ

ํ•ด๋‹น ํ‚ค๋“ค์€ aws์—์„œ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์œผ๋กœ ์ธํ„ฐ๋„ท์— ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ aws์— ์ฐพ์œผ๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ ์ดํ›„์— storage์— s3์˜ ์ •๋ณด๋“ค์„ ์ž‘์„ฑํ•ด ์ฃผ๋Š”๋ฐ ๋ฒ„ํ‚ท์—๋Š” ๋‚ด๊ฐ€ s3์— ์„ค์ •ํ•ด์ค€ ๋ฒ„ํ‚ท์ด๋ฆ„์„ ๋„ฃ์–ด์ฃผ๊ณ ,

key๋Š” ํŒŒ์ผ ์ด๋ฆ„์„ ์–ด๋–ป๊ฒŒ ์ง€์ •ํ•ด ์ค„์ง€ ์„ค์ •ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋ฉฐ,

๋‚˜๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„์ด ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋‚ ์งœ์™€ ๊ด€๋ จ์ง€์–ด์„œ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

 

์ดํ›„์— ๋‚˜๋Š” ํšŒ์›์˜ ์ด๋ฏธ์ง€๊ฐ€ ์ž˜ ์—…๋ฐ์ดํŠธ ๋  ์ˆ˜ ์žˆ๋„๋ก

์š”์ฒญ์ด ๋Œ์•„๊ฐˆ๋•Œ๋งˆ๋‹ค ๋ฏธ๋“ค์›จ์–ด๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•ด ์ฃผ์—ˆ๋‹ค.

 

aws์˜ ๋ฒ„ํ‚ท์ด ์ œ๋Œ€๋กœ ๋Œ์•„๊ฐ€๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ํฌ์ŠคํŠธ ๋งจ์„ ์‚ฌ์šฉํ•ด์„œ ์š”์ฒญ์„ ์‹œ๋„ํ•ด ๋ณด์•˜๋‹ค.

 

์ด๋•Œ ์ฃผ์˜ํ•ด์•ผํ•  ๊ฒƒ์€ form-data๋กœ ๋ณด๋‚ด์•ผ ํ•˜์ง€ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์š”์ฒญ์ด ์ œ๋Œ€๋กœ ๊ฐ€์ง€ ์•Š๋Š”๋‹ค.

 

์š”์ฒญ์ด ์ œ๋Œ€๋กœ ๋ณด๋‚ด์ง€๊ฒŒ ๋˜๋ฉด ํ„ฐ๋ฏธ๋„์ฐฐ์— ์ด๋ ‡๊ฒŒ ํŒŒ์ผ์˜ ์ด๋ฆ„(key)๊ณผ 

ํŒŒ์ผ์˜ ์œ„์น˜๊ฐ€ ์–ด๋””์žˆ๋Š”์ง€(location)์— ๋Œ€ํ•ด์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋ฉฐ,

aws S3๋กœ ๊ฐ€๋ฉด ์ƒ๋‹จ์˜ ํ™”๋ฉด์ฒ˜๋Ÿผ ์ด๋ฏธ์ง€๊ฐ€ ์ œ๋Œ€๋กœ ์—…๋กœ๋“œ ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฐ–์—๋„ ์ด๋ฏธ์ง€๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฒ„ํ‚ท์•ˆ์—์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ

ํ•ด๋‹น ์ •๋ณด๋“ค์€ npm์ด๋‚˜ aws ๊ณต์‹๋ฌธ์„œ์—์„œ ์ฐธ๊ณ  ๊ฐ€๋Šฅํ•˜๋‹ค.

 

multer์— ๋Œ€ํ•ด์„œ ๊ต‰์žฅํžˆ ์• ๋ฅผ ๋จน์—ˆ์—ˆ๋Š”๋ฐ ๊ทธ๋ž˜๋„ ์ด๋ ‡๊ฒŒ ๋ฒ„ํ‚ท์— ์˜ฌ๋ผ๊ฐ€๋Š”๊ฑธ ๋ณด๋‹ˆ

์™œ ์ด๋ ‡๊ฒŒ ๊ฒ์„ ๋จน์—ˆ๋‚˜ ์‹ถ๊ธฐ๋„ ํ•˜๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€