π± 25λ 10μ νκ³
λ€μ΄κ°λ©°β

μ€νλ₯ν°μμμ '첫 3κ°μ' μμ΅ κΈ°κ°μ 곡μμ μΌλ‘ λ§λ¬΄λ¦¬νκ³ λ€μ λ¨κ³λ₯Ό μ€λΉνλ μλ―Έ μλ ν λ¬μ΄μλ€. 3κ°μκ°μ μμ΅ κΈ°κ°μ λ§μΉκ³ POλ, κ·Έλ¦¬κ³ κ°λ°ν λλ£λ€κ³Ό ν¨κ» 'CSS (Continue, Stop, Start)' λ°©μμ νκ³ λ₯Ό μ§ννλ€.
κ° κ°μΈ μ±μ₯μ μν΄ μ΄λ κ² ν¨κ» μκ°μ λ΄μ΄ κ³ λ―Όν΄μ€λ€λ κ² μ체λ§μΌλ‘λ μ λ§ κ°μ¬ν κ²½νμ΄μλ€. μ΄ νΌλλ°±μ ν΅ν΄ μ§λ 3κ°μκ°μ λ΄ λͺ¨μ΅μ κ°κ΄μ μΌλ‘ λμλ³΄κ³ , μμΌλ‘ λμκ° λ°©ν₯μ μ€μ ν μ μκ² λμλ€.
10μ μ‘μ ν¬μΈνΈλ₯Ό λμ보며 10μ νκ³ λ₯Ό μμ±ν΄λ³΄λ €κ³ νλ€.
-
10μμ μ‘μ ν¬μΈνΈ
-
κΈ°μ‘΄ μ¬λ΄ μ½λ SSR μ νμ μν΄ Next.js νμ΅ (2μ£Ό μ§μ€ νμ΅)
-
κΈ°λ³Έμ μΈ SQLλ¬Έ νμ΅
-
μ€ν λ₯ν° μΉ/μ± λ§μ΄κ·Έλ μ΄μ μ μν΄ Flutter-web 곡λΆνκΈ°
μ§λ νκ³ μμ μμ 3κ°μ§μ μ‘μ ν¬μΈνΈλ₯Ό μμ±νλλ°, μ΄λ λ€ν κ²°κ³Όκ° μμ΄ μ²΄λν¬ νμ§ λͺ»νλ€. λ³΄λ€ λͺ νν μκ° νκ³ λ³ μ‘μ ν¬μΈνΈλ₯Ό μμ±νλλ‘ λ Έλ ₯ν΄μΌκ² λ€. 10μ νκ³ λ₯Ό 11μμ μ‘μ ν¬μΈνΈλ λ³΄λ€ κ΅¬μ²΄μ μ΄κ³ μ°μ μμκ° λμ κ²λ€μ μ λ³ν΄μ μμ±ν΄λ³΄λ €κ³ νλ€.
3κ°μ μμ΅ ν΅κ³Ό ν, POμ κ°λ°νκ³Ό ν¨κ» νκ³ β
CSS νκ³ λ
- Continue (κ³μ μνκ³ μλ μ )
- Stop (κ°μ μ΄ νμν μ )
- Start (μλ‘κ² μλνλ©΄ μ’μ μ )
μμλ‘ μ§νλμλ€. λλ£λΆλ€μ μ΄λ¦μ κ°λ¦¬κ³ 곡μ ν΄μ£Όμ νΌλλ°±μ μ΄λ―Έμ§λ‘ 첨λΆν΄λ³Έλ€.

