๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (238)

JiYoung Dev ๐Ÿ–ฅ

์ตœ๋ฒ”๊ท , ์œก๊ฐํ˜• ๊ฐœ๋ฐœ์ž(์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•˜๊ธฐ ์œ„ํ•œ 10๊ฐ€์ง€ ํ•ต์‹ฌ ์—ญ๋Ÿ‰) ํ›„๊ธฐ

์ƒ์•  ์ตœ์ดˆ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ž๊ธฐ๊ณ„๋ฐœ์„œ๋ฅผ ์ฝ์—ˆ๋‹ค. ์ด ์ฑ…์„ ๋”ฑ ์ž˜๋ผ ์ž๊ธฐ๊ณ„๋ฐœ์„œ๋ผ๊ณ  ์ •์˜ ํ•˜๊ธฐ์—๋„ ์• ๋งคํ•˜๊ณ  ๊ธฐ์ˆ ์„œ๋ผ ํ•˜๊ธฐ์—๋„ ์• ๋งคํ•œ ๊ฐœ๋ฐœ์ž์˜ ์„ฑ์žฅ์„ ์œ„ํ•œ ์ž๊ธฐ๊ณ„๋ฐœ์„œ์™€ ๊ธฐ์ˆ ์„œ ๊ทธ ์‚ฌ์ด ์–ด๋”˜๊ฐ€์˜ ์ฑ…์ด๋‹ค. ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ๋Š” ๊ธฐ์ˆ ์„œ ๋ณด๋‹ค๋Š” ์ž๊ธฐ๊ณ„๋ฐœ์„œ์— ๋” ๊ฐ€๊น๋‹ค.  ๋ถˆ๊ณผ 1~2๊ฐœ์›” ์ „๋งŒํ•ด๋„ ํšŒ์‚ฌ ์ผ์— ๋Œ€ํ•ด ๋ถˆํ‰๋ถˆ๋งŒ์ด ๋งŽ์•„ ํ•œ์ฐธ ์š•์„ ํ•˜๋˜ ๋•Œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋‹น์‹œ์— ์ผ๋„ ๋„ˆ๋ฌด ๋งŽ์•˜๊ณ , ๋‚œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ๋“ค์–ด์™”๋Š”๋ฐ ์™œ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๊ณ , ์•ž์œผ๋กœ ์ง„๋กœ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”์ง€ ๊ฐˆํ”ผ๋„ ์•ˆ์žกํžˆ๊ณ , ๋งก๊ณ  ์žˆ๋Š” ์†”๋ฃจ์…˜๋„ ๋ฐฑ์—”๋“œ๋ผ๊ธฐ ๋ณด๋‹ค๋Š” ์—”์ง€๋‹ˆ์–ด์— ๊ฐ€๊น๊ณ , ์œ ์ง€๋ณด์ˆ˜ ํ•ด์•ผ ํ•˜๋Š” ์ž๋ฐ” ์ฝ”๋“œ๋„ ๋”๋Ÿฝ๊ณ .. ๋“ฑ๋“ฑ์˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด์œ ๋กœ ์ด์งํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ์†Ÿ๊ตฌ์น˜๋˜ ์‹œ๊ธฐ์˜€๋‹ค. ๊ทธ๋ž˜์„œ ๋‚จ์ž์นœ๊ตฌ๋งŒ ๋งŒ๋‚˜๋ฉด ํ•œํƒ„์„ ๋ง‰ ํ–ˆ๋”๋‹ˆ ์ด ์ฑ…์„ ์ฝ์–ด๋ณด..

books 2024. 12. 30. 22:38
Javascript Call Stack, Callback Queue, Event Loop

