MapleStory Finger Point

βšͺ μš©μ–΄ 정리

SPA vs MPA | SSR vs CSR

HYEJU01 2025. 1. 3. 19:19

 

SPA 와 MPA λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ ꡬ쑰와 λ™μž‘ 방식에 κ΅¬λΆ„λ˜λŠ” νŒ¨ν„΄μ΄λ‹€.

μ–΄λ–»κ²Œ λ™μž‘ν•˜κ³  μ–΄λ–»κ²Œ νŽ˜μ΄μ§€λ₯Ό λžœλ”λ§ν•˜λŠ” 지가 쀑점이닀.

 

 

 

MPA (Multi-Page Application)


μ •μ˜:
MPAλŠ” λ‹€μ€‘ νŽ˜μ΄μ§€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ˜λ―Έν•˜λ©°, 각 νŽ˜μ΄μ§€λ§ˆλ‹€ κ°œλ³„μ μΈ HTML 파일이 λ‘œλ“œλ˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€. 일반적으둜 μ„œλ²„μ—μ„œ 각 νŽ˜μ΄μ§€λ₯Ό λ Œλ”λ§ν•˜κ³ , 각 URL은 ν•˜λ‚˜μ˜ κ³ μœ ν•œ νŽ˜μ΄μ§€λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.


νŠΉμ§•:

  • νŽ˜μ΄μ§€ μ „ν™˜: μ‚¬μš©μžκ°€ λ‹€λ₯Έ νŽ˜μ΄μ§€λ‘œ 이동할 λ•Œλ§ˆλ‹€, μƒˆλ‘œμš΄ HTML νŽ˜μ΄μ§€λ₯Ό μ„œλ²„μ—μ„œ λ‘œλ“œν•˜κ²Œ λ©λ‹ˆλ‹€.
  • μ„œλ²„ λ Œλ”λ§: μš”μ²­μ΄ μžˆμ„ λ•Œλ§ˆλ‹€ μ„œλ²„μ—μ„œ HTML을 λ Œλ”λ§ν•˜κ³ , 이λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ— μ „λ‹¬ν•©λ‹ˆλ‹€.
  • 동적 νŽ˜μ΄μ§€: ν΄λΌμ΄μ–ΈνŠΈκ°€ ν•„μš”ν•œ 데이터λ₯Ό μš”μ²­ν•˜λ©΄ μ„œλ²„κ°€ 이λ₯Ό μ²˜λ¦¬ν•˜μ—¬ μƒˆλ‘œμš΄ νŽ˜μ΄μ§€λ₯Ό λ Œλ”λ§ν•©λ‹ˆλ‹€.
μž₯점:

  • SEO μ΅œμ ν™”: 각 νŽ˜μ΄μ§€λŠ” λ³„λ„μ˜ HTML 파일둜 μ‘΄μž¬ν•˜λ―€λ‘œ, 검색 엔진 μ΅œμ ν™”(SEO)κ°€ μš©μ΄ν•©λ‹ˆλ‹€.
  • κ°„λ‹¨ν•œ ꡬ쑰: 각 νŽ˜μ΄μ§€κ°€ 독립적이고, μ„œλ²„μ—μ„œ λ Œλ”λ§ν•˜κΈ° λ•Œλ¬Έμ— λ³΅μž‘ν•œ ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ μ²˜λ¦¬κ°€ ν•„μš” μ—†μŠ΅λ‹ˆλ‹€.
단점:

  • 느린 λ°˜μ‘μ†λ„: νŽ˜μ΄μ§€ κ°„ 이동 μ‹œ 맀번 전체 νŽ˜μ΄μ§€λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•˜λ―€λ‘œ, μ‚¬μš©μž κ²½ν—˜μ΄ λ–¨μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ„œλ²„ λΆ€ν•˜: 각 νŽ˜μ΄μ§€ μš”μ²­λ§ˆλ‹€ μ„œλ²„μ—μ„œ HTML을 생성해야 ν•˜λ―€λ‘œ, μ„œλ²„ λΆ€ν•˜κ°€ 클 수 μžˆμŠ΅λ‹ˆλ‹€.
SPA (Single Page Application)


μ •μ˜:
SPAλŠ” λ‹¨μΌ νŽ˜μ΄μ§€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ‚¬μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ΄ λ°œμƒν•  λ•Œλ§ˆλ‹€ νŽ˜μ΄μ§€ 전체λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•˜μ§€ μ•Šκ³ , ν•˜λ‚˜μ˜ HTML νŽ˜μ΄μ§€λ‘œ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ™μž‘ν•©λ‹ˆλ‹€. 이 방식은 주둜 JavaScript, React, Angular, Vue.js와 같은 ν”„λ ˆμž„μ›Œν¬λ₯Ό ν™œμš©ν•˜μ—¬ κ΅¬ν˜„λ©λ‹ˆλ‹€.


