๊ฐœ๋ฐœ๊ตฌ๋ฆฌ๐Ÿธ

CORS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์•ˆ๋…•ํ•˜์„ธ์š” ์›น ๊ฐœ๋ฐœ ํ•  ๋•Œ CORS ์—๋Ÿฌ๋Š” ๋ฐ˜๋“œ์‹œ ๋„˜์–ด์•ผํ•˜๋Š” ์‚ฐ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ ๊ฒช์œผ๋ฉด ๋‹นํ™ฉ์Šค๋Ÿฝ๊ธฐ ๊ทธ์ง€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ CORS ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. CORS? Cross-Origin Resource Sharing ์˜ ์•ฝ์ž ์ž…๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์ถœ์ฒ˜์˜ ์ž์›์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•ด์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„ ...

ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION ์—๋Ÿฌ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ์˜ค๋Š˜์€ ์ผํ•˜๋Š”๋ฐ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์—๋Ÿฌ๋ฅผ ๋งŸ๋‹ฅ๋œจ๋ ธ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‹œ๋„ํ•˜๋Š”๋ฐ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์•ˆ๋œ๋‹ค๊ณ โ€ฆ!! ์›์ธ ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION ์—๋Ÿฌ์˜ ์›์ธ์€ ์„œ๋ฒ„์˜ RESPONSE์— ์ค‘๋ณต๋œ ํ—ค๋” ์ž…๋‹ˆ๋‹ค. ์ค‘๋ณต๋œ ํ—ค๋”๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์š”์†Œ๋กœ๋Š” ๊ฐœ๋ฐœ์ž์˜ ์ž˜๋ชป๋œ ํ—ค๋” ์„ค์ •๋„ ์žˆ...

uuid ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „๋ณ„ ํŠน์ง•

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ๊ฐ์˜ ๊ณ ์œ ํ•œ ๊ฐ’์„ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด UUID ๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” UUID ์ƒ์„ฑ์„ ๋•๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ uuid ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๋ฒ„์ „๋ณ„ ํŠน์ง•์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. UUID๋ž€ Universally Unique Identifier ์˜ ์•ฝ์ž. ์„ธ์ƒ์—์„œ ์œ ์ผํ•œ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ฃผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณ ์œ ํ•œ ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ ์‚ฌ...

์ œ์ด์ฟผ๋ฆฌ Events

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ์ œ์ด์ฟผ๋ฆฌ ์นดํ…Œ๊ณ ๋ฆฌ Events ์— ๋Œ€ํ•ด ์ผ๋ถ€ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ œ์ด์ฟผ๋ฆฌ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ ๋ฐ”์ธ๋”ฉ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ ์šฉ๋ฒ•์— ๋”ฐ๋ผ ์กฐ๊ธˆ์”ฉ ์ฐจ์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํ™•์‹คํžˆ ์•„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์ด๋ฒคํŠธ ์œ ํ˜•์— ๋”ฐ๋ฅธ ๋ฐ”์ธ๋”ฉ ํ•จ์ˆ˜๋“ค์ด ์กด์žฌํ•˜๋ฉฐ ๊ฐ๊ฐ์˜ ์‚ฌ์šฉ๋ฒ•์€ on() ๊ณผ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ...

์ œ์ด์ฟผ๋ฆฌ ์ด๋ฒคํŠธ ์ค‘์ฒฉ ๋ฌธ์ œ

์˜ค๋Š˜์€ ์ œ์ด์ฟผ๋ฆฌ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ค‘์ฒฉ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์ผ ๋ฐฐํฌ ๋‚˜๊ฐ€์•ผํ•˜๋Š”๋ฐ ๐Ÿฅฒ ๋ฌธ์ œ ๋ผ๋””์˜ค ๋ฒ„ํŠผ์˜ change ์ด๋ฒคํŠธ๊ฐ€ ํ•œ๋ฒˆ์˜ change์— ์—ฌ๋Ÿฌ ๋ฒˆ ๋™์ž‘ ์˜ˆ์‹œ) change ์ด๋ฒคํŠธ๊ฐ€ ์–ผ๋Ÿฟ์„ ๋„์šฐ๋Š” ๊ฒฝ์šฐ change ํ•œ๋ฒˆ์— ์–ผ๋Ÿฟ์ด ์—ฌ๋Ÿฌ๊ฐœ ๋ฐœ์ƒ ์›๋ž˜ ์˜๋„ ํŽ˜์ด์ง€ ์ตœ์ดˆ ์ ‘๊ทผ ์‹œ ๋ผ๋””์˜ค ๋ฒ„ํŠผ์˜ ์ด๋ฒคํŠธ๋ฅผ ๊ฑธ์–ด์ฃผ๋Š” ์ฝ”๋“œ๊ฐ€ 1ํšŒ ๋™์ž‘ ํ•˜์—ฌ change...

