๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
[JavaScript] ์‹คํ–‰ ์ปจํ…์ŠคํŠธ(Execution Context)๊ฐ€ ๋ฌด์—‡์ผ๊นŒ์š”?

๋“ค์–ด๊ฐ€๋ฉฐ ๐Ÿ“– ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ(Execution Context)์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์ˆ™์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜๋กœ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฝ”๋“œ์˜ ์‹คํ–‰ ์ˆœ์„œ์™€ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋˜์ฃ . ์‹คํ–‰ ์ปจํ…์ŠคํŠธ(Excution Context)๋ž€โ“ ์‹คํ–‰ํ•  ์ฝ”๋“œ์— ์ œ๊ณตํ•  ํ™˜๊ฒฝ ์ •๋ณด๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋™์  ์–ธ์–ด๋กœ์„œ์˜ ์„ฑ๊ฒฉ์„ ๊ฐ€์žฅ ์ž˜ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋Š” ์‹œ์ ์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ด์ŠคํŒ…(hoisting) ์™ธ๋ถ€ ํ™˜๊ฒฝ ์ •๋ณด ๊ตฌ์„ฑ this ๊ฐ’ ์„ค์ • ๋“ฑ๋“ฑ ์ด๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†๋Š” ํŠน์ดํ•œ ํ˜•์ƒ๋“ค์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ž‘ ๊ณผ์ • ๋™์ผํ•œ ํ™˜๊ฒฝ์— ์žˆ๋Š” ์ฝ”๋“œ๋“ค์„ ์‹คํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ํ™˜๊ฒฝ ์ •๋ณด..

