λͺ©μ°¨
λ°μν

1λ¨κ³. λ¨μΌ μλ²
- μΉ μ±, λ°μ΄ν°λ² μ΄μ€, μΊμ λ± μ λΆ λͺ¨λ μλ² ν λμ ꡬμΆνλ€.
μ¬μ©μ μμ² νλ¦
- μ¬μ©μλ λλ©μΈ μ΄λ¦μ μ΄μ©ν΄(www.naver.com) μΉμ¬μ΄νΈμ μ μνλ€.
- μ΄ μ μμ μν΄μλ DNSμ μ§μν΄ λλ©μΈ μ΄λ¦μ IP μ£Όμλ‘ λ³ννλ κ³Όμ μ΄ νμνλ€. (λ³΄ν΅ thired party μ¬μ©)
- DNS μ§μ κ²°κ³Όλ‘ IP μ£Όμκ° λ°νλλ€.
- ν΄λΉ IPμ£Όμλ‘ HTTP μμ²μ΄ μ λ¬ λλ€.
- μμ²μ λ°μ μΉ μλ²λ HTML νμ΄μ§λ JSON ννμ μλ΅μ λ°ννλ€.
2λ¨κ³. λ°μ΄ν°λ² μ΄μ€ μλ² λΆλ¦¬
- μΉ κ³μΈ΅κ³Ό λ°μ΄ν° κ³μΈ΅μΌλ‘ μλ²λ₯Ό λΆλ¦¬νλ€.
- κ°κ°μ λ 립μ μΌλ‘ νμ₯ν΄ λκ° μ μκ² λλ€.
- μ΄λ€ λ°μ΄ν° λ² μ΄μ€λ₯Ό μ¬μ©ν κ²μΈκ°
- RDBMS vs NoSQL
- λ€μκ³Ό κ°μ κ²½μ° λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€κ° λ°λμ§ν μ νμΌ μ μλ€
- μμ£Ό λ¦μ μλ΅ μ§μ°μκ°μ΄ μꡬλ¨
- λ€λ£¨λ λ°μ΄ν°κ° λΉμ ν λ°μ΄ν°μ
- λ°μ΄ν°λ₯Ό μ§λ ¬ννκ±°λ μμ§λ ¬ν ν μ μκΈ°λ§ νλ©΄ λ¨
- μμ£Ό λ§μ μμ λ°μ΄ν°λ₯Ό μ μ₯ν νμκ° μμ
- λ€μκ³Ό κ°μ κ²½μ° λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€κ° λ°λμ§ν μ νμΌ μ μλ€
- RDBMS vs NoSQL
3λ¨κ³. μμ§μ κ·λͺ¨ νμ₯ vs μνμ κ·λͺ¨ νμ₯
- μμ§μ : μλ²μ κ³ μ¬μ μμμ μΆκ°νλ νμ.
- μλ²λ‘ μ μ λλ νΈλν½μ μμ΄ μ μλλ μ’μ μ νμ΄ λ μ μλ€. λ¨μνκ² ν΄κ²° κ°λ₯.
- νμ§λ§ λͺ κ°μ§ λ¨μ μ΄ μλ€
- νκ³κ° μμ (무νμ CPU, λ©λͺ¨λ¦¬ μ¦μ€ λΆκ°)
- μλ볡ꡬ λ°©μμ΄λ λ€μ€ν λ°©μ μμ. μλ²μ μ₯μ κ° λ°μνλ©΄ μμ€ν μμ μ€λ¨
- μνμ : μλ² μ¦μ€
- λ‘λλ°Έλ°μ : μΉ μλ²λ€μκ² νΈλν½ λΆνλ₯Ό λΆμ°νλ μν
- μ¬μ©μλ λ‘λλ°Έλ°μμ κ³΅κ° IPλ‘ μ μνλ€. (μλ²κ° ν΅μ μ μ¬μ€ IP μ£Όμλ‘ μ§ν)
- μ¬μ€ IPμ£Όμλ λ€νΈμν¬μ μν μλ² μ¬μ΄μ ν΅μ μμλ§ μ°μΌ μ μμ. 곡κ°μ μΌλ‘ μ μ λΆκ°
- μ¬μ©μλ λ‘λλ°Έλ°μμ κ³΅κ° IPλ‘ μ μνλ€. (μλ²κ° ν΅μ μ μ¬μ€ IP μ£Όμλ‘ μ§ν)
- failover κ°λ₯ν΄μ Έ μλ²μ κ°μ©μ± ν₯μλ¨
- μλ² 1 λ€μ΄μ μλ² 2κ° λͺ¨λ νΈλν½ λ°μΌλ©΄ λ¨
- λ°μ΄ν° λ² μ΄μ€ λ€μ€ν
- master - slave ꡬ쑰
- master : μλ³Έ μ μ₯. μ°κΈ° μ°μ° μ§μ
- slave : μ¬λ³Έ μ μ₯. μ½κΈ° μ°μ°λ§ μ§μ. masterμμ μ£ΌκΈ°μ μΌλ‘ λ°μ΄ν° κ°μ Έμμ μ ν©μ± λ§μΆ€
- μ₯μ
- λ³λ ¬λ‘ μ²λ¦¬λ μ μλ μ§μμ μκ° λμ΄λ μ±λ₯ μ’μμ§
- μμ μ± λμμ§ : μλ² μΌλΆκ° νκ΄΄λμ΄λ λ°μ΄ν° λ³΄μ‘΄λ¨ (λ°μ΄ν°λ₯Ό μ§μμ μΌλ‘ λ¨μ΄μ§ μ¬λ¬ μ₯μμ λ€μ€ν νλ€λ κ°μ )
- κ°μ©μ± λμμ§ : νλμ λ°μ΄ν° λ² μ΄μ€ μλ²μ μ₯μ κ° λ°μν΄λ λ€λ₯Έ μλ² μ¬μ© κ°λ₯
- λ°μ΄ν°λ² μ΄μ€ μλ² μ€ νλκ° λ€μ΄λλ€λ©΄?
- λΆ μλ² λ€μ΄
- λΆ μλ²κ° ν λ λΏμΈ κ²½μ° : μ½κΈ° μ°μ°μ΄ μ£Ό μλ²λ‘ μ λ¬λ¨. μλ‘μ΄ λΆ μλ² μμ± ν΄ λ체 κ°λ₯
- λΆ μλ²κ° μ¬λ¬ λ μΌ κ²½μ° : λλ¨Έμ§ λΆ μλ²λ‘ μ½κΈ° μ°μ° λΆμ°. μλ‘μ΄ λΆ μλ² μμ± ν΄ λ체 κ°λ₯
- μ£Ό μλ² λ€μ΄
- λΆ μλ²κ° ν λ λΏμΈ κ²½μ° : λΆ μλ²κ° μλ‘μ΄ μ£Όμλ²κ° λλ€. μλ‘μ΄ λΆ μλ² μμ± ν΄ λ체 κ°λ₯
- λΆ μλ²μ 보κ΄λ λ°μ΄ν°κ° μ΅μ μνκ° μλ κ²½μ°λ₯Ό κ³ λ €ν΄ λ³΅κ΅¬ μ€ν¬λ¦½νΈλ₯Ό λλ €μ μλ λ°μ΄ν° μΆκ°ν΄μΌ νλ€. μ°Έκ³ λ¬Έν [4][5] μ°Έκ³
- λΆ μλ²κ° ν λ λΏμΈ κ²½μ° : λΆ μλ²κ° μλ‘μ΄ μ£Όμλ²κ° λλ€. μλ‘μ΄ λΆ μλ² μμ± ν΄ λ체 κ°λ₯
- λΆ μλ² λ€μ΄
- master - slave ꡬ쑰
- λ‘λλ°Έλ°μ : μΉ μλ²λ€μκ² νΈλν½ λΆνλ₯Ό λΆμ°νλ μν
μ¬μ©μ μμ² νλ¦
- μ¬μ©μλ λλ©μΈ μ΄λ¦μ μ΄μ©ν΄(www.naver.com) μΉμ¬μ΄νΈμ μ μνλ€.
- μ΄ μ μμ μν΄μλ DNSμ μ§μν΄ λλ©μΈ μ΄λ¦μ IP μ£Όμλ‘ λ³ννλ κ³Όμ μ΄ νμνλ€. (λ³΄ν΅ thired party μ¬μ©)
- DNS μ§μ κ²°κ³Όλ‘ λ‘λ λ°Έλ°μμ κ³΅κ° IP μ£Όμκ° λ°νλλ€.
- HTTP μμ²μ μλ²1μ΄λ μλ²2λ‘ μ λ¬λλ€.
- μΉ μλ²λ μ¬μ©μμ λ°μ΄ν°λ₯Ό λΆ λ°μ΄ν°λ² μ΄μ€ μλ²μμ μ½λλ€
- μΉ μλ²λ λ°μ΄ν° λ³κ²½ μ°μ°μ μ£Ό λ°μ΄ν°λ² μ΄μ€λ‘ μ λ¬νλ€.
4λ¨κ³. μΊμμ CDN
- μλ΅ μκ°μ κ°μ νκΈ° μν λͺ©μ μΌλ‘ μΊμμ CDNμ λμ ν΄λ³΄μ

