λΈλΌμ°μ μλμ리μ λν΄ κ³΅λΆνλ μ€ μλ¬Έμ μ΄ λ°μνλ€.
"λΈλΌμ°μ μ£Όμμ°½μ URLμ μ λ ₯νλ©΄ λΈλΌμ°μ λ HTTP GET μμ²μ URL νλ‘ νΈ μλ²λ‘ μ μ‘νλ€. λ³΄ν΅ νλ‘ νΈ μλκ° μλ μΉ μλΉμ€μ κ²½μ° HTML νμΌμ κ²°κ³Όλ‘ λ°ννλ€." λΌλ λΆλΆμΈλ° νλ‘ νΈ μλ²μ μ‘΄μ¬κ° μ νν μ΄λ€ μΌμ νλ κ²μΈμ§ κΆκΈν΄ μ‘λ€..
"λΈλΌμ°μ μ£Όμμ°½μ URLμ μ λ ₯νλ©΄ λΈλΌμ°μ λ HTTP GET μμ²μ URL νλ‘ νΈ μλ²λ‘ μ μ‘νλ€. λ³΄ν΅ νλ‘ νΈ μλκ° μλ μΉ μλΉμ€μ κ²½μ° HTML νμΌμ κ²°κ³Όλ‘ λ°ννλ€." λΌλ λΆλΆμΈλ° νλ‘ νΈ μλ²μ μ‘΄μ¬κ° μ νν μ΄λ€ μΌμ νλ κ²μΈμ§ κΆκΈν΄ μ‘λ€..
β react, next, styled-components, redux λ±
νλ‘ νΈμλ κ°λ°μκ° React λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ¬ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )μκ² μ 곡ν JavaScript νμΌλ€μ ES6 + JSX λ¬Έλ²μΌλ‘ μμ±νκ² λλ©΄, Babel λ±μ μ»΄νμΌλ¬κ° λͺ¨λ λΈλΌμ°μ μμ νΈν κ°λ₯ν λ¬Έλ²μΌλ‘ λ³νν΄μ€λ€.
λν Webpack λ±μ λͺ¨λ λ²λ€λ¬κ° HTML, CSS, JavaScript νμΌλ€μ ν¨μ¨μ μΈ λ°©μμΌλ‘ μ μ ν λ²λ€λ§νμ¬ μ€λΉν΄λλ€.
ν΄λΌμ΄μΈνΈκ° μμ²μ λ³΄λΌ λλ§λ€ νλ‘ νΈ μλ²λ 미리 μ€λΉν΄λ HTML, CSS, JavaScript νμΌλ€μ ν΄λΌμ΄μΈνΈμκ² μ 곡νλ€. κ·Έλ¬λ©΄ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )λ μ λ¬λ°μ JavaScriptλ₯Ό μ€νν΄ νμ΄μ§μ λ λλ§μ μμνλ€. μ¦, React λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νλ JavaScript μ½λλ λμ μΌλ‘ DOMμ λ λλ§ ν΄μ€λ€.
νλ‘ νΈμλ κ°λ°μκ° React λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ¬ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )μκ² μ 곡ν JavaScript νμΌλ€μ ES6 + JSX λ¬Έλ²μΌλ‘ μμ±νκ² λλ©΄, Babel λ±μ μ»΄νμΌλ¬κ° λͺ¨λ λΈλΌμ°μ μμ νΈν κ°λ₯ν λ¬Έλ²μΌλ‘ λ³νν΄μ€λ€.
λν Webpack λ±μ λͺ¨λ λ²λ€λ¬κ° HTML, CSS, JavaScript νμΌλ€μ ν¨μ¨μ μΈ λ°©μμΌλ‘ μ μ ν λ²λ€λ§νμ¬ μ€λΉν΄λλ€.
ν΄λΌμ΄μΈνΈκ° μμ²μ λ³΄λΌ λλ§λ€ νλ‘ νΈ μλ²λ 미리 μ€λΉν΄λ HTML, CSS, JavaScript νμΌλ€μ ν΄λΌμ΄μΈνΈμκ² μ 곡νλ€. κ·Έλ¬λ©΄ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )λ μ λ¬λ°μ JavaScriptλ₯Ό μ€νν΄ νμ΄μ§μ λ λλ§μ μμνλ€. μ¦, React λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νλ JavaScript μ½λλ λμ μΌλ‘ DOMμ λ λλ§ ν΄μ€λ€.
λΈλΌμ°μ μ μ 체 νλ¦
π SSR
SSR μ ν΅μ μΈ μΉμ¬μ΄νΈμμλ λΈλΌμ°μ μμλ νλ‘ νΈ μλ²λ‘ GET μμ²μ νκ³ νλ‘ νΈ μλ²μμ λ°±μλ μλ²λ‘ λ°μ΄ν° μμ²μ νμ¬ λ°±μλ μλ²λ λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°λ₯Ό λ°μμμ νλ‘ νΈμλ²λ‘ λ°μ΄ν°λ₯Ό 보λ΄μ£Όκ³ νλ‘ νΈ μλ²λ HTMLκ³Ό λ°μ΄ν°λ₯Ό ν©μ³μ λΈλΌμ°μ μκ² λ³΄λ΄μ€λ€.
λΈλΌμ°μ β νλ‘ νΈ μλ² β λ°±μλ μλ² β DB
λΈλΌμ°μ β νλ‘ νΈ μλ² β λ°±μλ μλ² β DB
π SPA
SPA μμλ νλ‘ νΈ μλ²μμ μ μ νμΌλ€μ λ¨Όμ λ°μ(HTML, CSS, JavaScript) νλ©΄μ κ·Έλ¦¬κ³ λ°μ΄ν°λ₯Ό λ°±μμ μλ²μμ λ°μμ€λλμ λ‘λ©λ°λ₯Ό νλ©΄μ νμν΄ μ£Όλλ‘ νλ€.
λΈλΌμ°μ β νλ‘ νΈ μλ²μμ μ μ νμΌλ€μ λ°μμ΄(HTML, CSS, JavaScript)
λΈλΌμ°μ β λ°±μλ μλ²(νλ‘ νΈ μλ²λ₯Ό κ±°μΉμ§ μκ³ λ°±μλ μλ²λ‘ λ°λ‘ λ°μ΄ν°λ₯Ό μμ²) β DB
λΈλΌμ°μ β νλ‘ νΈ μλ²μμ μ μ νμΌλ€μ λ°μμ΄(HTML, CSS, JavaScript)
λΈλΌμ°μ β λ°±μλ μλ²(νλ‘ νΈ μλ²λ₯Ό κ±°μΉμ§ μκ³ λ°±μλ μλ²λ‘ λ°λ‘ λ°μ΄ν°λ₯Ό μμ²) β DB
π νλ‘ νΈ μλ²(μΉ μλ²)
- λ€λ₯Έλ§λ‘ HTTP ServerλΌκ³ λ νλ€. μΉ λΈλΌμ°μ μ ννΈλλ‘μ μλ²μ μ 보λ₯Ό μ 곡νλ μννΈμ¨μ΄λΌκ³ ν μ μλ€.
- λνμ μΌλ‘ Nginx, Apacheκ° μλ€.
- μΉ μλ²λ μΈν°λ· λ€νΈμν¬ μμμ HTTP νλ‘ν μ½μ μ΄μ©ν΄ HTML, CSS, JavaScript, image/mediafileκ³Ό κ°μ μ μ μΈ μ 보λ€μ μΉ λΈλΌμ°μ μ μ μ‘νλ€.
- μνμΉ μννΈμ¨μ΄ μ¬λ¨μμ λ§λ μΉμλ²(web server)λ₯Ό μΌμ»«λλ€.
- 리λ μ€μμλ httpd λ‘ λͺ λͺ μ§μ΄μ Έ λ°°ν¬λλ€.
- μ μ μΈ λ°μ΄ν°λ€ (html, css μ΄λ―Έμ§, νμΌ λ±)μ λν ν΄λΌμ΄μΈνΈμ μμ²μ λ°μ΄ν°λ‘ λ§λ€μ΄μ μλ΅νλ€.
- 80 ν¬νΈλ₯Ό μ¬μ©
http νλ‘ν μ½ κΈ°λ°μΌλ‘ web client (browser) λ‘λΆν°μ μμ²μ μλΉμ€νλ κΈ°λ₯μ λ΄λΉνλ νλ‘κ·Έλ¨.
80λ² ν¬νΈλ‘ ν΄λΌμ΄μΈνΈ μμ²(POST,GET,DELETE)μ΄ μμλλ§ μλ΅νλ€.
μ μ μΈ λ°μ΄ν°μ λν μ²λ¦¬λ₯Ό λ΄λΉνλ€.
π μΉμλ²λ₯Ό μ΄ν΄νκΈ°μ κ°μ₯ νΈνλ μ ν¬λΈ μμ</h4>
https://www.youtube.com/watch?v=Zimhvf2B7Es