π (31) μΈλ€μΌν 리μ€νΈν SPAλ? SSR vs CSR μ°¨μ΄μ π SPA(Single Page Application)λ? κΈ°μ‘΄ μ΄ν리μΌμ΄μ μ νλ©΄ μ΄λ μ νλ©΄μ νμν HTMLμ μλ²λ‘λΆν° λ°μμ μ²μλΆν° λ€μ λ‘λ©νκΈ° λλ¬Έμ μλκ° λ리λ€. λ°λ©΄ SPAλ μ΅μ΄ ν λ² νμ΄μ§ μ 체λ₯Ό λ‘λ©ν ν μ΄νλΆν°λ μΌλΆ λ°μ΄ν°λ§ λ³κ²½νμ¬ νλ©΄μ ꡬμ±νκΈ° λλ¬Έμ μλκ° λΉ λ₯΄λ€. SPA νλ μμν¬λ‘λ React, Vue, Angular λ±μ΄ μλ€. π SSR(Server Side Rendering) vs CSR(Client Side Rendering) βͺ SSR β μλ² - λΈλΌμ°μ μκ² HTML μλ΅ β‘ λΈλΌμ°μ - λΈλΌμ°μ λ λλ§ -> νμ΄μ§ 보μ¬μ§ β’ λΈλΌμ°μ - JS λ€μ΄ β£ λΈλΌμ°μ - 리μ‘νΈ μ€ν β€ νμ΄μ§ μνΈμμ© κ°λ₯ βͺ CSR β μλ² - λΈλΌμ°μ μκ² μλ΅ β‘ λΈ.. [보μ] CORSλ? π CORS(Cross-Origin Resource Sharing)λ? CORSλ μΆκ°μ μΈ HTTP μμ² ν€λλ₯Ό μ¬μ©νμ¬ μλ‘ λ€λ₯Έ λλ©μΈμ μΉ λΈλΌμ°μ μ μλ²κ° 리μμ€ μμ²κ³Ό μλ΅μ μ£Όκ³ λ°μ μ μκ² νλ λ°©λ²μ λ§νλ€. π CORSλ μ νμν κΉ? μΉ λΈλΌμ°μ κ° λ€λ₯Έ λλ©μΈμ μλ²λ‘ 리μμ€ μμ²μ ν λ κ°μΈμ 보 μ μΆ, νΌμ± μ¬μ΄νΈμ κ°μ 보μμμ μνμ΄ μμ μ μκΈ° λλ¬Έμ νμ©ν μΉ λΈλΌμ°μ λ§ μλ²μ μμ²ν μ μλλ‘ νκΈ° μν΄ μ¬μ©νλ€. π CORSλ μ΄λ»κ² λμν κΉ? μΉ λΈλΌμ°μ μμλ μμ² ν€λμ CORS κ΄λ ¨ μ΅μ μ λ£μ΄μ£Όκ³ , μλ²μμλ μμ² ν€λμ ν΄λΉ μΉ λΈλΌμ°μ μ μμ²μ νμ©νλ€λ λ΄μ©μ λ£μ΄μ€λ€. π μ°Έκ³ μλ£ CORSμ΄ λμ€κ² λ λ°°κ²½ μ΄μΌκΈ° CORSλ 무μμΈκ°? π‘ κ°μ΄ 보면 μ’.. [React] DOM(λ)μ΄λ? Virtual DOM(κ°μ λ)μ΄λ? π DOM(λ)μ΄λ? 'Document Object Model'. HTML, XML λ¬Έμμ νλ‘κ·Έλλ° μΈν°νμ΄μ€μ΄λ€. λ¬Έμμ ꡬ쑰νλ ννμ μ 곡νλ©° νλ‘κ·Έλλ° μΈμ΄κ° DOM ꡬ쑰μ μ κ·Όν μ μλ λ°©λ²(API)μ μ 곡νμ¬ λ¬Έμ ꡬ쑰, μ€νμΌ, λ΄μ© λ±μ λ³κ²½ν μ μκ² λλλ€. π DOMμ μ§μ μ κ·Όν λμ λ¬Έμ μ DOMμ μ§μ μ κ·Όν κ²½μ° λ·°μ λ³νκ° μμΌλ©΄ λ€μ DOMμ λ³κ²½ν΄μΌ νκΈ° λλ¬Έμ λΈλΌμ°μ μ μ¦μ λ λλ§μ μ λ°νμ¬ ν¨μ¨μ±μ΄ λ¨μ΄μ§κ² λλ€. π Virtual DOM(κ°μ λ)μ΄λ? κ°μ DOMμ μ€μ DOMμ λ³νλ₯Ό μ΅μν μμΌμ£Όλ μν μ νλ€. λ·°μ λ³νκ° μμΌλ©΄, κ·Έ λ³νκ° μ€μ DOMμ μ μ©λκΈ° μ μ κ°μ DOMμ μ μ©μμΌ μ΅μ’ κ²°κ³Όλ§ μ€μ DOMμ μ λ¬νλ€. μλ₯Ό λ€μ΄ λ·°μ 20κ°μ.. λΌμ΄λΈλ¬λ¦¬(Library) vs νλ μμν¬(Framework) μ°¨μ΄μ λΌμ΄λΈλ¬λ¦¬κ° κ°κ° κ°λ³μ μΈ κΈ°λ₯μ νλ μ½λλΌκ³ νλ©΄, νλ μμν¬λ μ΄κ²λ€μ΄ μ°κ²°λμ΄ κΈ°μ΄μ μΈ ννλ₯Ό κ°μΆ μ½λ 'ν'μ΄λ€. λ λ€ λκ΅°κ°κ° μ§λμ μ½λλ₯Ό μ¬μ©νλ€λ μ μμ λΉμ·νλ€. λΌμ΄λΈλ¬λ¦¬λ λκ΅°κ°κ° μ§λμ μ½λλ₯Ό κ°μ Έλ€ μ°λ κ²μ΄κ³ , νλ μμν¬λ νλ μμν¬μμ μ 곡νλ κΈ°λ³Έ ν μμμ λ΄κ° μ½λλ₯Ό λ§λΆμ¬ μ°λ κ²μ΄λ€. λΌμ΄λΈλ¬λ¦¬ : λ΄κ° 컨νΈλ‘€νμ¬ μ½λ©νλ€. (λ΄κ° κ°) νλ μμν¬ : νλ μμν¬μ κ·μΉμ λ°λΌ μ½λ©νλ€. (νλ μμν¬κ° κ°) π μ°Έκ³ μλ£ λΌμ΄λΈλ¬λ¦¬? νλ μμν¬? μ°¨μ΄μ MVC μΉ νλ μμν¬κ° λκ°μ? [ν¨ν€μ§λ§€λμ ] package.jsonμ΄λ? π package.jsonμ΄λ? νλ‘μ νΈ μ 보λ₯Ό κ΄λ¦¬νλ νμΌμ΄λ€. μ΄λ κ³³μμλ λμΌν κ°λ°νκ²½μ ꡬμΆν μ μκ² ν΄μ€λ€. π dependencies vs devDependencies dependenciesλ ν¨ν€μ§μ λ°°ν¬ μ ν¬ν¨λ μμ‘΄μ± λͺ¨λμ μ§μ νλ€. devDependenciesλ ν¨ν€μ§μ κ°λ° μ μ¬μ©λ μμ‘΄μ± λͺ¨λμ μ§μ νλ€. π μ°Έκ³ μλ£ μ²μ μμνλ Node.js κ°λ° π‘ κ°μ΄ 보면 μ’μ Post [ν¨ν€μ§λ§€λμ ] npmμ΄λ? π npm(Node Package Manager)μ΄λ? λ§ κ·Έλλ‘ 'λ Έλ ν¨ν€μ§ 맀λμ 'λ‘, νΉμ κΈ°λ₯μ νλ μλ° μ€ν¬λ¦½νΈ ν¨ν€μ§κ° νμνλ©΄ npmμμ μ°Ύμ μ€μΉνλ©΄ λλ€. ν¨ν€μ§κ° λ€λ₯Έ ν¨ν€μ§λ₯Ό μ¬μ©ν μλ μλλ° devjindev.tistory.com [ν¨ν€μ§λ§€λμ ] npmμ΄λ? π npm(Node Package Manager)μ΄λ? λ§ κ·Έλλ‘ 'λ Έλ ν¨ν€μ§ 맀λμ 'λ‘, νΉμ κΈ°λ₯μ νλ μλ° μ€ν¬λ¦½νΈ ν¨ν€μ§κ° νμνλ©΄ npmμμ μ°Ύμ μ€μΉνλ©΄ λλ€. ν¨ν€μ§κ° λ€λ₯Έ ν¨ν€μ§λ₯Ό μ¬μ©ν μλ μλλ° μ΄λ₯Ό 'μμ‘΄ κ΄κ³'λΌκ³ νλ€. π npm vs yarn yarnμ νμ΄μ€λΆμμ λ§λ ν¨ν€μ§ 맀λμ μ΄λ€. npmμ μΌκ΄μ±, 보μ, λΉλμ μ±λ₯ λ±μ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ yarnμ λ§λ€μλ€. npmμ ν¨ν€μ§λ€μ΄ μ½λλ₯Ό μλμ μΌλ‘ μ¦μ μ€ννλ κ²μ νμ©ν λΏλ§ μλλΌ μμ‘΄μ±λ€λ μ¦μ μλμ μΌλ‘ μ€νλμ΄ νΈλ¦¬ν¨μ μ 곡νκΈ°λ νμ§λ§, 보μμ μνμ΄ μμ μ μλ€. μ΄μ λ€λ₯΄κ² yarnμ μ€μ§ yarn.lock νΉμ package.jsonλ‘ λΆν° μ€μΉλμ΄ yarn.lockμ λͺ¨λ μ₯μΉλ€μ΄ κ°μ ν¨.. νλ‘μΈμ€(Process) vs μ€λ λ(Thread) μ°¨μ΄μ νλ‘μΈμ€λ μμ ν λ 립μ μ΄κΈ° λλ¬Έμ μμ(μ½λ, λ°μ΄ν°, ν, μ€ν)μ λ€λ₯Έ νλ‘μΈμ€μ 곡μ νμ§ μλλ€. μ€λ λλ λ³λμ μ€ν νλ¦μ μ μ§νκΈ° μν΄ μ€νλ§ λ 립μ μΌλ‘ μ μ§νκ³ , κ·Έ μ΄μΈμ μμμ λ€λ₯Έ μ€λ λμ 곡μ νλ€. νλ‘μΈμ€λ μ΄μ체μ κ΄μ μμμ μ€ν νλ¦μ ꡬμ±νκ³ , μ€λ λλ νλ‘μΈμ€ λ΄μμμ μ€ν νλ¦μ ꡬμ±νλ€. ν¨μν νλ‘κ·Έλλ°μ΄λ? π ν¨μν νλ‘κ·Έλλ°(Fuction Programming) μ΄λ? μμ ν¨μλ₯Ό μ‘°ν©νμ¬ ν¨μμ κ³μ°μ ν΅ν΄ λ‘μ§μ ꡬμ±νλ νλ‘κ·Έλλ° λ°©λ²μ΄λ€. π μμν¨μλ? μΈλΆμμΈμ μν₯μ λ°μ§ μμ, κ°μ μ λ ₯μ νμ κ°μ μΆλ ₯μ λ°ννκΈ° λλ¬Έμ λΆμμ©μ΄ μλ€. π κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° vs ν¨μν νλ‘κ·Έλλ° κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ ν¨μλ μ΄λ»κ²(How) ν΄μΌ νλμ§λ₯Ό λνλ΄κ³ , νΉμ λμμ μννλ μν μ λ΄λΉνλ€. ν¨μν νλ‘κ·Έλλ°μμ ν¨μλ 무μμ(What) ν΄μΌ νλμ§λ₯Ό λνλ΄κ³ , κ³μ°μ νλ μν μ λ΄λΉνλ€. (π©) ν¨μν νλ‘κ·Έλλ°μ μ¬μ©ν΄ λ³Έ μ μ΄ μμ΄μ κΈμ μ½μ΄λ μ΄ν΄κ° μ μ λλλ° μ΄ λμμμ΄ λ§μ΄ λμ λλ€ π www.youtube.com/watch?v=jVG5jvOzu9Y&t=2s π μ°Έ.. μ΄μ 1 2 3 4 λ€μ