- μΊμ : κ° λΉμΌ μ°μ° κ²°κ³Ό νΉμ μμ£Ό μ°Έμ‘°λλ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μμ λκ³ μ¬μ©νλ κΈ°λ²
- μ ν리μΌμ΄μ μ μ±λ₯μ λ°μ΄ν°λ² μ΄μ€λ₯Ό μΌλ§λ μμ£Ό νΈμΆνλλμ ν¬κ² μ’μ°λλλ° μΊμλ κ·Έλ° λ¬Έμ λ₯Ό μνν μ μλ€,
- λ°μ΄ν° λ² μ΄μ€ λΆνλ₯Ό μ€μΌ μλ μκ³ μΊμ κ³μΈ΅μ κ·λͺ¨λ₯Ό λ 립μ μΌλ‘ νμ₯μν€λ κ²λ κ°λ₯ν΄μ§λ€.
- μ¬μ© μ μ μν μ
- μΊμλ μ΄λ€ μν©μ λ°λμ§νκ°? -> λ°μ΄ν° κ°±μ μ μμ£Ό μΌμ΄λμ§ μμ§λ§ μ°Έμ‘°λ λΉλ²νκ² μΌμ΄λλ κ²½μ°
- μ΄λ€ λ°μ΄ν°λ₯Ό μΊμμ λμ΄μΌ νλκ°? -> μμμ μΌλ‘ 보κ΄ν λ°μ΄ν°λ₯Ό μΊμμ λλκ²μ λ°λμ§νμ§ μλ€
- μΊμμ 보κ΄λ λ°μ΄ν°λ μ΄λ»κ² λ§λ£λλκ°? -> λ무 짧μλ κ³€λνκ³ λ무 κΈΈμ΄λ κ³€λ
- μΌκ΄μ±μ μ΄λ»κ² μ μ§ λλκ°?
- μΌκ΄μ±μ λ°μ΄ν° μ μ₯μμ μλ³Έκ³Ό μΊμ λ΄μ μ¬λ³Έμ΄ κ°μμ§ μ¬λΆ
- μ μ₯μμ μλ³Έμ κ°±μ νλ μ°μ°κ³Ό μΊμλ₯Ό κ°±μ νλ μ°μ°μ΄ λ¨μΌ νΈλμμ μΌλ‘ μ²λ¦¬λμ§ μλ κ²½μ° μΌκ΄μ±μ΄ κΉ¨μ§ μ μλ€
- Scaling Memcache at Facebook μ°Έκ³
- μ₯μ μλ μ΄λ»κ² λμ²ν κ²μΈκ°? μΊμ μλ²λ₯Ό νλλ§ λλ κ²½μ° ν΄λΉ μλ²λ λ¨μΌ μ₯μ μ§μ μ΄ λ μ μλ€.
- λ¨μΌ μ₯μ μ§μ : μ΄λ€ νΉμ μ§μ μμμ μ₯μ κ° μ 체 μμ€ν μ λμμ μ€λ¨μμΌλ²λ¦΄ μ μλ κ²½μ° ν΄λΉ μ§μ μ λ¨μΌ μ₯μ μ§μ μ΄λΌκ³ λΆλ₯Έλ€.
- μΊμ λ©λͺ¨λ¦¬λ μΌλ§λ ν¬κ² μ‘μ κ²μΈκ°?
- λ무 μμΌλ©΄ μΊμμ μ±λ₯μ΄ λ¨μ΄μ§λ€. μΊμ λ©λͺ¨λ¦¬λ₯Ό κ³Όν λΉν΄μ ν΄κ²°νμ
- λ°μ΄ν° λ°©μΆ μ μ±
μ 무μμΈκ°?
- μΊμκ° κ½ μ°¨λ²λ Έμ λ μΊμ μλ²μμ λ°μ΄ν°λ₯Ό λ°©μΆνλ μ μ± : λ³΄ν΅ LRU μ¬μ© νΉμ LFU, FIFO λ±
- CDN : μ μ μ½ν
μΈ λ₯Ό μ μ‘νλλ° μ°μ΄λ μ§λ¦¬μ μΌλ‘ λΆμ°λ μλ²μ λ€νΈμν¬
- νλ¦
- μ¬μ©μκ° μ΄λ―Έμ§ URLμ ν΅ν΄ μ΄λ―Έμ§μ μ κ·Όνλ€. (URL λλ©μΈμ CDN μ¬μ μ λλ©μΈ)
- CDN μλ²μ μΊμμ ν΄λΉ μ΄λ―Έμ§κ° μλ κ²½μ° μλ²λ μλ³Έ μλ²μ μμ²ν΄ νμΌμ κ°μ Έμ¨λ€
- μλ³Έ μλ²κ° νμΌμ CDN μλ²μ λ°ννλ€. (TIL κ°κ³Ό ν¨κ»)
- CDN μλ²λ νμΌμ μΊμνκ³ μ¬μ©μ Aμκ² λ°ννλ€. μ΄λ―Έμ§λ TILμ λͺ μλ μκ°μ΄ λλ λκΉμ§ μΊμλλ€.
- CDN μλ²μ μ΄λ―Έμ§κ° μλ κ²½μ°, λ°λ‘ μ΄λ―Έμ§λ₯Ό λ°ννλ€.
- κ³ λ €ν΄μΌ ν μ¬ν
- λΉμ© : CDNμ λ³΄ν΅ third-party λ‘ μ¬μ©λ¨. λ°μ΄ν° μ μ‘ μμ λ°λΌ μκΈμ λ΄κ² λλ€. μμ£Ό μ¬μ©νμ§ μλ μ½ν μΈ λ₯Ό μΊμ±νλ κ²μ μ΄λμ΄ ν¬μ§ μλ€.
- μ μ ν λ§λ£ μκ°
- CDN μ₯μ λμ² : CDN μλ²κ° μ£½λ κ²½μ° μλ³Έ μλ²λ‘λΆν° κ°μ Έμ¬ μ μκ² ν΄λΌμ΄μΈνΈ κ΅¬μ± νμ
- μ½ν
μΈ λ¬΄ν¨ν λ°©λ² : μΊμ μκ°μ΄ μ§λμ§ μμ μ½ν
μΈ μ¬λ λ§λ£ν μ μκ² λ°©μ νμ
- CDN μλΉμ€ μ¬μ μκ° μ 곡νλ API μ¬μ©
- μ½ν μΈ μ λ€λ₯Έ λ²μ μ μλΉμ€νλλ‘ μ€λΈμ νΈ λ²μ λ μ΄μ© (μμ : imange.png?v=2)
- νλ¦
- μΊμμ CDN λμ μΌλ‘ λ³νλ λΆλΆ : μ μ μ½ν μΈ μ CDNμ ν΅ν΄ μλΉμ€νλ€. μΊμκ° λ°μ΄ν°λ² μ΄μ€ λΆνλ₯Ό μ€μ¬μ€λ€.
5λ¨κ³. 무μν μΉ κ³μΈ΅
- μΉ κ³μΈ΅μ μνμ μΌλ‘ νμ₯νκΈ° μν΄μ μν μ 보λ₯Ό μΉ κ³μΈ΅μμ μ κ±°ν΄μΌ νλ€.