νΌλλ°±μ μ 리νλ©° νμ ν λμ λͺ¨μ΅μ λ€μκ³Ό κ°μλ€.
λ°μ μν€λ©΄ μ’μ λμ κ°μ
- λ¬Έμ κΈ°λ°μ μν΅: νμ€ν 리 νμ κ³Ό 곡μ λ₯Ό μν΄ λ¬Έμλ₯Ό μ κ·Ήμ μΌλ‘ νμ©ν μ
- μ κ·Ήμ μΈ QAμ μ€λμ: λ§‘μ μμ μ λν΄ μ± μκ°μ κ°μ§κ³ μ£Όλμ μΌλ‘ QAλ₯Ό μ§νν μ
- μμ©μ μ΄κ³ μ£Όλμ μΈ νλ: νΌλλ°±μ κΈμ μ μΌλ‘ μμ©νκ³ , μ 무λ₯Ό μ£Όλμ μΌλ‘ μ°Ύμμ νλ €λ νλ
ν¨κ» νκ³ μΆμ λλ£κ° λκΈ° μν κ°μ ν λΆλΆ
- λλ²κΉ μ€ν¬: λ¬Έμ λ°μ μ λ²κ·Έ μ§μ μ λΉ λ₯΄κ² νμ νλ λ₯λ ₯μ ν€μΈ νμκ° μμ
- κΈ°μ 리μμΉ μλ: κΈ°μ μ€ν μ μ μ΄λ 리μμΉ μ, κ·Όκ±°λ₯Ό λ κΌΌκΌΌνκ² μμ§νκ³ λͺ ννκ² μ λ¬νλ λ Έλ ₯
- μλ²½μ£Όμλ³΄λ€ μμ: 'λ무 μνλ €λ' νλμμ μ‘°κΈ νμ λΉΌκ³ , 'μΌλ¨ μμνκ³ κ°μ νλ' μ¬μ΄ν΄μ λ§λλ μ°μ΅
μ₯μ μ κ³μ κ°κ³ λ¦κ³ λΆμ‘±ν μ μ μμΈμ νμ ν΄μ λ¨μ 2κ°μκ° μ§μ€μ μΌλ‘ κ°μ ν΄λκ° κ³νμ΄λ€.
κΈ°μ μ μΈ κ³ λ―Ό, "Vercel μ΄μ , μ§κΈ κΌ νμνκ°?"β
10μμ ν° κΈ°μ μ κ³ λ―Ό μ€ νλλ μ€νλ₯ν° μΉ SEO μ΅μ νλ₯Ό μν Next.js SSR λμ κ³Ό λ°°ν¬ νκ²½μ΄μλ€.
ν λ΄μμλ "SEO μ΅μ νλ₯Ό μν΄ Vercel μ΄μ μ΄ νμμ μ΄λ€"λΌλ μκ²¬μ΄ μμμ§λ§, AWS Amplify 곡μ λ¬Έμλ₯Ό λ€μ κ²ν νλ©° μ΄ μ μ μ μ§λ¬Έμ λμ§κ² λμλ€. "Amplifyλ Next.jsμ ν΅μ¬ κΈ°λ₯μ λλΆλΆ μ§μνλλ°, Vercelμμ μ 곡ν΄μ£Όλ κΈ°λ₯μ΄ μλ€λ©΄ νμμ μ°λ¦¬ λͺ©νμΈ SEO μ΅μ νμ μΉλͺ μ μΈ λ¬Έμ κ° μμκΉ μΆμλ€.
κ·Έλμ μ°μ κ° λ°΄λκ° μ§μ μ¬λΆ λ° λΉμ©μ μ°Ύμλ³΄κ³ λλ£λ€μκ² κ³΅μ νλ€.
Amplifyμ μ§μ νν© (λλ κ² vs μ λλ κ²)
Amplifyλ Next.jsμ ν΅μ¬ κΈ°λ₯μ λλΆλΆ μ§μνλ€.
- λλ κ²: SSR, SSG, μκ° κΈ°λ° ISR, μ΄λ―Έμ§ μ΅μ ν.
- μ λλ κ²:
- On-demand ISR (μ£Όλ¬Έν κ°±μ ): μ΄λ²€νΈ κΈ°λ° μ¦μ κ°±μ μ΄ λΆκ°λ₯νκ³ μκ° κΈ°λ°κ°±μ λ§ κ°λ₯ν©λλ€.
- Next.js Streaming: UI λΌλλ₯Ό λ¨Όμ 보μ¬μ£Όλ μ€νΈλ¦¬λ°μ μ§μνμ§ μμ, Core Web Vitals μ LCP κ°μ μ Vercel λ³΄λ€ λΆλ¦¬ν μ μλ€.
- λ―Έλ€μ¨μ΄ μ±λ₯: κΈ°λ₯μ λμνμ§λ§, AWSμ lambda μ£μ§ κΈ°λ°μ΄λΌ Vercelμ Edge μ±λ₯ λλΉ μ¬κ°ν μ½λ μ€ννΈ μνμ΄ μλ€.
Vercel μ΄μ μ λΉμ©κ³Ό 리μ€ν¬
λ¨μν κΈ°λ₯λ§ λ³΄κ³ Vercelλ‘ μ΄μ νκΈ°μλ λͺ νν λΉμ©μ΄ μ‘΄μ¬ν©λλ€.
- κΈ°μ μ μ’ μμ±: Vercelμ Next.jsμ λͺ¨λ κΈ°λ₯μ μ§μνμ§λ§, μ΄λ Next.jsκ° Vercel μΈνλΌμ κ°νκ² λ¬Άμ¬μμμ μλ―Ένλ€. λ°κ³¨ κΈ°μ§μ΄ μλ... μ°λ¦¬μκ²
- μ΄μ λΉμ© λ° λ³΅μ‘μ± μ¦κ°: μΈνλΌ λ²€λκ° λΆμ°λλ©΄ κ΄λ¦¬ ν¬μΈνΈμ λΉμ©μ΄ μ¦κ°νλ€.
κ²°λ‘ μ λ¨Όμ Amplifyμμ Next.js SSRμ ꡬμΆνκ³ μ΅μ νλ₯Ό μ§ννλ κ²
Amplifyμ νκ³κ° νμ¬ μ°λ¦¬ μλΉμ€μ Core Web Vitals μ μμ μΉλͺ μ μΈ μν₯μ μ£Όλμ§ νΉμ On-demand ISRμ μ€μκ°μ±μ΄ μ°λ¦¬ λΉμ¦λμ€μ νμμ μΈμ§ κ²ν ν κ²°κ³Ό, "μμ§μ μλλ€"λΌλ κ²°λ‘ μ λ΄λ Έλ€.
λ°λΌμ λ¨Όμ Amplify λ΄μμ SEOλ₯Ό κ·Ήλν, μλ₯Ό λ€μ΄ μ΄λ―Έμ§ μ΅μ ν μ κ², λΆνμν λμ λ λλ§ μ΅μνμ κ°μ μμ μ μλνκ³ , Core Web Vitals μ μκ° λͺ©νμΉμ λ―Έλ¬νκ±°λ μ½ν μΈ μ μ€μκ°μ±μ΄ μ€μν΄μ§λ μμ μ Vercel μ΄μ μ μ¬κ²ν νλ κ²μΌλ‘ μ μνλ€.
λν amplify νκ²½μμ λͺ¨λ Έλ ν¬ λΉλ μ€ν¬λ¦½νΈ μμ±μ μ λ₯Ό λ¨Ήλλ€λ μ견λ€μ΄ λ§μλλ° νμ¬ μ€νλ₯ν°λ λͺ¨λ Έλ ν¬ κ΅¬μ±λ μλκΈ°μ λμ±μ΄ amplifyμμ ν μ μλ κ²λ€μ μ§νν΄λ³΄κΈ°λ‘ νλ€.
κ²ͺμ΄λ³΄λ©΄ μκ² μ§ μΆμλ€... λ―Έλμ μ°λ¦¬ νμ΄ν
OPN λμμΈ μμ€ν κ΅¬μΆ μμβ
μ μ¬ 3κ°μ μ°¨κ° λλ©΄μ, λΉμ₯μ κΈ°λ₯ κ°λ° μΈμ μ₯κΈ°μ μΌλ‘ κΈ°μ¬ν 먹거리λ€μ΄ 보μ΄κΈ° μμνλ€. POμ΄μ λμμ΄λμ΄μ μ±μ±λμ΄ νΌκ·Έλ§μ OPN λμμΈ μμ€ν νμΌμ λ°λ‘ κ΄λ¦¬νμλ κ²μ λ³΄κ³ λ μκ°μ΄ μλ€.
νμ§λ§ ν΄μΌν κ²λ€μ΄ λ§μ μν©μμ,μ€μνμ§λ§ κΈνμ§ μμ λμμΈ μμ€ν ꡬμΆμ μ λ» μμνκΈ° μ΄λ €μ΄ νλ‘μ νΈμ²λΌ 보μλ€.
κ·Έλμ 무μμ 'μ κ° ν κ²μ!'κ° μλ μ΄ νλ‘μ νΈλ₯Ό νμ€μ μΌλ‘ μμν κΈ°λ°μ λ¨Όμ λ§λ ¨ν΄μΌκ² λ€κ³ μκ°νλ€. κ·Έλμ μ€νλ¦°νΈ νμμμ 곡μμ μΌλ‘ λ Όμλ₯Ό μ μνκΈ°μ μμ, λ€μκ³Ό κ°μ μ¬μ μμ μ μ§νν΄λ³΄μλ€.
- λμμΈ μμ€ν 리μμΉ: (ν μ€, λΌμΈ λ± κ΅λ΄μΈ λμμΈ μμ€ν μ¬λ‘ λΆμ)
- OPN λμμΈ μμ€ν λΆμ: (λμμ΄λκ° μ€κ³ μ€μΈ νΌκ·Έλ§ νμΌ λΆμ)
- λμμΈ μμ€ν κ΅¬μΆ μ²μ¬μ§: (μ»΄ν¬λνΈλ³ μμ κ°λ° 곡μ μΈ‘μ )
- κ°λ° νκ²½ ꡬμΆ: react κΈ°λ° Storybook μ΄κΈ° μΈν λ° νκ²½ ꡬμ±
μ΄λ¬ν μ€λΉλ₯Ό λ°νμΌλ‘ μ€νλ¦°νΈ νμμμ 'λμμΈ μμ€ν ꡬμΆ'μ μ건μΌλ‘ μ¬λ Έμ΅λλ€.