์ด๋ฒˆ์— 30์ดˆ ๋งˆ๋‹ค API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ setInterval ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์‚ฌ์šฉ๋ฒ•์€ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ setInterval์ด ์–ด๋–ค ๊ฑด์ง€ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ๋น„๋™๊ธฐ์™€ ๊ด€๋ จ๋œ ๊ฐœ๋…๋“ค์ด ๋‚˜์™€์„œ ์ •๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋Š˜์€ ๋น„๋™๊ธฐ ๊ฐœ๋…์— ๋“ฑ์žฅํ•˜๋Š” Call Stack, Callback Queue, Event Loop์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.  ๋ณธ๋ก ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋ธŒ๋ผ์šฐ์ €์—์„œ HTML ๋‚ด๋ถ€ Javascript๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์ž ์‹œ ์ •๋ฆฌํ•ด๋ณด์ž. ๐Ÿ”Ž Javascript ์‹คํ–‰์›๋ฆฌ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค: ๊ฒ€์ƒ‰์ฐฝ, ๋’ค๋กœ๊ฐ€๊ธฐ/์•ž์œผ๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ, ์ƒˆ๋กœ๊ณ ์นจ ๋“ฑ ๋ธŒ๋ผ์šฐ์ € ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด GUI๋ธŒ๋ผ์šฐ์ € ์—”์ง„: ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ Œ๋”๋ง ์—”์ง„ ์‚ฌ์ด์˜ ๋™์ž‘ ์ œ์–ด๋ Œ๋”..

Study/React 2024. 11. 29. 23:45
Webpack: ๊ฐœ๋…๊ณผ ์„ค์ •

๋ถ€ํŠธ์บ ํ”„์—์„œ React๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ์„ ๋•Œ CRA(react-create-app)์„ ํ†ตํ•ด ์•ฑ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜์˜€๋‹ค. ํšŒ์‚ฌ์— ์ž…์‚ฌํ•œ ํ›„ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋งก๊ฒŒ ๋˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, CRA์˜ ๊ฒฝ์šฐ ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋งŽ์•„์„œ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ธ€์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” CRA๊ฐ€ ์•„๋‹Œ ์ง์ ‘ Webpack์„ ์ ์šฉํ•˜์˜€๋Š”๋ฐ(CRA๊ฐ€ ์ž๋™์œผ๋กœ Webpack์„ ์ ์šฉ), ๊ทธ ๊ณผ์ •์—์„œ Webpack์ด ๋ฌด์—‡์ธ์ง€, ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€, ๊ฐ ์„ค์ •์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. ๐Ÿ”Ž Webpack์ด๋ž€ Webpack์€ ๋ชจ๋˜ Javascript ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์ •์  ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ์ด๋‹ค.Javascript๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ Webpack๋งŒ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—..

Study/React 2024. 11. 27. 22:22
ํ™˜๊ฒฝ๋ณ€์ˆ˜(PATH) ์ดํ•ดํ•˜๊ธฐ

Docker๋กœ ๋ฆฌ์•กํŠธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์–ด์„œ ๊ฐœ๋ฐœ ์„œ๋ฒ„์—์„œ node๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ์ ‘์† ํ›„ export๋กœ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•œ ๋’ค ๋…ธ๋“œ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ๋Š” ์‹คํ–‰์ด ์ •์ƒ์ ์œผ๋กœ ๋˜์—ˆ๋Š”๋ฐ, ๋กœ๊ทธ์•„์›ƒ ํ›„ ๋‹ค์‹œ ํ„ฐ๋ฏธ๋„์— ์ ‘์†ํ•˜๋‹ˆ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์ด ํ’€๋ ค ๋…ธ๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๋‹ค. ์ด๋ฒˆ ๊ธฐํšŒ๋ฅผ ํ†ตํ•ด์„œ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์•„๋ž˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค. ํ™˜๊ฒฝ๋ณ€์ˆ˜ํ™˜๊ฒฝ๋ณ€์ˆ˜(PATH)๋ž€, ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ๋Š” ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋ฅผ ๋งํ•œ๋‹ค. ๋งŒ์•ฝ ์œˆ๋„์šฐ์ธ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  java -jar์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์œˆ๋„์šฐ CMD ์ฐฝ์— ์ž…๋ ฅํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ์—†์ด java ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด โ€˜javaโ€™์€(๋Š”) ๋‚ด๋ถ€..

