
π λ€μ΄κ°λ©° μ΅κ·Ό λ€μν μΉ μλΉμ€λ₯Ό μ ν΄λ³΄λ©΄ κ°νΈν SNS λ‘κ·ΈμΈμΌλ‘ μ½κ² μλΉμ€λ₯Ό μ΄μ©ν μ μμ΅λλ€. μ΄λ° κ°νΈν SNS λ‘κ·ΈμΈμ΄ λ°λ‘ OAuth2.0 νλ‘ν μ½μ ν΅ν΄ μ§νλ©λλ€. κ·ΈλΌ, OAuthκ° μ΄λ€ λ°°κ²½μμ λ±μ₯νμκ³ , νμ¬λ μ΄λ»κ² νμ€νλμ΄ OAuth2.0μ΄λΌλ μ΄λ¦μΌλ‘ μ¬μ©λκ³ μλμ§, κ·Έ νλ¦μ λν κ°λ μ ν¨κ» μμλ³΄κ² μ΅λλ€. π§ OAuth λ±μ₯λ°°κ²½ μΉ μλΉμ€μ λ€μμ±μ΄ μ¦κ°νλ©΄μ, μμ νκ² μ 보λ₯Ό 곡μ νλ λ°©λ²μ λν νμμ±μ΄ μκ²Όμ΅λλ€. μ΄λ‘ μΈν΄ OAuth(Open Authorization)λΌλ κ°λ μ΄ νμνκ² λμμ΅λλ€. μ΄λ₯Ό μ€λͺ νκΈ° μν΄μ ν κ°μ§ μλ₯Ό λ€μ΄ λ³Όκ²μ. μ°λ¦¬μ μλΉμ€κ° μ¬μ©μμκ² μ¬μ©μμ ꡬκΈμ λν μ 보λ₯Ό μ 곡νλ €λ©΄ μ΄λ»κ² ν΄μΌ ν κΉμ? μ¬μ©μκ° κ΅¬κΈμ λ..

π λ€μ΄κ°λ©°μ΄λ² ν¬μ€ν μ μΉ μμΌ(Web Scoket)μ λν ν¬μ€ν μ νλ €κ³ ν©λλ€. μ΄ κΈμ μ½μΌμλ λΆλ€μ μλ§ μΉ μμΌμ΄ 무μμΈμ§ μ λλ μκ³ μμ κ²μ΄λΌκ³ μκ°ν©λλ€. λ§μ΅λλ€. μ€μκ° ν΅μ μ΄ νμν λ μ κ·Ήμ μΌλ‘ μ¬μ©λλ κΈ°μ μ λλ€. κ·ΈλΌ μ μ€μκ° ν΅μ μ ν λ μΉ μμΌμ μ¬μ©νλμ§, κΈ°μ‘΄μλ μ΄λ€ λ°©μμ μ¬μ©νκ³ , μ΄λ€ λ¬Έμ λ₯Ό ν΄κ²°ν΄ μ£Όλμ§, μ΄λ»κ² λμνλμ§ λ±λ± μμλ³΄κ² μ΅λλ€.μΉ μμΌμ λ±μ₯ λ°°κ²½μ΄κΈ°μ μΈν°λ· ν΅μ λ°©μμ μ£Όλ‘ HTTPλ₯Ό μ΄μ©ν ν΄λΌμ΄μΈνΈ(μμ²) - μλ²(μλ΅) λͺ¨λΈμ ν΅ν΄ μ§νλμμ΅λλ€.μ¦, ν΄λΌμ΄μΈνΈκ° μλ²μ μμ²(Request)μ 보λ΄κ³ , μλ²κ° μ΄μ μλ΅(Response)νλ λ°μ΄μ€ ν΅μ λ°©μμ λ°λ¦ λλ€. μ΄ λ°©μμ΄ νμ΄μ§λ₯Ό μμ²νλ λ±μ κ°λ¨ν μμ μλ ν¨κ³Όμ ..

λ€μ΄κ°λ©° π μλ°μ€ν¬λ¦½νΈλ₯Ό μ΄ν΄νλ λ° μμ΄μ μ€ν 컨ν μ€νΈ(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); } ..