Next.js
λ₯Ό κΈ°λ°μΌλ‘CSR
,SSR
,SSG
,ISR
μ λν κ°λ μ μ 리ν μμ±ν ν¬μ€νΈμ λλ€.
ν΄λΌμ΄μΈνΈ μΈ‘ λ λλ§μ λλ€. ( μ¬μ©μκ° μ¬μ©νλ λΈλΌμ°μ μμ λ λλ§μ νλ€λ μλ―Έ )
URL
+ Method
μ λ§λ νμΌ/λ°μ΄ν°λ₯Ό μμ²νλ€.<div id="root"></div>
μ νμν νμΌλ€μ λν μμ²μ ν¬ν¨νλ HTML
μ λ°νν©λλ€.HTML
μ νμ±νλ λμ€μ νμν JavaScript
νμΌμ μμ²νκ³ νμ±ν©λλ€. ( <script src="xx.js" />
)JavaScript
λ₯Ό νμ±ν΄μ <div id="root"></div>
λ₯Ό μ±μ λ£μ΅λλ€. ( ReactDOM.render(_, document.querySelector("#root"))
)λμ μμμ ν¨κ» CSR
μ μ΄ν΄λ³΄λ©΄ λΈλΌμ°μ μμ μλ²μκ² μμ²νλ μκ°μ μΉνμ΄μ§μ μ λ³΄κ° μ±μμ§λ©° λ λλ§λκ² λ©λλ€.
μ΄ λ§μ μλ²μκ² μμ²νκΈ° μ μλ HTML
μ΄ λΉμ΄μλ μν μ¦, <div id="root"></div>
μνμ
λλ€.
κ²μΌλ‘ 보면 μ΄κ² λ¬΄μ¨ λ¬Έμ μΈκ° μκ°ν μλ μμ§λ§, SEO
μΈ‘λ©΄μμλ μ¬μ©μκ° μΉνμ΄μ§μ λ€μ΄κ°κΈ°μ μ ν¬λ‘€λ§ν΄μ νμν λ°μ΄ν°λ₯Ό μ°ΎμμΌνλλ° ν΄λΉ μ¬μ΄νΈμλ λΉ HTML
λ§ λ€μ΄κ° μμΌλ κ°μ Έμ¬ μ λ³΄κ° μλ€κ³ νλ¨ν©λλ€. ( κ΅¬κΈ κ²μμμ§μ μ μΈ )
λ°λΌμ κ²μ μμ§μ ν΄λΉ μ¬μ΄νΈλ₯Ό κ²μμ μ°μ μμμμ μμ ν μ μΈμμΌλ²λ¦¬κ² λλ κ²μ
λλ€.
λν HTML
μμ²κ³Ό μλ΅, JavaScript
μμ²κ³Ό μλ΅, JavaScript
νμ± μ΄λΌλ κ³Όμ μ΄ μμ΄μ μ λ κ°μ κ³Όμ ( HTML
μμ²κ³Ό μλ΅, JavaScript
μμ²κ³Ό μλ΅ )μμλ λΉ νλ©΄μ΄ λ³΄μ΄κ² λκ³ , JavaScript
νμ±μμλ λλΆλΆ μ€νΌλκ° λ³΄μ΄κ² λ©λλ€.
SEO
κ° μλλ€. ( κ²μ μμ§μ λ
ΈμΆλμ§ μλλ€. )JavaScript
νμ± κ³Όμ μ λ€λ₯Έ μ²λ¦¬λ₯Ό ν΄μ€μΌ νλ€. ( λ λλ§ κ³Όμ μ μκ°μ΄ 걸리기 λλ¬Έμ μ μ μκ² λ λλ§μ€μμ μΈμμμΌμ£ΌκΈ° μν¨ )μλ² μΈ‘ λ λλ§μ
λλ€. ( λΈλΌμ°μ μμ μμ²ν μλ²μμ μμ±λ HTML
μ μλ΅νλ€λ μλ―Έ )
URL
+ Method
μ λ§λ νμΌ/λ°μ΄ν°λ₯Ό μμ²νλ€.getServerSideProps()
λ₯Ό μ€ννκ³ μ»μ λ°μ΄ν°λ‘ HTML
μ μ±μμ μλ΅νλ€.HTML
μ νμ±ν΄μ λ°λ‘ νλ©΄μ λ λλ§νλ€.λμ μμμ ν¨κ» SSR
μ μ΄ν΄λ³΄λ©΄ μλ²μκ² μμ²νλ μκ° μλ²μΈ‘μμ getServerSideProps()
λ₯Ό μ€νν©λλ€.
getServerSideProps()
μμλ μΉνμ΄μ§λ₯Ό λ λλ§νλλ° νμν λ°μ΄ν°λ€μ μμ²νκ³ μλ΅νλ κ³Όμ μ μ²λ¦¬ν©λλ€.
νμν λ°μ΄ν°λ₯Ό λ°μμ HTML
μ μμ±νκ³ μλ΅ν©λλ€. ( μ΄λ―Έ μμ±λ μνλ‘ μλ΅λκΈ° λλ¬Έμ SEO
μ μ’μ )
λΈλΌμ°μ μμ λ°μ HTML
μ νμ±ν΄μ νλ©΄μ λ λλ§ν©λλ€. ( λ¨, μλ²μμ μμ±νλ μκ°μ΄ νμνλ―λ‘ μλ΅ μκ°μ΄ CSR
λ³΄λ€ μ€λ κ±Έλ¦Ό )
SEO
κ° λλ€. ( κ²μ μμ§μ λ
ΈμΆλλ€. )CSR
λ³΄λ€ μ€λ κ±Έλ¦°λ€. ( μλ²μμ μμ±νλ μκ°μ΄ νμνκΈ° λλ¬Έ )HTML
μ μμ±ν¨ )μ μ μ¬μ΄νΈ μμ±μ λλ€.
Next.js
λ₯Ό build
ν λ getStaticSideProps()
λ₯Ό μ€ννλ€.getStaticSideProps()
λ₯Ό μ€νν΄μ μ»μ λ°μ΄ν°λ₯Ό μ΄μ©ν΄μ 미리 HTML
μ μμ±νλ€.URL
+Method
μ λ§λ νμΌ/λ°μ΄ν°λ₯Ό μμ²νλ©΄ λ°λ‘ μμ±λ HTML
μ μλ΅νλ€.SEO
κ° λλ€. ( κ²μ μμ§μ λ
ΈμΆλλ€. )HTML
μ κ·Έλλ‘ μ μ‘ )DB
κ° μμ λλλΌλ κ·Έ μμ λ λ°μ΄ν°κ° μ
λ°μ΄νΈλμ§ μλλ€. )μ μ μΈ μ¬μ΄νΈλ₯Ό λ€μ μμ±ν©λλ€.
Next.js
λ₯Ό build
ν λ getStaticSideProps()
λ₯Ό μ€ννλ€.getStaticSideProps()
λ₯Ό μ€νν΄μ μ»μ λ°μ΄ν°λ₯Ό μ΄μ©ν΄μ 미리 HTML
μ μμ±νλ€.getStaticSideProps()
μμ μ€μ ν revalidate
νΉμ unstable_revalidate()
λ₯Ό μ΄μ©ν΄μ νΉμ μμ μ λ€μ μ μ νμ΄μ§λ₯Ό μ¬μμ±νλ€.URL
+Method
μ λ§λ νμΌ/λ°μ΄ν°λ₯Ό μμ²νλ©΄ λ°λ‘ μμ±λ HTML
μ μλ΅νλ€.SEO
κ° λλ€. ( κ²μ μμ§μ λ
ΈμΆλλ€. )HTML
μ κ·Έλλ‘ μ μ‘ )revalidate
νΉμ unstable_revalidate()
λ₯Ό μ¬μ©νλ©΄ μνλ μ§μ μ λ€μ νμ΄μ§λ₯Ό μ¬μμ±ν μ μμ΅λλ€. )