- μν μμ‘΄μ μΌλ‘ μ€κ³λλ©΄ κ°μ ν΄λΌμ΄μΈνΈλ‘λΆν°μ μμ²μ νμ κ°μ μλ²λ‘ μ μ‘λμ΄μΌ νλ€.
- λ‘λλ°Έλ°μκ° κ³ μ μΈμ μ΄λΌλ κΈ°λ₯μ μ 곡νκΈ°λ νλ€.
- κ·Όλ° λΆλ΄μ΄ λλ μμ μ π

- 무μν μν€ν
μ²
- μ¬μ©μλ‘λΆν°μ HTTP μμ²μ μ΄λ€ μΉ μλ²λ‘λ μ λ¬ λ μ μλ€.
- μν μ λ³΄κ° νμν κ²½μ° λ³λμ 곡μ μ μ₯μλ‘λΆν° κ°μ Έμ¨λ€.
- = μν μ 보μ μΉ μλ²μ λΆλ¦¬
6λ¨κ³. λ°μ΄ν° μΌν°
- μ₯μ κ° μλ μν©μμ μ¬μ©μλ κ°μ₯ κ°κΉμ΄ λ°μ΄ν° μΌν°λ‘ μλ΄λλλ°, μ΄λ₯Ό μ§λ¦¬μ λΌμ°ν μ΄λΌκ³ νλ€.
- μ§λ¦¬μ λΌμ°ν
geoDNS-routing
- μ¬μ©μμ μμΉμ λ°λΌ λλ©μΈ μ΄λ¦μ μ΄λ€ IP μ£Όμλ‘ λ³νν μ§ κ²°μ ν μ μλλ‘ ν΄μ£Όλ DNS μλΉμ€
- μ§λ¦¬μ λΌμ°ν
μ νκΈ° μν κΈ°μ μ λμ
- νΈλν½ μ°ν : μ¬λ°λ₯Έ λ°μ΄ν° μΌν°λ‘ νΈλν½μ 보λ΄λ ν¨κ³Όμ μΈ λ°©λ²μ μ°ΎμμΌ νλ€
- λ°μ΄ν° λκΈ°ν : λ°μ΄ν° μΌν°λ§λ€ λ³λμ λ°μ΄ν°λ² μ΄μ€λ₯Ό κ°μ§λ μν©μ΄λΌλ©΄ λ°μ΄ν°λ² μ΄μ€ λ€μ€νκ° νμνλ€
- ν μ€νΈμ λ°°ν¬ : μ¬λ¬ μμΉμμ ν μ€νΈ νμ
- λ©μΈμ§ ν
- λ©μΈμ§μ λ²νΌ μν μ νλ©° λΉλκΈ°μ μΌλ‘ μ μ‘νκΈ° μν λͺ©μ μΌλ‘ μ¬μ©λ¨
- μλΉμ€ λλ μλ² κ° κ²°ν©μ΄ λμ¨ν΄μ Έμ κ·λͺ¨ νμ₯μ±μ΄ 보μ₯λμ΄μΌ νλ μμ μ μ ν리μΌμ΄μ
μ ꡬμ±νκΈ° μ’λ€.
- μμ°μ : μλΉμ νλ‘μΈμ€κ° λ€μ΄λμ΄ μμ΄λ λ©μΈμ§ λ°νκ°λ₯
- μλΉμ : μμ°μ νλ‘μΈμ€κ° λ€μ΄λμ΄ μμ΄λ λ©μΈμ§ μμ κ°λ₯
- λ‘κ·Έ, 맀νΈλ¦, μλν
- λ‘κ·Έ : μλ¬ λ‘κ·Έ λͺ¨λν°λ§ ν΄ μμ€ν μ μ€λ₯μ λ¬Έμ λ€μ λ³΄λ€ μ½κ² μ°ΎμλΌ μ μλλ‘ νλ€.
- 맀νΈλ¦ : νΈμ€νΈ λ¨μ 맀νΈλ¦(CPU, λμ€ν¬ I/O λ±λ±), μ’ ν© λ©νΈλ¦ (DB κ³μΈ΅ μ±λ₯, μΊμ κ³μΈ΅ μ±λ₯), ν΅μ¬ λΉμ¦λμ€ λ©νΈλ¦(daily active user, μμ΅, μ¬λ°©λ¬Έ μ λ±λ±)
- μλν : λΉλ, ν μ€νΈ, λ°°ν¬ μλν
- κ²°κ³Ό
- λΉλκΈ°λ‘ μ²λ¦¬ν μ μλ λΆλΆμ λ©μΈμ§νλ₯Ό μ¬μ©νλ€.
- λ‘κ·Έ,λͺ¨λν°λ§,λ©νΈλ¦,μλν λ±μ μ§μνλ λꡬλ₯Ό μΆκ°νλ€.
7λ¨κ³. λ°μ΄ν°λ² μ΄μ€μ κ·λͺ¨ νμ₯
- μμ§μ νμ₯
- μνμ νμ₯ : μ€λ©(sharding)
- μ€λ©μ λκ·λͺ¨ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ€λλΌκ³ λΆλ₯΄λ μμ λ¨μλ‘ λΆν νλ κΈ°μ μ μΌμ»«λλ€.
- λͺ¨λ μ€λλ κ°μ μ€ν€λ§λ₯Ό μ°μ§λ§ μ€λμ 보κ΄λλ λ°μ΄ν° μ¬μ΄μλ μ€λ³΅μ΄ μλ€.
- μλ₯Ό λ€μ΄ user_id κΈ°μ€μΌλ‘ μ€λ κ²°μ (ν΄μ¬ λ²ν·μ²λΌ)
- μ€λ© ν€
- νν°μ ν€λΌκ³ λ λΆλ₯΄λλ°, λ°μ΄ν°κ° μ΄λ»κ² λΆμ°λ μ§ μ νλ νλ μ΄μμ 컬λΌμΌλ‘ ꡬμ±λλ€.
- λ¬Έμ μ
- λ°μ΄ν°μ μ¬ μ€λ©
- λ°μ΄ν°κ° λ무 λ§μμ Έμ νλμ μ€λλ‘λ λ μ΄μ κ°λΉνκΈ° μ΄λ €μΈλ
- μ€λ κ° λ°μ΄ν° λΆν¬κ° κ· λ©νμ§ λͺ»ν΄ μ΄λ€ μ€λμ ν λΉλ κ³΅κ° μλͺ¨κ° λ€λ₯Έ μ€λμ λΉν΄ 빨리 μ§νλ λ - μ€λ μμ§
- μ΄ λ¬Έμ λ μμ ν΄μ κΈ°λ²μ μ¬μ©νλ©΄ ν΄κ²° κ°λ₯
- μ λͺ
μΈμ¬ λ¬Έμ
- νΉμ μ€λμ μ§μκ° μ§μ€λμ΄ μλ²μ κ³ΌλΆνκ° κ±Έλ¦¬λ λ¬Έμ
- μ‘°μΈκ³Ό λΉμ κ·ν
- μ¬λ¬ μ€λμ κ±ΈμΉ λ°μ΄ν°λ₯Ό μ‘°μΈνκΈ° νλ€μ΄μ§λ€.
- ν΄κ²°νκΈ° μν λ°©λ²μ λ°μ΄ν°λ² μ΄μ€λ₯Ό λΉμ κ·ν νλ κ²μ΄λ€.
- λ°μ΄ν°μ μ¬ μ€λ©
π κ²°λ‘
μΉ κ³μΈ΅μ 무μν κ³μΈ΅μΌλ‘
λͺ¨λ κ³μΈ΅μ λ€μ€ν λμ
κ°λ₯ν λ§μ λ°μ΄ν°λ₯Ό μΊμν κ² (λ°μ΄ν°λ² μ΄μ€ λΆνλ₯Ό μ€μ΄κΈ° μν΄)
μ¬λ¬ λ°μ΄ν° μΌν°λ₯Ό μ§μν κ²
μ μ μ½ν μΈ λ CDNμ ν΅ν΄ μλΉμ€ ν κ²
λ°μ΄ν° κ³μΈ΅μ μ€λ©μ ν΅ν΄ κ·λͺ¨ νμ₯
κ° κ³μΈ΅μ λ 립μ μλΉμ€λ‘ λΆν
μμ€ν μ μ§μμ μΌλ‘ λͺ¨λν°λ§νκ³ μλν λꡬλ€μ νμ© ν κ²
λ°μν
λ°μν

