230727(λͺ©)
π€ μ±μ₯μΌμ§ 6.0
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
πΎ (4.0)νμ΅ ν€μλμμ μ΅λν κ°λ¨ν μ 보 μ 곡, κ³ λ―Όμμ λ΄ κ²½νμ μμΈν μ μ!
π₯ (5.0)νμ΅ ν€μλλ νμ€μ ν΅μ¬μΌλ‘λ§ μ 리, μ±κ³΅/μ€ν¨ μΌμ§ μμ±νκΈ°! μ΄ λ, μ€ν¨μ κ²½νμ μμΈν μ κΈ°!
π (6.0)<μμ κ°νΈ!!!> λ§€μΌ μ΅κ΄μ μΌλ‘ ν΅μ¬λ§ μ μ μ μκ² νλ μ λ³κ²½. μ±κ³΅λ³΄λ¨ μ€ν¨μ μ΄μ μ λ§μΆκΈ°.
- π (6.1)<μμ > λ§€λ² μ±κ³΅, μ€ν¨λ₯Ό λ°λ‘ μ λ κ²λ³΄λ¨ κ²½νμΌλ‘ νννμ
π μ€λμ κ°μ
μλ‘μ΄λ° μμ§ μ μμ΄ λμ§ μλ λλ..?! μ€λμ μ²μμΌλ‘ μμν κΈ°λ°μ κ³νμ μμ±ν΄λ³΄μλ€. μμ§ μμνμ μ€μ¬μΌλ‘ κ³νμ μΈμ°λ κ² μ½μ§ μμ§λ§, κ·Έλλ λκ° μ’λ κ°μμ μΈ κ²°κ³Όμ μ΄μ μ λ§μΆλκΉ μ€νΈλ μ€λ λν κ² κ°κ³ λκ° λ λͺ νν νλ£¨κ° λλ κ² κ°λ€. λ¬Όλ‘ μμ§ μν΄λ¬μ, μμ£Ό ν¨μ¨μ μ΄λΌλ λλκΉμ§λ μλμ§λ§ γ γ
𫧠μ€λμ κ³ λ―Ό
ν΄λ‘μ λ₯Ό μ¬μ©νλ κ²μ ν¨μν ν¨λ¬λ€μμ μ΄κΈλλκ°?
μ€λμ ν¨μν νλ‘κ·Έλλ°μ 곡λΆνλ©΄μ λͺ
μμ μ
λ ₯, μΆλ ₯ κ·Έλ¦¬κ³ μ묡μ μ
λ ₯, μΆλ ₯μ ꡬλΆνλ λ²μ λ°°μ λ€. μ¬κΈ°μ λͺ
μμ μ
λ ₯μ ν¨μμ μΈμ, λͺ
μμ μΆλ ₯μ ν¨μμ λ°νκ°μ μλ―Ένλ€. κ·Έλ¦¬κ³ μ΄λ₯Ό μ μΈν
λͺ¨λ μ
λ ₯κ³Ό μΆλ ₯μ μ묡μ μΈ κ°μΌλ‘ μ°λ¦¬κ° νν μλ side effect(λΆμ ν¨κ³Ό)
κ° λλ€. νλ° λ΄κ° λλ κ°μ²΄μ§ν₯κ³Ό ν¨μνμ κ°μ₯ λΉμ·νλ©΄μλ λ¬νκ² λ€λ₯Έ ν¬μΈνΈλ λ°λ‘ ν΄λ‘μ λ₯Ό μ¬μ©νλ κ²μ΄λ€.
κ°μ²΄μ§ν₯μ μ£Όλ‘ classλ‘ κ΅¬νμ νλ€λ³΄λ κ·Έ κ°μ²΄ μμ²΄κ° νλ‘νΌν°(μν)μ λ©μλλ₯Ό κ°λλ€. ν¨μλ λ΄λΆμ μΌλ‘ μ μΈν λ³μ(μν)λ₯Ό μ¬μ©ν μλ μμ§λ§, κ·Έ λ³μλ₯Ό μΈλΆμμ μ κ·Όν μλ μλ€. κ·Έλμ
ν¨μν νλ‘κ·Έλλ°μμλ ν΄λ‘μ λ₯Ό μ¬μ©ν΄μ μΈλΆμμ μ κ·Όν μ μλ λ³μλ₯Ό λ§λ€μ΄μ μνλ₯Ό κ΄λ¦¬νλ€. κ·Έλ λ€λ©΄ μ΄κ±΄ λΆμ ν¨κ³Όκ° μλκ°..? μ΄μ λν΄ κ΅¬κΈλ§μ ν΄λ μ λμ€μ§ μμμ GPTνν
λ¬Όμ΄λ΄€λ€.
ν¨μν νλ‘κ·Έλλ°μμλ λ³΄ν΅ μν λ³κ²½μ΄λ λ°μ΄ν° λ³κ²½μ μ§μν©λλ€. μ΄κ²μ΄ ν¨μν νλ‘κ·Έλλ°μ "μμμ±(purity)" κ°λ
μ ν΄λΉν©λλ€. μμ ν¨μλ λμΌν μ
λ ₯μ λν΄ νμ λμΌν μΆλ ₯μ λ°ννλ©° λΆμμ©(side-effects)κ° μμ΄μΌ ν©λλ€.
κ·Έλ¬λ, ν΄λ‘μ λ ν¨μν νλ‘κ·Έλλ°μμ μ€μν λꡬλ‘μ, μΈλΆ ν¨μμ λ²μμμ λ³μλ₯Ό "μΊ‘μ²"νμ¬ λ΄λΆ ν¨μκ° μ΄ λ³μμ μ‘μΈμ€ν μ μκ² ν©λλ€. μ΄λ₯Ό ν΅ν΄ ν¨μν νλ‘κ·Έλλ°μμλ μνλ₯Ό κ°μ§ μ μλ λ°©λ²μ μ 곡ν©λλ€.
λ€λ§ μ΄ ν΄λ‘μ λ³μλ₯Ό λ³κ²½νλ κ²μ μ¬μ€μ μν λ³κ²½μ μλ°νκΈ° λλ¬Έμ, μμν ν¨μν ν¨λ¬λ€μμλ μ΄κΈλλ νμλ‘ λ³Ό μ μμ΅λλ€. νμ§λ§ μ€μ νλ‘κ·Έλλ° νκ²½μμλ μμν ν¨μν ν¨λ¬λ€μλ§μ μ§ν€κΈ° μ΄λ ΅κ³ , λλ‘λ μν λ³κ²½μ΄ νμν κ²½μ°κ° μμ΅λλ€.
μ΄λ° κ²½μ°, ν¨μν νλ‘κ·Έλλ° μΈμ΄λ λΌμ΄λΈλ¬λ¦¬λ 'λΆλ³μ±'μ μ μ§νλ©΄μ μνλ₯Ό μ
λ°μ΄νΈνλ λ°©λ²λ€μ μ 곡ν©λλ€. μλ₯Ό λ€μ΄, μλ°μ€ν¬λ¦½νΈμ 리μ‘νΈμμλ μν λ³κ²½μ μν΄ setStateλ₯Ό μ 곡νκ³ , ν΄λ‘μ λ₯Ό μ΄μ©ν΄ μνλ₯Ό μ μ§νλ©΄μλ λΆλ³μ±μ μ§ν€λ κ²μ κΆμ₯ν©λλ€.
λ°λΌμ, ν΄λ‘μ λ₯Ό μ΄μ©ν΄μ νΉμ ν¨μκ° κ°λ ν΄λ‘μ λ³μμ κ°μ λ³κ²½νλ κ²μ κ²½μ°μ λ°λΌ ν¨μν ν¨λ¬λ€μμ μ΄κΈλ μ μμ§λ§, μ΄λ₯Ό μ μ νκ² μ¬μ©νλ©΄ ν¨μν ν¨λ¬λ€μμ μ§ν€λ©΄μλ νμν μν λ³κ²½μ ν μ μμ΅λλ€.
μ€ν°λμλ€κ³Όλ κ°μ΄ μ΄μΌκΈ°ν΄λ³Ό μμ μΈλ°, λ΄κ° μκ°νλ λ΅λ³μ΄λΌ λ§μ‘±μ€λ¬μ λ€. γ γ :) μ΄μ λ ν΄λ‘μ κ° μ μ€μνκ³ μ μ¬μ©νλμ§, νλ λΌμ΄λΈλ¬λ¦¬λ νλ μμν¬μμ μ΄λ»κ² νμ©νκ³ μλμ§ μ κ² κ°λ€.
βοΈ μ€λμ κ²½ν
express μμ΄ μλ² κ΅¬ννκΈ°
μ€λμ express μμ΄ μλ²λ₯Ό ꡬνν΄λ³΄μλ€. express μμ΄ μλ²λ₯Ό ꡬννλ €λ©΄ http λͺ¨λμ μ¬μ©ν΄μΌ νλ€. http λͺ¨λμ node.jsμ κΈ°λ³Έμ μΌλ‘ λ΄μ₯λμ΄ μλ λͺ¨λμ΄λ€. http λͺ¨λμ μ¬μ©νλ©΄ μλ²λ₯Ό ꡬνν μ μμ§λ§, μ€μ λ‘ μ½λμ κ°λ μ±λ μ’μ§ μκ³ λΌμ°ν° μ²λ¦¬ λν μ§μ λΆνκ² λΆκΈ°μ²λ¦¬ν΄μΌν΄μ expressμ κ°μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°λ κ² νΈνλ€. μ¬μ€ μ΄μ μλ expressκ° κ΅μ₯ν λ§λ²κ°μ λΌμ΄λΈλ¬λ¦¬λΌκ³ μκ°μ νλλ°, express μμ΄ http λͺ¨λλ‘λ§ μλ²λ₯Ό κ°λ¨ν μμ±ν΄λ³΄λ λλκΉβ¦ 보기 μ’κ² μ½λλ₯Ό μμ±νκ³ λ³Ό μ μκ² ν΄μ£Όλ..? μ§μ§ μ‘°κΈμ νΈμ κΈ°λ₯ μ λλ₯Ό μ 곡νλ€λ λλμ΄ λ€μλ€. γ γ γ γ γ (λ¬Όλ‘ μ 곡ν΄μ£Όλ μ¬λ¬ middlewareλ μ λ§ νΈν κ² κ°λ€~!γ γ γ )
μλ²λ¦¬μ€ μν€ν μ²(feat. serverless function)
λ§μ°νκ² μλ²λ¦¬μ€
λΌλ λ¨μ΄λ₯Ό λ€μΌλ©΄ μλ²κ° μλ€κ³ ..?
λΌλ μκ°μ νμλ€. νμ§λ§ μ€λ κ°λ¨νκ²λλ§ netlifyμ vercelμ serverless function κΈ°λ₯μ μ΄ν΄λ³΄κ³ μ λλ΅μ μΌλ‘ μλ²λ¦¬μ€κ° λμ§
μ μ μμλ€. μλ²κ° μλ€κΈ°λ³΄λ€λ μλ²λ₯Ό μ§μ ꡬννκ±°λ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν΄μ μλ²λ₯Ό ꡬννλ κ²μ΄ μλλΌ, μλ²λ₯Ό ꡬννλ κ²μ μΆμνμμΌμ μ¬μ©μκ° μλ²λ₯Ό ꡬννλ κ²μ²λΌ 보μ΄κ² νλ κ²μ΄λ€.
μλ₯Ό λ€μ΄ vercelμ serverless functionμ /api
ν΄λ μμ *.js
νμΌμ λ§λ€λ©΄, ν΄λΉ νμΌμ μ΄λ¦μ΄ λΌμ°ν°κ° λκ³ , νμΌ λ΄λΆμ ν¨μκ° λΌμ°ν° νΈλ€λ¬κ° λλ€. μ΄λ κ² νλ©΄ μλ²λ₯Ό μ§μ ꡬννλ κ²μ²λΌ 보μ΄μ§λ§, μ€μ λ‘λ vercelμ΄λ netlifyκ° μλ²λ₯Ό ꡬννκ³ , μ¬μ©μκ° μλ²λ₯Ό ꡬννλ κ²μ²λΌ 보μ΄κ² νλ κ²μ΄λ€. μ΄λ κ² μΆμνμμΌμ μ¬μ©μκ° μλ²λ₯Ό ꡬννλ κ²μ²λΌ 보μ΄κ² νλ κ²μ μλ²λ¦¬μ€ μν€ν
μ²
λΌκ³ νλ€. μλ§ λ΄κ° μκΈ°λ‘ μ΄λ° κΈ°λ₯μ΄ Next.jsμ κΈ°λ³Έμ μΌλ‘ λ΄μ₯λμ΄ μλ κ² κ°λ€.
πΎ μ€λμ κ΅ν
μ²μλΆν° λ€ λλ€κ³ μκ°νμ§ λ§μ. μλ‘μ΄ κ±Έ μ²μ²ν μ μ©ν΄λ³΄κ³ λ°λ³΅νλ©΄μ μ΅κ΄μΌλ‘, λ΄ κ²μΌλ‘ λ§λ€μ. λλ‘λ λ°λ³΅νκ³ μλ μκ°μ΄ μκΉλ€κ³ λλ λλ μμ§λ§, λ°λ³΅μ΄ μκΈ°μ λ΄ κ²μ΄ λλ κ²μ΄λ€. κ·Έλ° λ°λ³΅μ μμ€μλ μ΄λ»κ² λλ₯Ό μ’λ ν λ¨κ³ μ±μ₯μν¬ μ μμμ§ λ μκ°νμ. μ΄λ κ² λ°λ³΅νλ€λ³΄λ©΄ λΆλͺ μ’μ κ°λ°μκ° λμ΄μμΌλ¦¬λΌ λ―Ώλλ€. :)
πͺ΅ μ°Έκ³
- [μ± ] μμ λ€μ΄μ€λ ν¨μν μ½λ©
- express 곡μλ¬Έμ