article thumbnail
[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค. (Callback, Promise, Generator, async/await)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ํŒจํ„ด์„ ์•Œ์•„๋ณด๊ธฐ ์•ž์„œ, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ž€? ํŠน์ • ์ฝ”๋“œ์˜ ์—ฐ์‚ฐ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ „์ฒด ์ฝ”๋“œ์˜ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ , ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” '๋น„๋™๊ธฐ ํ•จ์ˆ˜'๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ํ•œ๊ณ„์ ์€ ์ž‘์—… ์™„๋ฃŒ ์‹œ์ ์„ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ๋ณธ์งˆ์ ์ธ ํŠน์„ฑ์ด๋ฉฐ, ์ด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(single-threaded) ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด๋กœ, ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋œ ์ˆœ์„œ๋Œ€๋กœ, ์œ„์—์„œ ์•„๋ž˜๋กœ, ๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋น„๋™๊ธฐ์ ์ธ ..

article thumbnail
[Next.js] Turbopack์—์„œ SVG ๊ด€๋ จ Element type is invalid: expected a string ์—๋Ÿฌ ํ•ด๊ฒฐ

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ Next.js 13 ๋ฒ„์ „ ์ดํ›„์—๋Š” Rust ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋œ Turbopack์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Next 14 ๋ฒ„์ „์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง„ํ–‰ํ•˜๊ณ  Turbopack์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๋งž์ดํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ๋ฐœ์ƒ โ— Turbopack์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•˜์ž ์•„๋ž˜์™€ ๊ฐ™์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ๊ฒ€์ƒ‰ํ•ด ๋ณด๋‹ˆ "์ปดํฌ๋„ŒํŠธ์˜ ์ด๋ฆ„์ด ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜, import ๊ฒฝ๋กœ๊ฐ€ ์ž˜๋ชป ์ž…๋ ฅ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค"๋Š” ์„ค๋ช…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ import ๋œ ๋ถ€๋ถ„์„ ์ž˜ ํ™•์ธํ•ด ๋ณด๋ผ๋Š” ์กฐ์–ธ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์ œ ์ฝ”๋“œ์—์„œ๋Š” import๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ด ๋ณธ ๊ฒฐ๊ณผ 'DarkModeBtn' ์ปดํฌ๋„Œ..

article thumbnail
[Web] CSR vs SSR vs SSG vs ISR ๊ฐ ๋ Œ๋”๋ง ๋ฐฉ์‹ ์‰ฝ๊ฒŒ ์•Œ์•„๋ณด๊ธฐ

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๋จผ์ €, ์›น ๋ Œ๋”๋ง(Web Rendering)์ด๋ž€ ์›น ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ Œ๋”๋ง ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ ๋กœ๋”ฉ ์†๋„, ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO), ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋“ฑ์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ๋น„์œ ํ•˜์ž๋ฉด, ๋ ˆ์Šคํ† ๋ž‘์—์„œ ์š”๋ฆฌ๋ฅผ ์ฃผ๋ฌธํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ ˆ์Šคํ† ๋ž‘์—์„œ ์†๋‹˜(์‚ฌ์šฉ์ž)์ด ๋ฉ”๋‰ด(์›น ํŽ˜์ด์ง€)๋ฅผ ์ฃผ๋ฌธํ•˜๊ณ , ์š”๋ฆฌ์‚ฌ(์„œ๋ฒ„)๊ฐ€ ์š”๋ฆฌ(์›นํŽ˜์ด์ง€)๋ฅผ ์ค€๋น„ํ•˜๊ณ , ์›จ์ดํ„ฐ(๋ธŒ๋ผ์šฐ์ €)๊ฐ€ ์š”๋ฆฌ๋ฅผ ์†๋‹˜์—๊ฒŒ ๊ฐ€์ ธ๋‹ค์ฃผ๋Š” ๊ณผ์ •๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์š”๋ฆฌ์‚ฌ๊ฐ€ ์š”๋ฆฌ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๊ณผ์ •์ด ๋ฐ”๋กœ ๋ Œ๋”๋ง(Rendering)์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ค‘์š”ํ•œ ์›น ๋ Œ๋”๋ง์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์•Œ์•„๋ณผ ๋ Œ๋”๋ง ๋ฐฉ์‹๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(Client Side Rendering, CS..

article thumbnail
[Next.js] v13 ์ดํ›„ app router์—์„œ ์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ ๊ตฌํ˜„(feat.TypeScript)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ตœ๊ทผ Next.14 ๋ฒ„์ „ app router๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์นด์นด์˜คํ†ก ๊ณต์œ ํ•˜๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๊ณผ ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜๋ฅผ ๋งž์ดํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ํฌ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ํฌ์ŠคํŒ…์—์„œ 1๋ฒˆ ~ 1-3๋ฒˆ๊นŒ์ง€๋Š” ๋ฐฉ๋ฒ•์ด ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด์„œ ํ”Œ๋žซํผ ๋“ฑ๋ก๊นŒ์ง€ ํ•˜๊ณ  ์ฝ์–ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. app router์—์„œ๋Š” _document.tsx์™€ _app.tsx๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ์ด์ „์— ํ•ด๋‹น ํŒŒ์ผ์—์„œ ์ž‘์„ฑ๋˜์—ˆ๋˜ ์ฝ”๋“œ๋Š” layout.tsx์—์„œ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์ปดํฌ๋„ŒํŠธ ์ž‘์„ฑ ์นด์นด์˜ค ๋””๋ฒจ๋กœํผ์—์„œ ํ”Œ๋žซํผ ๋“ฑ๋ก์„ ์™„๋ฃŒํ–ˆ๋‹ค๋ฉด ์ด์ œ ํ”„๋กœ์ ํŠธ๋กœ ๋Œ์•„์™€์„œ ์ ์šฉ์„ ํ•ด๋ด…์‹œ๋‹ค. ๋จผ์ € KakaoScript.tsx ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์œ„์น˜๋Š” ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ์— ๋งž๊ฒŒ ์ƒ์„ฑํ•˜์‹œ๋ฉด ๋ฉ..

article thumbnail
[Next.js] ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ 11์—์„œ 14๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณผ์ •

๐Ÿ“–๋“ค์–ด๊ฐ€๋ฉฐ ์•ฝ 2๋…„ ์ „ Next.js(SSG) + TypeScript๋กœ ์ œ์ž‘ํ•œ ๋กค MBTI ํ”„๋กœ์ ํŠธ๋ฅผ 14 ๋ฒ„์ „์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•œ ๊ณผ์ • ๋ฐ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋ ค ํ•œ๋‹ค. ํ•ด๋‹น ๊ธ€์€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š” ๊ฐ€์— ๋Œ€ํ•œ ๊ธ€์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ œ๋ชฉ ๊ทธ๋Œ€๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ•˜๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์™œ ํ•ด์•ผ ํ–ˆ๋Š”๊ฐ€? ์‚ฌ์‹ค ์„œ๋น„์Šค ์ž์ฒด๋กœ๋Š” ๋ฌธ์ œ์—†์ด ์ž˜ ๋Œ์•„๊ฐ€๊ณ  ์žˆ์—ˆ๋‹ค. ๋Œ€์‹ ์— Next.js๋กœ ์ง์ ‘ A - Z๊นŒ์ง€ ํ•ด๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ๋กค MBTI ํ”„๋กœ์ ํŠธ๋ฐ–์— ์—†์—ˆ๋‹ค. Next.js๊ฐ€ 11๋ฒ„์ „์— ๋น„ํ•ด 14 ๋ฒ„์ „๊นŒ์ง€(ํŠนํžˆ 13 ๋ฒ„์ „์—์„œ) ๋งŽ์€ ๋ถ€๋ถ„์ด ๋ณ€๊ฒฝ์ด ๋˜๊ณ , ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ง์ ‘ ๋ถ€๋”ชํžˆ๋ฉฐ ๊นจ๋‹ฌ์œผ๋ฉฐ ํ•™์Šตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง€์‹์„ ํก์ˆ˜ํ•˜๋Š” ๋‚˜์˜ ์„ฑํ–ฅ์ธ ์ด์œ ์™€ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๋ฉด์„œ ๊ธฐ์กด ์ฝ”๋“œ์™€๋Š” ..

article thumbnail
[JavaScript] this๊ฐ€ ๋ฌด์—‡์ผ๊นŒ์š”? ์ฝ”๋“œ ์˜ˆ์ œ๋กœ ์‰ฝ๊ฒŒ ์•Œ์•„๋ด…์‹œ๋‹ค.

this ํ‚ค์›Œ๋“œ์˜ ์ •์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ this๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํŠน๋ณ„ํ•œ ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ•จ๊ป˜ ๊ฒฐ์ •์ด ๋˜๋Š”๋ฐ์š”. ์ฆ‰, this์˜ ๊ฐ’์€ ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€์— ๋”ฐ๋ผ ๋ณ€ํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ์˜ this ์ผ๋ฐ˜ํ•จ์ˆ˜์—์„œ this๋Š” '์ „์—ญ ๊ฐ์ฒด'๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์ „์—ญ ๊ฐ์ฒด๋ž€? ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋Š” window, Node.js ํ™˜๊ฒฝ์—์„œ๋Š” global ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. function main() { console.log(this); } main(); // window ๊ฐ์ฒด ๋˜๋Š” global ๊ฐ์ฒด ์ถœ๋ ฅ ์œ„์™€ ๊ฐ™์ด ์ด๋ ‡๊ฒŒ ์ „์—ญ์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ function main() { console.log(this); } ..

article thumbnail
[Web] ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ ๊นŒ์š”?

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— url์„ ์ž…๋ ฅํ•˜๋ฉด ์ƒ๊ธฐ๋Š” ๊ณผ์ •๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. DNS ๋ ˆ์ฝ”๋“œ ํ™•์ธ ์ฒซ ๋ฒˆ์งธ๋กœ, ๋ธŒ๋ผ์šฐ์ €๋Š” DNS(Domain Name Server) ๋ ˆ์ฝ”๋“œ์˜ ์บ์‹œ๋ฅผ ํ™•์ธํ•˜์—ฌ ํ•ด๋‹น URL์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. DNS(Domain Name Server)๋ž€? DNS๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. DNS๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ IP ์ฃผ์†Œ๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๋Š” ์„œ๋ฒ„๋กœ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ธํ„ฐ๋„ท ์ž์›์„ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์ฆ‰, DNS๋Š” ์ „ํ™”๋ฒˆํ˜ธ๋ถ€์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฆ„์œผ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์ฐพ๋“ฏ์ด, ์ปดํ“จํ„ฐ๋Š” DNS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›น์‚ฌ์ดํŠธ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํ•ด๋‹น IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ณผ์ •์—์„œ ์•„๋ž˜์˜ ์ˆœ์„œ๋กœ ํ™•์ธ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ํ™•์ธ: ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด์ „์— ๋ฐฉ๋ฌธํ•œ ์›น์‚ฌ์ดํŠธ..

article thumbnail
[Web] ์ฟ ํ‚ค(Cookie) vs ์„ธ์…˜(Session) vs ์›น ์Šคํ† ๋ฆฌ์ง€(Web Storage)์˜ ์ฐจ์ด๋ฅผ ์‰ฝ๊ฒŒ ์•Œ์•„๋ด…์‹œ๋‹ค.

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