1λ¨κ³. λ¨μΌ μλ²
- μΉ μ±, λ°μ΄ν°λ² μ΄μ€, μΊμ λ± μ λΆ λͺ¨λ μλ² ν λμ ꡬμΆνλ€.
μ¬μ©μ μμ² νλ¦
- μ¬μ©μλ λλ©μΈ μ΄λ¦μ μ΄μ©ν΄(www.naver.com) μΉμ¬μ΄νΈμ μ μνλ€.
- μ΄ μ μμ μν΄μλ DNSμ μ§μν΄ λλ©μΈ μ΄λ¦μ IP μ£Όμλ‘ λ³ννλ κ³Όμ μ΄ νμνλ€. (λ³΄ν΅ thired party μ¬μ©)
- DNS μ§μ κ²°κ³Όλ‘ IP μ£Όμκ° λ°νλλ€.
- ν΄λΉ IPμ£Όμλ‘ HTTP μμ²μ΄ μ λ¬ λλ€.
- μμ²μ λ°μ μΉ μλ²λ HTML νμ΄μ§λ JSON ννμ μλ΅μ λ°ννλ€.
2λ¨κ³. λ°μ΄ν°λ² μ΄μ€ μλ² λΆλ¦¬
- μΉ κ³μΈ΅κ³Ό λ°μ΄ν° κ³μΈ΅μΌλ‘ μλ²λ₯Ό λΆλ¦¬νλ€.
- κ°κ°μ λ 립μ μΌλ‘ νμ₯ν΄ λκ° μ μκ² λλ€.
- μ΄λ€ λ°μ΄ν° λ² μ΄μ€λ₯Ό μ¬μ©ν κ²μΈκ°
- RDBMS vs NoSQL
- λ€μκ³Ό κ°μ κ²½μ° λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€κ° λ°λμ§ν μ νμΌ μ μλ€
- μμ£Ό λ¦μ μλ΅ μ§μ°μκ°μ΄ μꡬλ¨
- λ€λ£¨λ λ°μ΄ν°κ° λΉμ ν λ°μ΄ν°μ
- λ°μ΄ν°λ₯Ό μ§λ ¬ννκ±°λ μμ§λ ¬ν ν μ μκΈ°λ§ νλ©΄ λ¨
- μμ£Ό λ§μ μμ λ°μ΄ν°λ₯Ό μ μ₯ν νμκ° μμ
- λ€μκ³Ό κ°μ κ²½μ° λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€κ° λ°λμ§ν μ νμΌ μ μλ€
- RDBMS vs NoSQL
3λ¨κ³. μμ§μ κ·λͺ¨ νμ₯ vs μνμ κ·λͺ¨ νμ₯
- μμ§μ : μλ²μ κ³ μ¬μ μμμ μΆκ°νλ νμ.
- μλ²λ‘ μ μ λλ νΈλν½μ μμ΄ μ μλλ μ’μ μ νμ΄ λ μ μλ€. λ¨μνκ² ν΄κ²° κ°λ₯.
- νμ§λ§ λͺ κ°μ§ λ¨μ μ΄ μλ€
- νκ³κ° μμ (무νμ CPU, λ©λͺ¨λ¦¬ μ¦μ€ λΆκ°)
- μλ볡ꡬ λ°©μμ΄λ λ€μ€ν λ°©μ μμ. μλ²μ μ₯μ κ° λ°μνλ©΄ μμ€ν μμ μ€λ¨
- μνμ : μλ² μ¦μ€
- λ‘λλ°Έλ°μ : μΉ μλ²λ€μκ² νΈλν½ λΆνλ₯Ό λΆμ°νλ μν
- μ¬μ©μλ λ‘λλ°Έλ°μμ κ³΅κ° IPλ‘ μ μνλ€. (μλ²κ° ν΅μ μ μ¬μ€ IP μ£Όμλ‘ μ§ν)
- μ¬μ€ IPμ£Όμλ λ€νΈμν¬μ μν μλ² μ¬μ΄μ ν΅μ μμλ§ μ°μΌ μ μμ. 곡κ°μ μΌλ‘ μ μ λΆκ°
- μ¬μ©μλ λ‘λλ°Έλ°μμ κ³΅κ° IPλ‘ μ μνλ€. (μλ²κ° ν΅μ μ μ¬μ€ IP μ£Όμλ‘ μ§ν)
- failover κ°λ₯ν΄μ Έ μλ²μ κ°μ©μ± ν₯μλ¨
- μλ² 1 λ€μ΄μ μλ² 2κ° λͺ¨λ νΈλν½ λ°μΌλ©΄ λ¨
- λ°μ΄ν° λ² μ΄μ€ λ€μ€ν
- master - slave ꡬ쑰
- master : μλ³Έ μ μ₯. μ°κΈ° μ°μ° μ§μ
- slave : μ¬λ³Έ μ μ₯. μ½κΈ° μ°μ°λ§ μ§μ. masterμμ μ£ΌκΈ°μ μΌλ‘ λ°μ΄ν° κ°μ Έμμ μ ν©μ± λ§μΆ€
- μ₯μ
- λ³λ ¬λ‘ μ²λ¦¬λ μ μλ μ§μμ μκ° λμ΄λ μ±λ₯ μ’μμ§
- μμ μ± λμμ§ : μλ² μΌλΆκ° νκ΄΄λμ΄λ λ°μ΄ν° λ³΄μ‘΄λ¨ (λ°μ΄ν°λ₯Ό μ§μμ μΌλ‘ λ¨μ΄μ§ μ¬λ¬ μ₯μμ λ€μ€ν νλ€λ κ°μ )
- κ°μ©μ± λμμ§ : νλμ λ°μ΄ν° λ² μ΄μ€ μλ²μ μ₯μ κ° λ°μν΄λ λ€λ₯Έ μλ² μ¬μ© κ°λ₯
- λ°μ΄ν°λ² μ΄μ€ μλ² μ€ νλκ° λ€μ΄λλ€λ©΄?
- λΆ μλ² λ€μ΄
- λΆ μλ²κ° ν λ λΏμΈ κ²½μ° : μ½κΈ° μ°μ°μ΄ μ£Ό μλ²λ‘ μ λ¬λ¨. μλ‘μ΄ λΆ μλ² μμ± ν΄ λ체 κ°λ₯
- λΆ μλ²κ° μ¬λ¬ λ μΌ κ²½μ° : λλ¨Έμ§ λΆ μλ²λ‘ μ½κΈ° μ°μ° λΆμ°. μλ‘μ΄ λΆ μλ² μμ± ν΄ λ체 κ°λ₯
- μ£Ό μλ² λ€μ΄
- λΆ μλ²κ° ν λ λΏμΈ κ²½μ° : λΆ μλ²κ° μλ‘μ΄ μ£Όμλ²κ° λλ€. μλ‘μ΄ λΆ μλ² μμ± ν΄ λ체 κ°λ₯
- λΆ μλ²μ 보κ΄λ λ°μ΄ν°κ° μ΅μ μνκ° μλ κ²½μ°λ₯Ό κ³ λ €ν΄ λ³΅κ΅¬ μ€ν¬λ¦½νΈλ₯Ό λλ €μ μλ λ°μ΄ν° μΆκ°ν΄μΌ νλ€. μ°Έκ³ λ¬Έν [4][5] μ°Έκ³
- λΆ μλ²κ° ν λ λΏμΈ κ²½μ° : λΆ μλ²κ° μλ‘μ΄ μ£Όμλ²κ° λλ€. μλ‘μ΄ λΆ μλ² μμ± ν΄ λ체 κ°λ₯
- λΆ μλ² λ€μ΄
- master - slave ꡬ쑰
- λ‘λλ°Έλ°μ : μΉ μλ²λ€μκ² νΈλν½ λΆνλ₯Ό λΆμ°νλ μν
μ¬μ©μ μμ² νλ¦
- μ¬μ©μλ λλ©μΈ μ΄λ¦μ μ΄μ©ν΄(www.naver.com) μΉμ¬μ΄νΈμ μ μνλ€.
- μ΄ μ μμ μν΄μλ DNSμ μ§μν΄ λλ©μΈ μ΄λ¦μ IP μ£Όμλ‘ λ³ννλ κ³Όμ μ΄ νμνλ€. (λ³΄ν΅ thired party μ¬μ©)
- DNS μ§μ κ²°κ³Όλ‘ λ‘λ λ°Έλ°μμ κ³΅κ° IP μ£Όμκ° λ°νλλ€.
- HTTP μμ²μ μλ²1μ΄λ μλ²2λ‘ μ λ¬λλ€.
- μΉ μλ²λ μ¬μ©μμ λ°μ΄ν°λ₯Ό λΆ λ°μ΄ν°λ² μ΄μ€ μλ²μμ μ½λλ€
- μΉ μλ²λ λ°μ΄ν° λ³κ²½ μ°μ°μ μ£Ό λ°μ΄ν°λ² μ΄μ€λ‘ μ λ¬νλ€.
4λ¨κ³. μΊμμ CDN
- μλ΅ μκ°μ κ°μ νκΈ° μν λͺ©μ μΌλ‘ μΊμμ CDNμ λμ ν΄λ³΄μ