νŠΉμ§•:

  • λΉ λ₯Έ μ‚¬μš©μž κ²½ν—˜ (UX): νŽ˜μ΄μ§€κ°€ μƒˆλ‘œκ³ μΉ¨λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, μ‚¬μš©μžκ°€ μ΄λ™ν•˜λŠ” λ™μ•ˆ λΉ λ₯΄κ³  λΆ€λ“œλŸ¬μš΄ κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  • μ„œλ²„μ™€μ˜ μ΅œμ†Œν•œμ˜ 톡신: ν•„μš”ν•œ λ°μ΄ν„°λ§Œ μ„œλ²„μ—μ„œ λ°›μ•„μ™€μ„œ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ™μ μœΌλ‘œ λ Œλ”λ§ν•©λ‹ˆλ‹€. 이둜 인해 μ„œλ²„ λΆ€ν•˜κ°€ μ€„μ–΄λ“­λ‹ˆλ‹€.
  • 초기 λ‘œλ”©: 첫 번째 νŽ˜μ΄μ§€ λ‘œλ”© μ‹œ, λ§Žμ€ μžμ› (HTML, CSS, JavaScript)을 ν•œ λ²ˆμ— 뢈러였기 λ•Œλ¬Έμ—, 초기 λ‘œλ”© μ‹œκ°„μ΄ κΈΈ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λΈŒλΌμš°μ € νžˆμŠ€ν† λ¦¬ 관리: μ—¬λŸ¬ νŽ˜μ΄μ§€μ²˜λŸΌ λ³΄μ΄μ§€λ§Œ μ‹€μ œλ‘œλŠ” URL을 μ‘°μž‘ν•˜μ—¬ '가상 νŽ˜μ΄μ§€'λ₯Ό λ§Œλ“­λ‹ˆλ‹€. λΈŒλΌμš°μ €μ˜ λ’€λ‘œ κ°€κΈ° λ²„νŠΌμ΄λ‚˜ URL을 ν™œμš©ν•œ λ„€λΉ„κ²Œμ΄μ…˜λ„ κ°€λŠ₯ν•©λ‹ˆλ‹€.
μž₯점:

  • λΉ λ₯Έ μΈν„°νŽ˜μ΄μŠ€: νŽ˜μ΄μ§€ μƒˆλ‘œκ³ μΉ¨μ΄ μ—†μœΌλ―€λ‘œ, λ°˜μ‘ 속도가 λΉ λ₯΄κ³  μ‚¬μš©μž κ²½ν—˜μ΄ μš°μˆ˜ν•©λ‹ˆλ‹€.
  • λ„€νŠΈμ›Œν¬ μš”μ²­ μ΅œμ ν™”: ν•„μš”ν•œ λ°μ΄ν„°λ§Œ μ„œλ²„μ—μ„œ λ°›μ•„μ˜€λ―€λ‘œ, 데이터 μ „μ†‘λŸ‰μ΄ 적고 νš¨μœ¨μ μž…λ‹ˆλ‹€.
단점:

  • 초기 λ‘œλ”©μ΄ κΈΈμ–΄μ§ˆ 수 있음: 첫 νŽ˜μ΄μ§€ λ‘œλ”© μ‹œ λ§Žμ€ λ¦¬μ†ŒμŠ€λ₯Ό 뢈러였기 λ•Œλ¬Έμ— 초기 λ‘œλ”© μ‹œκ°„μ΄ κΈΈμ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • SEO 문제: μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ νŽ˜μ΄μ§€ λ‚΄μš©μ„ λ Œλ”λ§ν•˜κΈ° λ•Œλ¬Έμ—, 검색 엔진 μ΅œμ ν™”(SEO)κ°€ μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§(SSR)을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

 


 

SSA 와 CSR 은 웹이 "μ–΄λ””μ—μ„œ λ Œλ”λ§ λ˜λŠ”μ§€" κ°€ 쀑점이닀

ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ Œλ”λ§ λ˜λŠ”μ§€, μ„œλ²„μ—μ„œ λ Œλ”λ§ λ˜λŠ”μ§€μ˜ 차이이닀.

SSA (Server Side Application)

μ •μ˜:
SSAλŠ” μ„œλ²„ μ‚¬μ΄λ“œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ˜λ―Έν•˜λ©°, λŒ€λΆ€λΆ„μ˜ 둜직이 μ„œλ²„μ—μ„œ 처리되고, ν΄λΌμ΄μ–ΈνŠΈλŠ” 단지 κ²°κ³Όλ₯Ό ν‘œμ‹œν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. νŽ˜μ΄μ§€ μš”μ²­ μ‹œ, μ„œλ²„μ—μ„œ λͺ¨λ“  HTML을 μƒμ„±ν•˜κ³  이λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€. 일반적으둜 전톡적인 MPA와 μœ μ‚¬ν•©λ‹ˆλ‹€.

νŠΉμ§•:
  • μ„œλ²„ λ Œλ”λ§: ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„μ—μ„œ μƒμ„±ν•œ HTML을 λ°›μ•„μ™€μ„œ ν‘œμ‹œν•©λ‹ˆλ‹€. μ„œλ²„μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜κ³ , νŽ˜μ΄μ§€λ₯Ό λ Œλ”λ§ν•©λ‹ˆλ‹€.
  • 쀑앙 집쀑식 처리: λͺ¨λ“  데이터 μ²˜λ¦¬μ™€ 둜직이 μ„œλ²„μ—μ„œ 이루어지며, ν΄λΌμ΄μ–ΈνŠΈλŠ” κ·Έ κ²°κ³Όλ₯Ό ν‘œμ‹œν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