λ¬Όλ‘ μ΄ νλ‘μ νΈλ λΉμ₯μ μ°μ μμκ° λμ§ μμ μ μλ€κ³ μκ°νλ€. κ·Έλμ λμμ΄λμ λ Όμνμ¬, κΈ°μ‘΄ μ€νλ¦°νΈ μ 무μ λΆλ΄μ μ£Όμ§ μμΌλ©΄μλ κΎΈμ€ν μ§νν μ μλ 'μλμ μΈ νλ‘μΈμ€'λ₯Ό ν¨κ» μ μν΄λ³΄μλ€.
μ°λ¦¬μ κ²½λ νλ‘μΈμ€(μΌμ΄ λλλ‘ λ¨Όμ μκ²λΌλ νμ)
- μ£ΌκΈ°μ μΈ λμμΈ μμ€ν μ»΄ν¬λνΈ QA λ―Έν : λ§€μ£Ό λͺ©μμΌ 3μ, 1μκ° λμ λμμΈ μμ€ν QA λ° μ±ν¬μ μ μ§νν©λλ€.
- μ€νλ¦°νΈ μ΅μ λͺ©ν μ€μ : μ€νλ¦°νΈλ§λ€ μ΅μ 2κ° μ΄μμ μ»΄ν¬λνΈλ₯Ό ꡬννκ³ , μ΄λ₯Ό StorybookμΌλ‘ ν¨κ» QAνλ κ²μ λͺ©νλ‘ ν©λλ€.
μ΄λ κ² μμ μ¬μ΄ν΄μ λ리며 μμ€ν μ μ μ§μ μΌλ‘ μμ±ν΄λκ° κ³νμ λλ€.
25λ 10μ λ§, μμμ μμ§λ§ μλ§ λ΄λ μ νλνκ² λ°λΌλ³Ό κ² κ°λ€. μμμ νλ€. μνλ€!
λμμΈ μμ€ν ꡬμΆν΄λ³Έ κ²½νμ΄ μλ νλ‘ νΈμλ κ°λ°μλΆμ΄ μλ€λ©΄ λκΈ νΉμ λ§ν¬λμΈμΌλ‘ μ°λ½μ£ΌμΈμ.. λμμ£ΌμΈμ.
λ§μΉλ©°β
10μμ μμ μ±κ³΅μ κΈ°μ¨κ³Ό λλ£λ€μ λ°λ»ν νΌλλ°±μΌλ‘ κ°λ μ°¬ ν λ¬μ΄μλ€. 3κ°μ μ μ λμ μ§κΈμ λλ₯Ό λμ보며 μ΄ μ±μ₯μ λλ ₯μ μ£Όμ λΆλ€κ» λ€μ νλ² κΉμ΄ κ°μ¬νλ€.
-
11μμ μ‘μ ν¬μΈνΈ
-
Next.js λ΄ μ€ν λ₯ν° POC(Proof of Concept) μλ£ λ° κ³΅μ
-
μ€νλ₯ν°μ© λ€μ΄λ² μ§λ API κ°μ΄λ
- ν΅μ¬ κΈ°λ₯ 3~5κ°μ§(e.g., λ§μ»€ μ°κΈ°, 거리 κ³μ°)μ μ½λ μ€λν«.
- μ°λ¦¬κ° κ²ͺμλ(or κ²ͺμ) 'μ£Όμ λ¬Έμ μ ν΄κ²°μ± ' (e.g., μ’νκ³ μ€λ₯, λ§μ»€ λ‘λ© μ΅μ ν).
- μ κ· μ μ¬μλ₯Ό μν μ΄κΈ° μΈν λ°©λ² λ° μΈμ¦ ν€ κ΄λ¦¬ λ°©μ.
-
μ½λ μλν° λλ²κΉ ν΄ νμ΅ λ° μ€λ¬΄μ μ μ©