Study/Back-End 2024. 11. 20. 21:45
์—„ํƒœ์ฃผ ์—์„ธ์ด, ๋ฐฐ์›€์˜ ๋ฐฐ์‹ 

๋™์ƒ์˜ ๋ฐฉ์—์„œ ์ด ์ฑ…์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์ฑ…์˜ ์ œ๋ชฉ์„ ๋ณด์ž๋งˆ์ž ๋ฌด์Šจ ๋‚ด์šฉ์ธ์ง€ ๊ถ๊ธˆํ•ด ๊ทธ ์ฆ‰์‹œ ์†์— ์ง‘์–ด ํ•œ ์žฅ์„ ์ฝ์–ด๋ณด์•˜๋‹ค.์ฑ…์˜ ์ฒซ ์žฅ์€ โ€˜๋‚˜๋Š” ์–ด๋А ์ˆœ๊ฐ„, ๋‚ด๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๋ชจ๋ฅด๋Š” ์–ด๋ฅธ์ด ๋˜์–ด ์žˆ์—ˆ๋‹คโ€™๋Š” ํ”„๋กค๋กœ๊ทธ์˜ ์ œ๋ชฉ์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์—๋Š” โ€˜๋‚˜๋Š” ์–ด๋ฆฐ ์‹œ์ ˆ๋ถ€ํ„ฐ ๋ฌด์—‡์ด๋“  ๋ฐฐ์šฐ๊ธฐ๋ฅผ ์ข‹์•„ํ–ˆ๋‹ค.โ€™๋Š” ๋ฌธ์žฅ์ด ๋‚˜์˜จ๋‹ค.์ด ๋ฌธ์žฅ์—์„œ โ€œ๋ฐ”๋กœ ์ด๊ฑด ๋‚ด ์ด์•ผ๊ธฐ์•ผ!โ€ ํ•˜๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋‚˜๋„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜๊ณ  ์ด์ œ๊ป ์ˆ˜๋งŽ์€ ๊ฒƒ๋“ค์„ ๋ฐฐ์›Œ์™”์ง€๋งŒ ๊พธ์ค€ํžˆ ์ง€์†ํ•˜๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ์—†๊ณ , ๋ฐฐ์šฐ๋Š” ์™€์ค‘์—๋„ ๋งค๋ฒˆ ํ”๋“ค๋ ธ์œผ๋ฉฐ, ํ•ญ์ƒ ์ƒˆ๋กœ ๋ฐฐ์šธ ๊ฒƒ์„ ์ฐพ์•„ ๋– ๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‚ด๊ฐ€ ๋ˆ„๊ตฌ์ธ๊ฐ€์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ƒ๊ฐํ•ด ๋ณด์ง€ ์•Š์•˜๋˜ ๊ณผ๊ฑฐ์˜ ๋‚˜๋ฅผ ์ƒ๊ธฐํ•˜๋Š” ๋ฌธ์žฅ์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ๊ทธ ๋‹ค์Œ ๋ฌธ์žฅ์€ โ€˜๋ญ”๊ฐ€๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด๋ผ๋ฉด ์–ด๋””๋“  ๋งˆ๋‹ค ์•Š๊ณ  ๋›ฐ์–ด๋“ค์–ด ๋ฐฐ์› ๋‹ค. ๊ทธ..

books 2024. 11. 20. 21:33
JDBC์™€ Spring JDBC ๊ธฐ๋ณธ ์ดํ•ดํ•˜๊ธฐ

