Home > Backend > Post > πŸ“[Post] μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ κ°œλ…(1)

πŸ“[Post] μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ κ°œλ…(1)
Post Backend

πŸ™‹β€β™‚οΈ Preview

이번 ν¬μŠ€νŠΈμ—μ„œλŠ” 컴퓨터 κ³Όν•™μ—μ„œ λ§ν•˜λŠ” μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈμ˜ κ°œλ…μ„ 크게 μ„Έ κ°€μ§€λ‘œ λ‚˜λˆ  μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

  • 이것은 이해λ₯Ό 돕기 μœ„ν•œ λΆ„λ₯˜λ‘œ, μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈλΌλŠ” κ°œλ…μ— μ΅μˆ™ν•΄μ§€κ³  λ‚œ 후에 λ‹€μ‹œ 보면 μ™œ μ΄λ ‡κ²Œ λ‚˜λˆ„μ—ˆλŠ”μ§€ 이해가 될 것 μž…λ‹ˆλ‹€.

1️⃣ λ„€νŠΈμ›Œν¬μ—μ„œμ˜ μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ.

  • μ„œλ²„(Server) : β€œμ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μͺ½β€
  • ν΄λΌμ΄μ–ΈνŠΈ(Client) : β€œμ„œλΉ„μŠ€λ₯Ό μ œκ³΅λ°›λŠ” μͺ½β€

  • κ·Έλ¦Όμ—μ„œ μ„œλ²„λŠ” μ‹€μ œ μ‘΄μž¬ν•˜λŠ” 물리적인 κ³ μ„±λŠ₯ 컴퓨터이고, ν΄λΌμ΄μ–ΈνŠΈλŠ” λ°μŠ€ν¬ν†±μ΄λ‚˜ λ…ΈνŠΈλΆ, 슀마트폰 λ“±κ³Ό 같은 μ‚¬μš©μžλ“€μ˜ 단말기λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
    • 즉, 물리적 μž₯μΉ˜μ™€ 또 λ‹€λ₯Έ 물리적 μž₯치 μ‚¬μ΄μ˜ 관계λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
      • μ΄λ ‡κ²Œ 물리적인 μž₯치 간에 μ„œλ‘œ 톡신이 이루어지기 μœ„ν•΄μ„œλŠ” β€œν†΅μ‹ μ„ μ‹œμž‘ν•˜λŠ” μͺ½β€μ΄ β€œμƒλŒ€λ°©μ˜ λ„€νŠΈμ›Œν¬ μ£Όμ†ŒμΈ IP μ£Όμ†Œλ₯Ό μ•Œκ³  μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.”
        • β€œν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ˜ IPμ£Όμ†Œλ₯Ό μ•Œκ³ μžˆμ–΄μ•Ό μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈλ‘œμ„œμ˜ 관계λ₯Ό 맺을 수 μžˆμŠ΅λ‹ˆλ‹€.”

1️⃣ νŠΈλž˜ν”½(Traffic) 처리 방법.

μš°λ¦¬κ°€ μ»΄ν“¨ν„°λ‚˜ 슀마트폰으둜 μ΄μš©ν•˜λŠ” μ„œλΉ„μŠ€λ“€μ€ 수백만 λͺ… μ΄μƒμ˜ μ‚¬μš©μžκ°€ λ™μ‹œμ— μ‚¬μš©ν•˜κ³  μžˆλŠ” κ²½μš°κ°€ λŒ€λΆ€λΆ„μž…λ‹ˆλ‹€.
κ·Έλ ‡λ‹€λ©΄ μ΄λŸ¬ν•œ μ„œλΉ„μŠ€λ₯Ό μš΄μ˜ν•˜λŠ” μ„œλ²„κ°€ λͺ¨λ‘ κ³ μ„±λŠ₯μΌκΉŒμš”? πŸ€”

λ‹Ήμ—°νžˆ 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€ ❌

