๐Ÿ‘ฉ‍๐Ÿ’ป/Web 2

SOP(Same-Origin-Policy), CORS(Cross-Origin-Resource-Sharing)

์ž์ฃผ ๋งˆ์ฃผ์น˜๋Š” CORS ์˜ค๋ฅ˜ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ ์ž์ฃผ ๋งˆ์ฃผ์น˜๋Š” ์˜ค๋ฅ˜ ์ค‘ ํ•˜๋‚˜๋กœ CORS๊ฐ€ ์žˆ๋‹ค. ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ API๋ฅผ ๊ฐ€์ ธ๊ฐ€ ์“ธ ๋•Œ๋„ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ–ˆ๊ณ , ํ˜„์—…์—์„œ ๋ฐฑ์—”๋“œ/ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋ฒ„๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ฐœ๋ฐœํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ๋Š” ํ•œ ์ค„ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด ํ”„๋ก์‹œ๋ฅผ ์šฐํšŒํ•˜๋„๋ก ํ•˜๋ฉฐ API๋ฅผ ์“ฐ๊ฑฐ๋‚˜(a), webpack ์„ค์ • ํŒŒ์ผ์— ๊ฐœ๋ฐœ ์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ proxy ์„ค์ •(b)์„ ํ•ด์ฃผ๊ณค ํ–ˆ๋‹ค. ์ข€ ๋” ํฐ ๊ทœ๋ชจ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ CORS ํ•ด๊ฒฐ์„ ์œ„ํ•ด ํ˜‘์กฐ๋ฅผ ์š”์ฒญํ•ด์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค. (์‚ฌ์ „ ์ง€์‹์ด ๋ถ€์กฑํ–ˆ์„ ๋•Œ ํ”„๋ก ํŠธ์—”๋“œ ๋‹จ์—์„œ ์‹ค์ˆ˜์ธ๊ฐ€ ์‹ถ์–ด์„œ ์˜จ๊ฐ– ์ž๋ฃŒ๋ฅผ ์ฐพ์•„๋ณด๋ฉด์„œ ๋ฐฉ๋ฒ•์„ ๊ฐ•๊ตฌํ•ด๋ดค์ง€๋งŒ AWS ์„œ๋ฒ„ ์„ค์ • ํŽ˜์ด์ง€์—์„œ ๋‹จ ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ..

[SVG] JavaScript, CSS๋ฅผ ํ™œ์šฉํ•œ Path ๊ธฐ๋ฐ˜ ํ…์ŠคํŠธ ์• ๋‹ˆ๋ฉ”์ด์…˜

์œ„์ฒ˜๋Ÿผ ํ…์ŠคํŠธ์˜ path๋ฅผ ๋”ฐ์„œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์ฃผ๋Š” ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๋ดค๋‹ค. ํ”„๋กœํ† ํƒ€์ดํ•‘ ํˆด๋กœ ์ž˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” figma๋กœ ๊ธฐ๋ณธ์ด ๋˜๋Š” SVG๋ฅผ ๋งŒ๋“ค๊ณ , ๊ฐ„๋‹จํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ CSS๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค์—ˆ๋‹ค. SVG ํƒœ๊ทธ ์ƒ์„ฑ figma๋กœ ์•„๋ฌด draft๋‚˜ ์—ด์–ด์„œ ์บ”๋ฒ„์Šค๋ฅผ ๋งŒ๋“  ๋‹ค์Œ, T ์•„์ด์ฝ˜์„ ๋ˆŒ๋Ÿฌ ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. figma์—์„œ ํ•œ๊ธ€์€ ๋ฐ›์นจ์„ ํƒ€์ดํ•‘ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ, ํ•œ๊ตญ์–ด ํ…์ŠคํŠธ๋กœ SVG ์†Œ์Šค๋ฅผ ์ค€๋น„ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ํฌํ† ์ƒต ๋“ฑ ๋‹ค๋ฅธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋‚ซ๋‹ค. ์ด๋ ‡๊ฒŒ ์•„๋ฌด ํ…์ŠคํŠธ ๋ฐ•์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ํ˜„์žฌ๋Š” Path๋ฅผ ๋”ฐ์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ํŒŒ๋ž€์ƒ‰ ํ…Œํˆฌ๋ฆฌ๊ฐ€ ํ…์ŠคํŠธ ๋ฐ•์Šค ์ „์ฒด์— ๊ฑธ์ณ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์šฐํด๋ฆญ -> outline stroke๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๊ณ , ์ด ์ƒํƒœ์—์„œ ์˜ค๋ฅธ์ชฝ์˜ Design ํŒจ๋„์˜ S..