๋ค์ด๊ฐ๋ฉฐ ๐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ดํดํ๋ ๋ฐ ์์ด์ ์คํ ์ปจํ ์คํธ(Execution Context)์ ๊ฐ๋ ์ ๋ํด์ ์์งํ๋ ๊ฒ์ ์ค์ํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ํต์ฌ ๊ฐ๋ ์ค ํ๋๋ก, ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฝ๋์ ์คํ ์์์ ๋ฐฉ์์ ๊ฒฐ์ ํ๊ฒ ๋์ฃ . ์คํ ์ปจํ ์คํธ(Excution Context)๋โ ์คํํ ์ฝ๋์ ์ ๊ณตํ ํ๊ฒฝ ์ ๋ณด๋ค์ ๋ชจ์๋์ ๊ฐ์ฒด์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์ธ์ด๋ก์์ ์ฑ๊ฒฉ์ ๊ฐ์ฅ ์ ํ์ ํ ์ ์๋ ๊ฐ๋ ์ ๋๋ค. ๊ทธ๋์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์คํ ์ปจํ ์คํธ๊ฐ ํ์ฑํ๋๋ ์์ ์ ์๋์ ๊ฐ์ ๋์์ ์ํํฉ๋๋ค. ํธ์ด์คํ (hoisting) ์ธ๋ถ ํ๊ฒฝ ์ ๋ณด ๊ตฌ์ฑ this ๊ฐ ์ค์ ๋ฑ๋ฑ ์ด๋ก ์ธํด ๋ค๋ฅธ ์ธ์ด์์๋ ๋ฐ๊ฒฌํ ์ ์๋ ํน์ดํ ํ์๋ค์ด ๋ฐ์ํฉ๋๋ค. ๋์ ๊ณผ์ ๋์ผํ ํ๊ฒฝ์ ์๋ ์ฝ๋๋ค์ ์คํํ ๋ ํ์ํ ํ๊ฒฝ ์ ๋ณด..
๐ ๋ค์ด๊ฐ๋ฉฐ ๋น๋๊ธฐ ์ฒ๋ฆฌ ํจํด์ ์์๋ณด๊ธฐ ์์, ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ๋ฌด์์ผ๊น์? ๋น๋๊ธฐ ์ฒ๋ฆฌ๋? ํน์ ์ฝ๋์ ์ฐ์ฐ์ด ์๋ฃ๋ ๋๊น์ง ์ ์ฒด ์ฝ๋์ ์คํ์ ์ค๋จํ์ง ์๊ณ , ๋ค์ ์ฝ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ์คํํ๋ ๋ฐฉ์์ ๋งํฉ๋๋ค. ์ด๋ ๊ฒ ๋์ํ๋ ํจ์๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ '๋น๋๊ธฐ ํจ์'๋ผ๊ณ ํฉ๋๋ค. ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ํ๊ณ์ ์ ์์ ์๋ฃ ์์ ์ ์์ธกํ๊ธฐ ์ด๋ ต๋ค๋ ์ ์ ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๋ณธ์ง์ ์ธ ํน์ฑ์ด๋ฉฐ, ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธ ์ค๋ ๋(single-threaded) ๊ธฐ๋ฐ์ ์ธ์ด๋ก, ํ ๋ฒ์ ํ๋์ ์์ ๋ง ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ฆ, ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฝ๋๊ฐ ์์ฑ๋ ์์๋๋ก, ์์์ ์๋๋ก, ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋น๋๊ธฐ์ ์ธ ..
๐ ๋ค์ด๊ฐ๋ฉฐ Next.js 13 ๋ฒ์ ์ดํ์๋ Rust ์ธ์ด๋ก ๊ฐ๋ฐ๋ Turbopack์ด ๋์ ๋์์ต๋๋ค. Next 14 ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์งํํ๊ณ Turbopack์ผ๋ก ๊ฐ๋ฐ ํ๊ฒฝ์ ์คํํ์ ๋ ๋ง์ดํ ๋ฌธ์ ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค ํฉ๋๋ค. ๋ฌธ์ ๋ฐ์ โ Turbopack์ผ๋ก ๊ฐ๋ฐ ํ๊ฒฝ์ ์คํํ์ ์๋์ ๊ฐ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด ์ค๋ฅ์ ๋ํด ๊ฒ์ํด ๋ณด๋ "์ปดํฌ๋ํธ์ ์ด๋ฆ์ด ์๋ชป๋์๊ฑฐ๋, import ๊ฒฝ๋ก๊ฐ ์๋ชป ์ ๋ ฅ๋์์ ๋ ๋ฐ์ํ๋ค"๋ ์ค๋ช ์ ์ฐพ์ ์ ์์์ต๋๋ค. ์ด์ ๋ฐ๋ผ import ๋ ๋ถ๋ถ์ ์ ํ์ธํด ๋ณด๋ผ๋ ์กฐ์ธ์ด ์์์ต๋๋ค. ๊ทธ๋ฌ๋, ์ ์ฝ๋์์๋ import๊ฐ ์ ์์ ์ผ๋ก ์ด๋ฃจ์ด์ก๊ธฐ ๋๋ฌธ์ ์์ ํ ๋ถ๋ถ์ด ์์์ต๋๋ค. ๋ฐ๋ผ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ค์ ํ์ธํด ๋ณธ ๊ฒฐ๊ณผ 'DarkModeBtn' ์ปดํฌ๋..
๐ ๋ค์ด๊ฐ๋ฉฐ ๋จผ์ , ์น ๋ ๋๋ง(Web Rendering)์ด๋ ์น ํ์ด์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค. ์ด ๋ ๋๋ง ๋ฐฉ์์ ๋ฐ๋ผ์ ๋ก๋ฉ ์๋, ๊ฒ์ ์์ง ์ต์ ํ(SEO), ์ฌ์ฉ์ ๊ฒฝํ ๋ฑ์ด ๋ฌ๋ผ์ง๋๋ค. ์ด ๊ณผ์ ์ ๊ฐ๋จํ ๋น์ ํ์๋ฉด, ๋ ์คํ ๋์์ ์๋ฆฌ๋ฅผ ์ฃผ๋ฌธํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ ์คํ ๋์์ ์๋(์ฌ์ฉ์)์ด ๋ฉ๋ด(์น ํ์ด์ง)๋ฅผ ์ฃผ๋ฌธํ๊ณ , ์๋ฆฌ์ฌ(์๋ฒ)๊ฐ ์๋ฆฌ(์นํ์ด์ง)๋ฅผ ์ค๋นํ๊ณ , ์จ์ดํฐ(๋ธ๋ผ์ฐ์ )๊ฐ ์๋ฆฌ๋ฅผ ์๋์๊ฒ ๊ฐ์ ธ๋ค์ฃผ๋ ๊ณผ์ ๊ณผ ๋น์ทํฉ๋๋ค. ์ฌ๊ธฐ์ ์๋ฆฌ์ฌ๊ฐ ์๋ฆฌ๋ฅผ ์ค๋นํ๋ ๊ณผ์ ์ด ๋ฐ๋ก ๋ ๋๋ง(Rendering)์ ๋๋ค. ์ด๋ ๊ฒ ์ค์ํ ์น ๋ ๋๋ง์๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ์์ด ์์ต๋๋ค. ์ค๋ ์์๋ณผ ๋ ๋๋ง ๋ฐฉ์๋ค์ ์๋์ ๊ฐ์ต๋๋ค. ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง(Client Side Rendering, CS..
๐ ๋ค์ด๊ฐ๋ฉฐ ์ต๊ทผ Next.14 ๋ฒ์ app router๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์งํํ๋ฉด์ ์นด์นด์คํก ๊ณต์ ํ๊ธฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ์์ด์ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๊ณผ ์ฌ๋ฌ ์ค๋ฅ๋ฅผ ๋ง์ดํ์ฌ ์๋กญ๊ฒ ํฌ์คํ ํฉ๋๋ค. ์ด์ ํฌ์คํ ์์ 1๋ฒ ~ 1-3๋ฒ๊น์ง๋ ๋ฐฉ๋ฒ์ด ๋์ผํฉ๋๋ค. ์ด์ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ ํ๋ซํผ ๋ฑ๋ก๊น์ง ํ๊ณ ์ฝ์ด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. app router์์๋ _document.tsx์ _app.tsx๊ฐ ์ฌ๋ผ์ง๊ณ ์ด์ ์ ํด๋น ํ์ผ์์ ์์ฑ๋์๋ ์ฝ๋๋ layout.tsx์์ ์์ฑํด์ฃผ์ด์ผ ํฉ๋๋ค. ์คํฌ๋ฆฝํธ ์ปดํฌ๋ํธ ์์ฑ ์นด์นด์ค ๋๋ฒจ๋กํผ์์ ํ๋ซํผ ๋ฑ๋ก์ ์๋ฃํ๋ค๋ฉด ์ด์ ํ๋ก์ ํธ๋ก ๋์์์ ์ ์ฉ์ ํด๋ด ์๋ค. ๋จผ์ KakaoScript.tsx ํ์ผ์ ์์ฑํ๊ณ ์๋ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ํ์ผ ์์น๋ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๋ง๊ฒ ์์ฑํ์๋ฉด ๋ฉ..
๐๋ค์ด๊ฐ๋ฉฐ ์ฝ 2๋ ์ Next.js(SSG) + TypeScript๋ก ์ ์ํ ๋กค MBTI ํ๋ก์ ํธ๋ฅผ 14 ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ๊ณผ์ ๋ฐ ํ๊ธฐ๋ฅผ ์์ฑํด๋ณด๋ ค ํ๋ค. ํด๋น ๊ธ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ด๋ป๊ฒ ํ๋ ๊ฐ์ ๋ํ ๊ธ์ด ์๋๋๋ค. ์ ๋ชฉ ๊ทธ๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ํ๋ ๊ณผ์ ์ ๊ธฐ๋กํ๋ ๊ธ์ ๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ํด์ผ ํ๋๊ฐ? ์ฌ์ค ์๋น์ค ์์ฒด๋ก๋ ๋ฌธ์ ์์ด ์ ๋์๊ฐ๊ณ ์์๋ค. ๋์ ์ Next.js๋ก ์ง์ A - Z๊น์ง ํด๋ณธ ํ๋ก์ ํธ๋ ๋กค MBTI ํ๋ก์ ํธ๋ฐ์ ์์๋ค. Next.js๊ฐ 11๋ฒ์ ์ ๋นํด 14 ๋ฒ์ ๊น์ง(ํนํ 13 ๋ฒ์ ์์) ๋ง์ ๋ถ๋ถ์ด ๋ณ๊ฒฝ์ด ๋๊ณ , ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์ง ์ง์ ๋ถ๋ชํ๋ฉฐ ๊นจ๋ฌ์ผ๋ฉฐ ํ์ตํ๋ ๋ฐฉ์์ผ๋ก ์ง์์ ํก์ํ๋ ๋์ ์ฑํฅ์ธ ์ด์ ์ ์ต์ ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉด์ ๊ธฐ์กด ์ฝ๋์๋ ..
this ํค์๋์ ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ this๋ ํ์ฌ ์คํ ์ปจํ ์คํธ๋ฅผ ์ฐธ์กฐํ๋ ํน๋ณํ ํค์๋์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ๋ ๋ ํจ๊ป ๊ฒฐ์ ์ด ๋๋๋ฐ์. ์ฆ, this์ ๊ฐ์ ํจ์๊ฐ ์ด๋ป๊ฒ ํธ์ถ๋์๋์ง์ ๋ฐ๋ผ ๋ณํ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก๋ ํจ์๋ฅผ ํธ์ถํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํฉ๋๋ค. ์ผ๋ฐ ํจ์์์์ this ์ผ๋ฐํจ์์์ this๋ '์ ์ญ ๊ฐ์ฒด'๋ฅผ ๊ฐ๋ฆฌํต๋๋ค. ์ ์ญ ๊ฐ์ฒด๋? ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์๋ window, Node.js ํ๊ฒฝ์์๋ global ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํต๋๋ค. function main() { console.log(this); } main(); // window ๊ฐ์ฒด ๋๋ global ๊ฐ์ฒด ์ถ๋ ฅ ์์ ๊ฐ์ด ์ด๋ ๊ฒ ์ ์ญ์ ์ผ๋ก ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ์ function main() { console.log(this); } ..
๐ ๋ค์ด๊ฐ๋ฉฐ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ url์ ์ ๋ ฅํ๋ฉด ์๊ธฐ๋ ๊ณผ์ ๋ค์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. DNS ๋ ์ฝ๋ ํ์ธ ์ฒซ ๋ฒ์งธ๋ก, ๋ธ๋ผ์ฐ์ ๋ DNS(Domain Name Server) ๋ ์ฝ๋์ ์บ์๋ฅผ ํ์ธํ์ฌ ํด๋น URL์ IP ์ฃผ์๋ฅผ ์ฐพ๊ฒ ๋ฉ๋๋ค. DNS(Domain Name Server)๋? DNS๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋๋ค. DNS๋ ๋๋ฉ์ธ ์ด๋ฆ๊ณผ IP ์ฃผ์๋ฅผ ๋งคํํด์ฃผ๋ ์๋ฒ๋ก, ๋ธ๋ผ์ฐ์ ๊ฐ ์ธํฐ๋ท ์์์ ๋ก๋ํ ์ ์๋๋ก ๋์์ค๋๋ค. ์ฆ, DNS๋ ์ ํ๋ฒํธ๋ถ์ ๊ฐ์ ์ญํ ์ ํฉ๋๋ค. ์ฌ๋๋ค์ด ์ด๋ฆ์ผ๋ก ๋ค๋ฅธ ์ฌ๋์ ์ฐพ๋ฏ์ด, ์ปดํจํฐ๋ DNS๋ฅผ ์ฌ์ฉํ์ฌ ์น์ฌ์ดํธ์ ๋๋ฉ์ธ ์ด๋ฆ์ ํด๋น IP ์ฃผ์๋ก ๋ณํํฉ๋๋ค. ํด๋น ๊ณผ์ ์์ ์๋์ ์์๋ก ํ์ธ์ ํ๊ฒ ๋ฉ๋๋ค. ๋ธ๋ผ์ฐ์ ์บ์ ํ์ธ: ๋ธ๋ผ์ฐ์ ๋ ์ด์ ์ ๋ฐฉ๋ฌธํ ์น์ฌ์ดํธ..
๐ ๋ค์ด๊ฐ๋ฉฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฑฐ๋ ์ฌ์ฉํ๋ฉด์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ ์ค ํ๋๋ ๋ฐ์ดํฐ์ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ์ ๋๋ค. ์ด๋ฅผ ์ํด ์ฟ ํค, ์ธ์ , ์น ์คํ ๋ฆฌ์ง์ ๊ฐ์ ๊ธฐ์ ๋ค์ด ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ, ์ด๋ค์ ๊ฐ๊ฐ์ ๊ณ ์ ํ ํน์ง๊ณผ ์ฅ๋จ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ฟ ํค, ์ธ์ , ์น ์คํ ๋ฆฌ์ง์ ์ฐจ์ด๋ฅผ ์์ธํ ์์๋ณด๊ณ , ๊ฐ๊ฐ์ ์ฅ๋จ์ ๊ณผ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ํฉ, ๊ทธ๋ฆฌ๊ณ ๋ณด์ ์ด์์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฟ ํค(Cookie) ์ฟ ํค๋ ์น ์๋ฒ ๋๋ ํด๋ผ์ด์ธํธ์์ ์์ฑ๋์ด ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋๋ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅ๋๋ key์ value๋ก ์ด๋ฃจ์ด์ง ์์ ํ ์คํธ ํ์ผ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค๋ ๋ง๋ฃ์ผ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ง๋ฃ์ผ์ด ์ง๋๋ฉด ์๋์ผ๋ก ์ญ์ ๋๋ ๊ตฌ์กฐ์ ๋๋ค. ์น ์๋ฒ๊ฐ ์๋ต์ ๋ณด๋ผ ๋ HTTP ํค๋๋ฅผ ํตํด ์ฟ ํค๋ฅผ ํด๋ผ์ด์ธํธ..