JDBC(Java Database Connectivity)JDBC๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ, ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์ž๋ฐ” API์ด๋‹ค. ์ž๋ฐ” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค์–‘ํ•œ DBMS์— ๋Œ€ํ•ด ์ผ๊ด€๋œ API๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ๊ฒ€์ƒ‰, ์ˆ˜์ •, ๊ด€๋ฆฌ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœ์‹œ์—๋Š” DBMS ์ข…๋ฅ˜์— ๊ด€๊ณ„์—†์ด JDBC API๋งŒ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ DBMS๋ฅผ ์ œ๊ณตํ•˜๋Š” ํšŒ์‚ฌ์—์„œ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์ž๋ฐ” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ JDBC ๋งค๋‹ˆ์ €๋ฅผ ํ†ตํ•ด ๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.  ๋”ฐ๋ผ์„œ ์‚ฌ์šฉํ•˜๋Š” DBMS๊ฐ€ ๋ฐ”๊ปด๋„ ์ด์— ๋”ฐ๋ฅธ JDBC ๋“œ๋ผ์ด๋ฒ„๋งŒ ๋กœ๋“œํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์—๋Š” DBMS ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์ •์ด ํ•„์š” ์—†๋‹ค.JDBC ๋“œ๋ผ์ด๋ธŒ ๋งค๋‹ˆ์ € : ์ž๋ฐ” API์—์„œ ์ง€..

Study/Java 2024. 11. 19. 22:12
๋กœ๊ทธ ๋ ˆ๋ฒจ ๋ฐ ๋กœ๊ทธ ์ž‘์„ฑ ๊ธฐ์ค€

์šด์˜์ค‘์ธ ์†”๋ฃจ์…˜์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด ์›์ธ์„ ํŒŒ์•…ํ•˜๋ ค๋Š”๋ฐ, ์—๋Ÿฌ๋ฅผ ์ œ์™ธํ•œ debug๋‚˜ info ๋กœ๊ทธ๊ฐ€ ํ•˜๋‚˜๋„ ์ฐํžˆ์ง€ ์•Š์•„ ์›์ธ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์—†๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ๋กœ๊ทธ ์ฐ๋Š” ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด ํŒจ์น˜๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ๋กœ๊ทธ๋ฅผ ์ฐ์–ด์•ผ ์šด์˜ํ•  ๋•Œ ์ƒํƒœ๋ฅผ ์ž˜ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์„์ง€ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฒˆ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.๐Ÿ“– ๋กœ๊ทธ(Log)์˜ ๋ชฉ์ ๋กœ๊ทธ๋Š” ์‹œ์Šคํ…œ์ด๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์ด๋ฒคํŠธ์˜ ๊ธฐ๋ก์œผ๋กœ, ๊ฐœ๋ฐœ์ž์™€ ์šด์˜ ํŒ€์ด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.์„œ๋น„์Šค ๋™์ž‘ ์ƒํƒœ ํŒŒ์•…์žฅ์•  ํŒŒ์•… ๋ฐ ์•Œ๋ฆผ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ์„œ๋น„์Šค ์ง€ํ‘œ์˜ ํ™•์ธ, ํŠธ๋žœ์žญ์…˜, ์„ฑ๋Šฅ ํŒŒ์•…ํ•˜์ง€๋งŒ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋งค์ผ ์ˆ˜์‹ญ GB์— ๋‹ฌํ•˜๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์–ด ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ..

Study/Back-End 2024. 11. 11. 21:02
[Node.js] Express์˜ listen ๋ฐ Cors ์„ค์ •

์–ด์ œ ์ž‘์„ฑํ–ˆ๋˜ Nginx์—์„œ Reverse Proxy ์„ค์ • ํ›„ Spring Server์—์„œ Cors ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ Spring Security Cors ์„ค์ •์— ์™ธ๋ถ€๋ง ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด ํ•ด๊ฒฐํ•˜์˜€๋‹ค๊ณ  ํ•˜์˜€๋‹ค. ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜์ง€๋งŒ Node.js Express ์„œ๋ฒ„์—์„œ๋„ Cors ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋Š”๋ฐ Cors ์„ค์ •๊ณผ ํ•จ๊ป˜ app.listen("0.0.0.0")์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.  ์œ„์˜ ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ Cors๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ app.listen("0.0.0.0")์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. ๐Ÿ”Ž Cors ์„ค์ •์˜ ์—ญํ• Cors(Cross-Origin Resource Sharing)๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ๋ฐœ์ƒํ•˜๋Š” ๋ณด์•ˆ ์ •์ฑ…์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์˜ ์ถœ์ฒ˜(Origin)์— ๋”ฐ๋ผ ์„œ..

Study/Back-End 2024. 11. 7. 22:10