μž₯점:
  • λ‹¨μˆœν•œ ꡬ쑰: ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ‘œμ§μ„ μ²˜λ¦¬ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ, ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ μ½”λ“œκ°€ λ‹¨μˆœν•΄μ§‘λ‹ˆλ‹€.
  • λ³΄μ•ˆ: λͺ¨λ“  둜직이 μ„œλ²„μ—μ„œ μ²˜λ¦¬λ˜λ―€λ‘œ, λ³΄μ•ˆ μΈ‘λ©΄μ—μ„œ μœ λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
단점:
  • μ„œλ²„ λΆ€ν•˜: μ„œλ²„μ—μ„œ λͺ¨λ“  μš”μ²­μ„ μ²˜λ¦¬ν•΄μ•Ό ν•˜λ―€λ‘œ, μ„œλ²„μ˜ λΆ€ν•˜κ°€ 클 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 느린 λ°˜μ‘μ†λ„: νŽ˜μ΄μ§€λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•΄μ•Ό ν•˜λ―€λ‘œ, μ‚¬μš©μž κ²½ν—˜μ΄ λ–¨μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

CSR (Client Side Rendering)

μ •μ˜:
CSR은 ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ„ μ˜λ―Έν•˜λ©°, νŽ˜μ΄μ§€κ°€ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ JavaScriptλ₯Ό μ‚¬μš©ν•˜μ—¬ λ Œλ”λ§λ˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. HTMLκ³Ό JavaScript μ½”λ“œκ°€ μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ μ „λ‹¬λ˜λ©΄, ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ JavaScriptκ°€ μ‹€ν–‰λ˜μ–΄ νŽ˜μ΄μ§€λ₯Ό λ™μ μœΌλ‘œ λ Œλ”λ§ν•©λ‹ˆλ‹€. React, Angular, Vue.js와 같은 ν”„λ ˆμž„μ›Œν¬κ°€ λŒ€ν‘œμ μž…λ‹ˆλ‹€.

νŠΉμ§•:
  • ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ Œλ”λ§: ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ JavaScriptκ°€ νŽ˜μ΄μ§€λ₯Ό λ™μ μœΌλ‘œ λ Œλ”λ§ν•©λ‹ˆλ‹€. μ„œλ²„λŠ” λ°μ΄ν„°λ§Œ μ œκ³΅ν•˜κ³ , μ‹€μ œ νŽ˜μ΄μ§€ 생성은 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.
  • λΉ λ₯Έ μ‚¬μš©μž κ²½ν—˜: νŽ˜μ΄μ§€κ°€ μƒˆλ‘œκ³ μΉ¨λ˜μ§€ μ•ŠμœΌλ―€λ‘œ, μ‚¬μš©μžλŠ” λΉ λ₯Έ λ°˜μ‘μ†λ„λ₯Ό κ²½ν—˜ν•©λ‹ˆλ‹€.
  • λΌμš°νŒ… 처리: URL에 따라 νŽ˜μ΄μ§€λ₯Ό λ™μ μœΌλ‘œ λ Œλ”λ§ν•˜λ©°, λΈŒλΌμš°μ € λ‚΄λΉ„κ²Œμ΄μ…˜μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
μž₯점:
  • λΉ λ₯Έ λ°˜μ‘ 속도: νŽ˜μ΄μ§€κ°€ μƒˆλ‘œκ³ μΉ¨λ˜μ§€ μ•ŠμœΌλ―€λ‘œ μ‚¬μš©μž κ²½ν—˜μ΄ λΉ λ¦…λ‹ˆλ‹€.
  • μ„œλ²„ λΆ€ν•˜ κ°μ†Œ: μ„œλ²„λŠ” λ°μ΄ν„°λ§Œ μ œκ³΅ν•˜κ³ , μ‹€μ œ λ Œλ”λ§μ€ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ²˜λ¦¬ν•˜λ―€λ‘œ μ„œλ²„μ˜ λΆ€ν•˜κ°€ μ μŠ΅λ‹ˆλ‹€.
단점:
  • 초기 λ‘œλ”© μ‹œκ°„: ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ JavaScriptλ₯Ό μ²˜λ¦¬ν•΄μ•Ό ν•˜λ―€λ‘œ, 초기 λ‘œλ”©μ΄ κΈΈμ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • SEO 문제: JavaScript둜 λ Œλ”λ§λ˜κΈ° λ•Œλ¬Έμ—, 검색 엔진 μ΅œμ ν™”(SEO)μ—μ„œ λΆˆλ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§(SSR)을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

https://hanamon.kr/spa-mpa-ssr-csr-%EC%9E%A5%EB%8B%A8%EC%A0%90-%EB%9C%BB%EC%A0%95%EB%A6%AC/