ν•œκΊΌλ²ˆμ— 수백만 λͺ… μ΄μƒμ˜ μ‚¬μš©μžλ‘œλΆ€ν„° μƒκΈ°λŠ” β€œνŠΈλž˜ν”½(Traffic)”을 μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ 방법은 μ—¬λŸ¬κ°€μ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ„œλŠ” κ°€μž₯ λ²”μš©μ μ΄κ³  직관적인 방법 두 가지, β€œλ‘œλ“œ λ°ΈλŸ°μ‹±β€ κ³Ό β€œμΊμ‹œβ€μ— λŒ€ν•΄ κ°„λ‹¨νžˆ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

1️⃣ λ‘œλ“œ λ°ΈλŸ°μ‹±(Load Balancing).

  • β€œλ‘œλ“œ λ°ΈλŸ°μ‹±(Load Balancing)” : λΆ€ν•˜ λΆ„μ‚°.
    • 즉, μ„œλ²„μ— κ°€ν•΄μ§€λŠ” λΆ€ν•˜(Load)λ₯Ό λΆ„μ‚°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
      • μ‚¬μš©μžλ“€μ˜ νŠΈλž˜ν”½μ„ μ—¬λŸ¬ μ„œλ²„κ°€ λ‚˜λˆ  받도둝 κ΅¬μ„±ν•˜λ©°, 일반적으둜 λ„€νŠΈμ›Œν¬ μž₯비인 β€œμŠ€μœ„μΉ˜(Switch)” λ₯Ό ν• λ‹Ήν•΄ β€œλ‘œλ“œ λ°ΈλŸ°μ‹±β€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
        • μŠ€μœ„μΉ˜μ—μ„œ μ–΄λ–€ μ„œλ²„λ‘œ λ‘œλ“œ λ°ΈλŸ°μ‹±μ΄ λ˜λ„λ‘ ν• μ§€λŠ” μ†Œν”„νŠΈμ›¨μ–΄μ μœΌλ‘œ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • β€œλ‘œλ“œ λ°ΈλŸ°μ‹±β€ 은 β€œμŠ€μœ„μΉ˜β€ λΌλŠ” μž₯λΉ„κ°€ β€œν΄λΌμ΄μ–ΈνŠΈμ˜ νŠΈλž˜ν”½μ„ λ¨Όμ € 받아” μ„œ μ—¬λŸ¬ λŒ€μ˜ μ„œλ²„λ‘œ β€œλΆ„μ‚°β€ ν•΄ μ£ΌλŠ” λ°©μ‹μž…λ‹ˆλ‹€.
    • μ΄λ ‡κ²Œ ν•˜λ©΄ λΆ€ν•˜κ°€ λΆ„μ‚°λ˜λŠ” 효과 외에도 μŠ€μœ„μΉ˜ 뒀에 μ—°κ²°λœ μ„œλ²„λ“€μ„ ν•„μš”μ— 따라 μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œν•  수 μžˆμ–΄ νŽΈλ¦¬ν•©λ‹ˆλ‹€.

2️⃣ μΊμ‹œ(Cache).

  • β€œμΊμ‹œ(Cache)” : λΉ„μš©μ΄ 큰 μž‘μ—…μ˜ κ²°κ³Όλ₯Ό μ–΄λ”˜κ°€μ— μ €μž₯ν•˜μ—¬ λΉ„μš©μ΄ μž‘μ€ μž‘μ—…μœΌλ‘œ λ™μΌν•œ 효과λ₯Ό λ‚΄λŠ” 것.
    • μΊμ‹œλ₯Ό μ΄μš©ν•˜λ©΄ 맀번 μš”μ²­μ΄ λ“€μ–΄μ˜¬ λ•Œλ§ˆλ‹€ λΉ„μš©μ΄ 큰 μž‘μ—…μ„ λ‹€μ‹œ μˆ˜ν–‰ν•  ν•„μš” 없이 미리 μ €μž₯된 결과둜 μ‘λ‹΅ν•˜λ©΄ λ©λ‹ˆλ‹€.
      • λ¬Όλ‘  μ΄λ ‡κ²Œ ν•˜λ©΄ κ°€μž₯ μ΅œμ‹ μ˜ λ°μ΄ν„°λŠ” 아닐 수 μžˆμ§€λ§Œ, μ„±λŠ₯을 κ·ΉλŒ€ν™”μ‹œν‚€κ³ μž ν•˜λŠ” μΊμ‹œμ˜ λͺ©μ μ„ 생각해 λ°μ΄ν„°μ˜ μ‹€μ‹œκ°„μ„±μ„ 쑰금 포기해도 λ˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.

