JavaScript ๋™์ž‘ ์›๋ฆฌ :: ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ๊ณผ ๋น„๋™๊ธฐ ๋™์ž‘ (feat. ๋น„๋™๊ธฐ ์ฝœ๋ฐฑ)
์›น (WEB)/๊ณต๋ถ€ 2021. 4. 1. 21:56

JS ๋™์ž‘์›๋ฆฌ js๋Š” ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ์–ธ์–ด์ด๋ฏ€๋กœ ํ˜ธ์ถœ ์Šคํƒ์ด ํ•˜๋‚˜๊ณ  ํ•œ ๋ฒˆ์— ํ•œ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์— ๋”ฐ๋ฅธ ๋ฌธ์ œ๋Š” ํ•˜๋‚˜์˜ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด ๋‹ค๋ฅธ ๋กœ์ง์ด ๋ฉˆ์ถฐ๋ฒ„๋ฆฐ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋น„๋™๊ธฐ ์ฝœ๋ฐฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Ÿฐํƒ€์ž„ js ๋Ÿฐํƒ€์ž„์€ JS์—”์ง„, web api, task queue, event loop, render queue๋กœ ๋˜์–ด์žˆ๋‹ค. ์—”์ง„ js ์—”์ง„์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋Š” Google์˜ V8 ์—”์ง„์ด๋‹ค. Chrome๊ณผ Node.js์—์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. memory heap : ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น call stack : ํ˜ธ์ถœ ์Šคํƒ ์œ„์˜ ๋‘๊ฐ€์ง€๋กœ ์—”์ง„์€ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. Web API DOM, Ajax, TimeOut ๋“ฑ์˜ Web API๊ฐ€ ์ž‡๋‹ค. Callstack์—์„œ ๋น„๋™๊ธฐ ํ•จ์ˆ˜๊ฐ€ ..

Ajax์—์„œ ํ•„์š”ํ•œ SOP(Same Origin Policy), CORS(Cross-Origin Resource Sharing) ์ •๋ฆฌ
์›น (WEB)/๊ณต๋ถ€ 2021. 2. 6. 23:07

SOP, COP Same Origin Policy document ๊ฐ์ฒด๋Š” ์ถœ์‹ ์ธ origin์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์ด๋Š” js์—์„œ `document.location.origin`์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. document ๋‚ด์—์„œ ๋ฆฌ์†Œ์Šค๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ๋•Œ, origin์ด ๋‹ค๋ฅด๋‹ค๋ฉด ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์— ์žˆ์–ด์„œ ์ œํ•œ์„ ๋‘๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด SOP(Same Origin Policy)์ด๋‹ค. Origin ํŒ๋‹จ Origin์ด ๊ฐ™์€ ์ง€๋Š” Protocol, Host, Port๋กœ ํŒ๋‹จํ•˜๋Š”๋ฐ url ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. http://localhost:3000 Protocol://Host:Port ์„ธ ๊ฐ€์ง€๊ฐ€ ๋ชจ๋‘ ๊ฐ™์œผ๋ฉด ๊ฐ™์€ Origin์ด๋ผ๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒƒ์ด๋‹ค. IE๋Š” ์–‘์ชฝ ๋„๋ฉ”์ธ ๋ชจ๋‘ ๋†’์Œ ๋‹จ๊ณ„์˜ ๋ณด์•ˆ ์ˆ˜์ค€์ผ ๊ฒฝ์šฐ Same Origin ..