- μΊμ : κ° λΉμΌ μ°μ° κ²°κ³Ό νΉμ μμ£Ό μ°Έμ‘°λλ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μμ λκ³ μ¬μ©νλ κΈ°λ²
- μ ν리μΌμ΄μ μ μ±λ₯μ λ°μ΄ν°λ² μ΄μ€λ₯Ό μΌλ§λ μμ£Ό νΈμΆνλλμ ν¬κ² μ’μ°λλλ° μΊμλ κ·Έλ° λ¬Έμ λ₯Ό μνν μ μλ€,
- λ°μ΄ν° λ² μ΄μ€ λΆνλ₯Ό μ€μΌ μλ μκ³ μΊμ κ³μΈ΅μ κ·λͺ¨λ₯Ό λ 립μ μΌλ‘ νμ₯μν€λ κ²λ κ°λ₯ν΄μ§λ€.
- μ¬μ© μ μ μν μ
- μΊμλ μ΄λ€ μν©μ λ°λμ§νκ°? -> λ°μ΄ν° κ°±μ μ μμ£Ό μΌμ΄λμ§ μμ§λ§ μ°Έμ‘°λ λΉλ²νκ² μΌμ΄λλ κ²½μ°
- μ΄λ€ λ°μ΄ν°λ₯Ό μΊμμ λμ΄μΌ νλκ°? -> μμμ μΌλ‘ 보κ΄ν λ°μ΄ν°λ₯Ό μΊμμ λλκ²μ λ°λμ§νμ§ μλ€
- μΊμμ 보κ΄λ λ°μ΄ν°λ μ΄λ»κ² λ§λ£λλκ°? -> λ무 짧μλ κ³€λνκ³ λ무 κΈΈμ΄λ κ³€λ
- μΌκ΄μ±μ μ΄λ»κ² μ μ§ λλκ°?
- μΌκ΄μ±μ λ°μ΄ν° μ μ₯μμ μλ³Έκ³Ό μΊμ λ΄μ μ¬λ³Έμ΄ κ°μμ§ μ¬λΆ
- μ μ₯μμ μλ³Έμ κ°±μ νλ μ°μ°κ³Ό μΊμλ₯Ό κ°±μ νλ μ°μ°μ΄ λ¨μΌ νΈλμμ μΌλ‘ μ²λ¦¬λμ§ μλ κ²½μ° μΌκ΄μ±μ΄ κΉ¨μ§ μ μλ€
- Scaling Memcache at Facebook μ°Έκ³
- μ₯μ μλ μ΄λ»κ² λμ²ν κ²μΈκ°? μΊμ μλ²λ₯Ό νλλ§ λλ κ²½μ° ν΄λΉ μλ²λ λ¨μΌ μ₯μ μ§μ μ΄ λ μ μλ€.
- λ¨μΌ μ₯μ μ§μ : μ΄λ€ νΉμ μ§μ μμμ μ₯μ κ° μ 체 μμ€ν μ λμμ μ€λ¨μμΌλ²λ¦΄ μ μλ κ²½μ° ν΄λΉ μ§μ μ λ¨μΌ μ₯μ μ§μ μ΄λΌκ³ λΆλ₯Έλ€.
- μΊμ λ©λͺ¨λ¦¬λ μΌλ§λ ν¬κ² μ‘μ κ²μΈκ°?
- λ무 μμΌλ©΄ μΊμμ μ±λ₯μ΄ λ¨μ΄μ§λ€. μΊμ λ©λͺ¨λ¦¬λ₯Ό κ³Όν λΉν΄μ ν΄κ²°νμ
- λ°μ΄ν° λ°©μΆ μ μ±
μ 무μμΈκ°?
- μΊμκ° κ½ μ°¨λ²λ Έμ λ μΊμ μλ²μμ λ°μ΄ν°λ₯Ό λ°©μΆνλ μ μ± : λ³΄ν΅ LRU μ¬μ© νΉμ LFU, FIFO λ±
- CDN : μ μ μ½ν
μΈ λ₯Ό μ μ‘νλλ° μ°μ΄λ μ§λ¦¬μ μΌλ‘ λΆμ°λ μλ²μ λ€νΈμν¬
- νλ¦
- μ¬μ©μκ° μ΄λ―Έμ§ URLμ ν΅ν΄ μ΄λ―Έμ§μ μ κ·Όνλ€. (URL λλ©μΈμ CDN μ¬μ μ λλ©μΈ)
- CDN μλ²μ μΊμμ ν΄λΉ μ΄λ―Έμ§κ° μλ κ²½μ° μλ²λ μλ³Έ μλ²μ μμ²ν΄ νμΌμ κ°μ Έμ¨λ€
- μλ³Έ μλ²κ° νμΌμ CDN μλ²μ λ°ννλ€. (TIL κ°κ³Ό ν¨κ»)
- CDN μλ²λ νμΌμ μΊμνκ³ μ¬μ©μ Aμκ² λ°ννλ€. μ΄λ―Έμ§λ TILμ λͺ μλ μκ°μ΄ λλ λκΉμ§ μΊμλλ€.
- CDN μλ²μ μ΄λ―Έμ§κ° μλ κ²½μ°, λ°λ‘ μ΄λ―Έμ§λ₯Ό λ°ννλ€.
- κ³ λ €ν΄μΌ ν μ¬ν
- λΉμ© : CDNμ λ³΄ν΅ third-party λ‘ μ¬μ©λ¨. λ°μ΄ν° μ μ‘ μμ λ°λΌ μκΈμ λ΄κ² λλ€. μμ£Ό μ¬μ©νμ§ μλ μ½ν μΈ λ₯Ό μΊμ±νλ κ²μ μ΄λμ΄ ν¬μ§ μλ€.
- μ μ ν λ§λ£ μκ°
- CDN μ₯μ λμ² : CDN μλ²κ° μ£½λ κ²½μ° μλ³Έ μλ²λ‘λΆν° κ°μ Έμ¬ μ μκ² ν΄λΌμ΄μΈνΈ κ΅¬μ± νμ
- μ½ν
μΈ λ¬΄ν¨ν λ°©λ² : μΊμ μκ°μ΄ μ§λμ§ μμ μ½ν
μΈ μ¬λ λ§λ£ν μ μκ² λ°©μ νμ
- CDN μλΉμ€ μ¬μ μκ° μ 곡νλ API μ¬μ©
- μ½ν μΈ μ λ€λ₯Έ λ²μ μ μλΉμ€νλλ‘ μ€λΈμ νΈ λ²μ λ μ΄μ© (μμ : imange.png?v=2)
- νλ¦
- μΊμμ CDN λμ μΌλ‘ λ³νλ λΆλΆ : μ μ μ½ν μΈ μ CDNμ ν΅ν΄ μλΉμ€νλ€. μΊμκ° λ°μ΄ν°λ² μ΄μ€ λΆνλ₯Ό μ€μ¬μ€λ€.
5λ¨κ³. 무μν μΉ κ³μΈ΅
- μΉ κ³μΈ΅μ μνμ μΌλ‘ νμ₯νκΈ° μν΄μ μν μ 보λ₯Ό μΉ κ³μΈ΅μμ μ κ±°ν΄μΌ νλ€.