๋…ธ๋“œ ํ•™์Šต 20์ผ์ฐจ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ์˜ค๋Š˜๋„ ์‹œํ€„๋ผ์ด์ฆˆ์™€ ๊ด€๋ จํ•ด ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ์‹œํ€„๋ผ์ด์ฆˆ์—์„œ ๋ชจ๋ธ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋ฉด ์ƒ๊ธฐ๋Š” ํ•จ์ˆ˜๋Š” ๋‹จ์ˆ˜/๋ณต์ˆ˜์˜ ๊ด€๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฐ€? ํ’€์ด ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋กœ ํŒ”๋กœ์šฐ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ณ  ๋ฐฐ์šฐ๋Š” ์ค‘, ์•„๋ž˜์™€ ๊ฐ™์ด ๋ชจ๋ธ์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ ํ–ˆ์Šต๋‹ˆ๋‹ค. //์ƒ๋žต static associate(db){ ...

๋…ธ๋“œ ํ•™์Šต 19์ผ์ฐจ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ์˜ค๋Š˜์€ multer ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ์ œ์–ด๋ฅผ ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. multer ๋ฏธ๋“ค์›จ์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๊ณ  ๋ถ„์„ํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ๊ธ€์— ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค. multer ๋ฏธ๋“ค์›จ์–ด ์ •๋ฆฌ ์˜ค๋Š˜ ํ•™์Šต ์ค‘ ๊ณผ๊ฑฐ ์‹œํ€„๋ผ์ด์ฆˆ ๋ชจ๋ธ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋†“์น˜๊ณ  ์žˆ์—ˆ๋˜ ๋ถ€๋ถ„์ด ์žˆ์–ด ๋‹ค์‹œ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ...

multer ๋ฏธ๋“ค์›จ์–ด ์ •๋ฆฌ

multer ๋ž€ node.js์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด multer ์„ค์น˜ npm i multer multer ์‚ฌ์šฉ multer ๋ฏธ๋“ค์›จ์–ด๋Š” ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œ ํ•˜๋Š” ๋ผ์šฐํ„ฐ์— ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. const express = require('express'); const multer = require('mu...

๊นƒํ—ˆ๋ธŒ ์•ก์…˜ ์•„ํ‹ฐํŒฉํŠธ ๋ฒ„์ „ ์—๋Ÿฌ ํ•ด๊ฒฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ๊นƒํ—ˆ๋ธŒ ์•ก์…˜์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๊ธฐ๋ก์„ ๋‚จ๊น๋‹ˆ๋‹ค. ์ตœ๊ทผ ์ปค๋ฐ‹์„ ํ•ด๋†“๊ณ  ๋ฌธ๋“ ํ™•์ธํ•ด๋ณด๋‹ˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v3`. Learn...

์˜ˆ์™ธ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿธ ์˜ค๋Š˜์€ ์ œ๊ฐ€ ์ผํ•˜๋ฉด์„œ ๊ณ ๋ฏผํ•˜๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ธฐ๋ก์„ ๋‚จ๊ฒจ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ž˜์— ๋” ๋‚˜์€ ํ•ด๋‹ต์„ ์ฐพ์€ ์ œ๊ฐ€ ๊ณผ๊ฑฐ์˜ ์ €๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ๊ธฐ๋กํ•ด ๋†จ๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์™ธ์˜ ๊ตฌ์กฐ ๋ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ „๋žต ๋“ฑ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ธฐ์–ต์ด ์•ˆ๋‚˜๊ฑฐ๋‚˜ ์•Œ๊ณ ์žˆ๋”๋ผ๋„ ๊ธฐ...

์ธ๊ธฐ ํƒœ๊ทธ