✏️ Example

μŒμ› μ„œλΉ„μŠ€

λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 μˆ˜λ§Žμ€ μŒμ›μ˜ λ‹€μš΄λ‘œλ“œ 수, 슀트리밍 수, μΆ”μ²œ 수 λ“±μœΌλ‘œ 인기 점수λ₯Ό κ³„μ‚°ν•˜λ € 100갸의 곑을 μ˜€λ¦„μ°¨μˆœ μˆœμœ„λ‘œ μ œκ³΅ν•©λ‹ˆλ‹€.

λ§Œμ•½ μ‚¬μš©μžκ°€ ν•œ 번 μŒμ›μ„ μ‘°νšŒν•  λ•Œλ§ˆλ‹€ λͺ¨λ“  μŒμ›μ˜ 인기 점수λ₯Ό 계산해 μˆœμœ„λ₯Ό 맀긴닀면 μ•„λ§ˆ μ‚¬μš©μžκ°€ 수백 λͺ…λ§Œ λ˜μ–΄λ„ μ„œλ²„ λΆ€ν•˜λ‘œ 응닡 μ‹œκ°„μ΄ 맀우 느렀질 κ²ƒμž…λ‹ˆλ‹€.

μ΄λ ‡κ²Œ μˆ˜λ§Žμ€ μŒμ›μ˜ 인기 점수λ₯Ό 맀번 κ³„μ‚°ν•˜μ—¬ μˆœμœ„λ₯Ό λ§€κΈ°λŠ” μž‘μ—…μ΄ λ°”λ‘œ β€˜λΉ„μš©μ΄ 큰 μž‘μ—…β€™ μž…λ‹ˆλ‹€.

λ§€μ‹œ μ •κ°λ§ˆλ‹€ TOP 100을 κ³„μ‚°ν•œ κ²°κ³Όλ₯Ό μ €μž₯ν–ˆλ‹€κ°€ μ‚¬μš©μžμ˜ μš”μ²­μ΄ 듀어왔을 λ•Œ 응닡해주면 β€˜λΉ„μš©μ΄ μž‘μ€ μž‘μ—…β€™μœΌλ‘œ λŒ€μ²΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš©μžλŠ” 16μ‹œ 30뢄에 16μ‹œμ— μ €μž₯된 TOP 100 κ²°κ³Όλ‘œλ„ 큰 λΆˆνŽΈν•¨μ„ λŠλΌμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ΄λ ‡κ²Œ μ‚¬μš©μžκ°€ μΊμ‹œλœ 과거의 데이터λ₯Ό 보더라도 μ„œλΉ„μŠ€ μ‹œμš©μ— 지μž₯이 μ—†λ‹€λ©΄ μΊμ‹œ μ‚¬μš©μ„ μΆ©λΆ„νžˆ κ³ λ €ν•  λ§Œν•©λ‹ˆλ‹€.

  • β€œμΊμ‹œβ€ λŠ” λ‹€μ–‘ν•œ μƒν™©μ—μ„œ λΉ„μŠ·ν•œ 뜻으둜 μ‚¬μš©λ˜μ§€λ§Œ, κ³΅ν†΅μ μœΌλ‘œ, β€˜λΉ„μš©μ΄ 큰 μž‘μ—…μ„ λΉ„μš©μ΄ μž‘μ€ μž‘μ—…μœΌλ‘œ λŒ€μ‹ ν•˜λŠ” 것’이라고 정리할 수 μžˆμŠ΅λ‹ˆλ‹€.