- μν μμ‘΄μ μΌλ‘ μ€κ³λλ©΄ κ°μ ν΄λΌμ΄μΈνΈλ‘λΆν°μ μμ²μ νμ κ°μ μλ²λ‘ μ μ‘λμ΄μΌ νλ€.
- λ‘λλ°Έλ°μκ° κ³ μ μΈμ μ΄λΌλ κΈ°λ₯μ μ 곡νκΈ°λ νλ€.
- κ·Όλ° λΆλ΄μ΄ λλ μμ μ π

- 무μν μν€ν
μ²
- μ¬μ©μλ‘λΆν°μ HTTP μμ²μ μ΄λ€ μΉ μλ²λ‘λ μ λ¬ λ μ μλ€.
- μν μ λ³΄κ° νμν κ²½μ° λ³λμ 곡μ μ μ₯μλ‘λΆν° κ°μ Έμ¨λ€.
- = μν μ 보μ μΉ μλ²μ λΆλ¦¬
6λ¨κ³. λ°μ΄ν° μΌν°
- μ₯μ κ° μλ μν©μμ μ¬μ©μλ κ°μ₯ κ°κΉμ΄ λ°μ΄ν° μΌν°λ‘ μλ΄λλλ°, μ΄λ₯Ό μ§λ¦¬μ λΌμ°ν μ΄λΌκ³ νλ€.
- μ§λ¦¬μ λΌμ°ν
geoDNS-routing
- μ¬μ©μμ μμΉμ λ°λΌ λλ©μΈ μ΄λ¦μ μ΄λ€ IP μ£Όμλ‘ λ³νν μ§ κ²°μ ν μ μλλ‘ ν΄μ£Όλ DNS μλΉμ€
- μ§λ¦¬μ λΌμ°ν
μ νκΈ° μν κΈ°μ μ λμ
- νΈλν½ μ°ν : μ¬λ°λ₯Έ λ°μ΄ν° μΌν°λ‘ νΈλν½μ 보λ΄λ ν¨κ³Όμ μΈ λ°©λ²μ μ°ΎμμΌ νλ€
- λ°μ΄ν° λκΈ°ν : λ°μ΄ν° μΌν°λ§λ€ λ³λμ λ°μ΄ν°λ² μ΄μ€λ₯Ό κ°μ§λ μν©μ΄λΌλ©΄ λ°μ΄ν°λ² μ΄μ€ λ€μ€νκ° νμνλ€
- ν μ€νΈμ λ°°ν¬ : μ¬λ¬ μμΉμμ ν μ€νΈ νμ
- λ©μΈμ§ ν
- λ©μΈμ§μ λ²νΌ μν μ νλ©° λΉλκΈ°μ μΌλ‘ μ μ‘νκΈ° μν λͺ©μ μΌλ‘ μ¬μ©λ¨
- μλΉμ€ λλ μλ² κ° κ²°ν©μ΄ λμ¨ν΄μ Έμ κ·λͺ¨ νμ₯μ±μ΄ 보μ₯λμ΄μΌ νλ μμ μ μ ν리μΌμ΄μ
μ ꡬμ±νκΈ° μ’λ€.
- μμ°μ : μλΉμ νλ‘μΈμ€κ° λ€μ΄λμ΄ μμ΄λ λ©μΈμ§ λ°νκ°λ₯
- μλΉμ : μμ°μ νλ‘μΈμ€κ° λ€μ΄λμ΄ μμ΄λ λ©μΈμ§ μμ κ°λ₯
- λ‘κ·Έ, 맀νΈλ¦, μλν
- λ‘κ·Έ : μλ¬ λ‘κ·Έ λͺ¨λν°λ§ ν΄ μμ€ν μ μ€λ₯μ λ¬Έμ λ€μ λ³΄λ€ μ½κ² μ°ΎμλΌ μ μλλ‘ νλ€.
- 맀νΈλ¦ : νΈμ€νΈ λ¨μ 맀νΈλ¦(CPU, λμ€ν¬ I/O λ±λ±), μ’ ν© λ©νΈλ¦ (DB κ³μΈ΅ μ±λ₯, μΊμ κ³μΈ΅ μ±λ₯), ν΅μ¬ λΉμ¦λμ€ λ©νΈλ¦(daily active user, μμ΅, μ¬λ°©λ¬Έ μ λ±λ±)
- μλν : λΉλ, ν μ€νΈ, λ°°ν¬ μλν
- κ²°κ³Ό
- λΉλκΈ°λ‘ μ²λ¦¬ν μ μλ λΆλΆμ λ©μΈμ§νλ₯Ό μ¬μ©νλ€.
- λ‘κ·Έ,λͺ¨λν°λ§,λ©νΈλ¦,μλν λ±μ μ§μνλ λꡬλ₯Ό μΆκ°νλ€.
7λ¨κ³. λ°μ΄ν°λ² μ΄μ€μ κ·λͺ¨ νμ₯
- μμ§μ νμ₯
- μνμ νμ₯ : μ€λ©(sharding)
- μ€λ©μ λκ·λͺ¨ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ€λλΌκ³ λΆλ₯΄λ μμ λ¨μλ‘ λΆν νλ κΈ°μ μ μΌμ»«λλ€.
- λͺ¨λ μ€λλ κ°μ μ€ν€λ§λ₯Ό μ°μ§λ§ μ€λμ 보κ΄λλ λ°μ΄ν° μ¬μ΄μλ μ€λ³΅μ΄ μλ€.
- μλ₯Ό λ€μ΄ user_id κΈ°μ€μΌλ‘ μ€λ κ²°μ (ν΄μ¬ λ²ν·μ²λΌ)
- μ€λ© ν€
- νν°μ ν€λΌκ³ λ λΆλ₯΄λλ°, λ°μ΄ν°κ° μ΄λ»κ² λΆμ°λ μ§ μ νλ νλ μ΄μμ 컬λΌμΌλ‘ ꡬμ±λλ€.
- λ¬Έμ μ
- λ°μ΄ν°μ μ¬ μ€λ©
- λ°μ΄ν°κ° λ무 λ§μμ Έμ νλμ μ€λλ‘λ λ μ΄μ κ°λΉνκΈ° μ΄λ €μΈλ
- μ€λ κ° λ°μ΄ν° λΆν¬κ° κ· λ©νμ§ λͺ»ν΄ μ΄λ€ μ€λμ ν λΉλ κ³΅κ° μλͺ¨κ° λ€λ₯Έ μ€λμ λΉν΄ 빨리 μ§νλ λ - μ€λ μμ§
- μ΄ λ¬Έμ λ μμ ν΄μ κΈ°λ²μ μ¬μ©νλ©΄ ν΄κ²° κ°λ₯
- μ λͺ
μΈμ¬ λ¬Έμ
- νΉμ μ€λμ μ§μκ° μ§μ€λμ΄ μλ²μ κ³ΌλΆνκ° κ±Έλ¦¬λ λ¬Έμ
- μ‘°μΈκ³Ό λΉμ κ·ν
- μ¬λ¬ μ€λμ κ±ΈμΉ λ°μ΄ν°λ₯Ό μ‘°μΈνκΈ° νλ€μ΄μ§λ€.
- ν΄κ²°νκΈ° μν λ°©λ²μ λ°μ΄ν°λ² μ΄μ€λ₯Ό λΉμ κ·ν νλ κ²μ΄λ€.
- λ°μ΄ν°μ μ¬ μ€λ©
π κ²°λ‘
μΉ κ³μΈ΅μ 무μν κ³μΈ΅μΌλ‘
λͺ¨λ κ³μΈ΅μ λ€μ€ν λμ
κ°λ₯ν λ§μ λ°μ΄ν°λ₯Ό μΊμν κ² (λ°μ΄ν°λ² μ΄μ€ λΆνλ₯Ό μ€μ΄κΈ° μν΄)
μ¬λ¬ λ°μ΄ν° μΌν°λ₯Ό μ§μν κ²
μ μ μ½ν μΈ λ CDNμ ν΅ν΄ μλΉμ€ ν κ²
λ°μ΄ν° κ³μΈ΅μ μ€λ©μ ν΅ν΄ κ·λͺ¨ νμ₯
κ° κ³μΈ΅μ λ 립μ μλΉμ€λ‘ λΆν
μμ€ν μ μ§μμ μΌλ‘ λͺ¨λν°λ§νκ³ μλν λꡬλ€μ νμ© ν κ²
λ°μν