λ°μ΄ν° μ€μ¬ μ ν리μΌμ΄μ μ€κ³ #1μ₯
1μ₯
μ λ’°μ±, νμ₯μ±, μ μ§λ³΄μμ± μ΄ 3κ°μ§ κ΄μ¬μ¬λ₯Ό μμ§λμ΄λ§ μΈ‘λ©΄μμ μκ°ν΄λ³΄μ.
- μ λ’°μ± : νλμ¨μ΄ / μννΈμ¨μ΄ / μΈμ μ€λ₯ κ°μ μκ²½μ μ§λ©΄νλλΌλ μμ€ν μ μ§μμ μΌλ‘ μ¬λ°λ₯΄κ² λμν΄μΌ νλ€.
- νμ₯μ± : μμ€ν μ λ°μ΄ν° μ, νΈλν½ μ, 볡μ‘λκ° μ¦κ°νλ©΄μ μ΄λ₯Ό μ²λ¦¬ν μ μλ μ μ ν λ°©λ²μ΄ μμ΄μΌ νλ€.
- μ μ§ λ³΄μμ± : μκ°μ΄ μ§λλ©΄μ μ¬λ¬ λ€μν μ¬λλ€μ΄ μμ€ν μμμ μμ ν κ²μ΄κΈ° λλ¬Έμ λͺ¨λ μ¬μ©μκ° μμ€ν μμμ μμ°μ μΌλ‘ μμ ν μ μκ² ν΄μΌ νλ€.
μ λ’°μ±
“무μΈκ° μλͺ»λλλΌλ μ§μμ μΌλ‘ μ¬λ°λ₯΄κ² λμν¨”μ μ λ’°μ±μ μλ―Έλ‘ μ΄ν΄ν μ μλ€.
μλͺ»λ μ μλ μΌμ κ²°ν¨(fault)λΌ λΆλ₯΄λ©°, μ΄λ₯Ό μμΈ‘νκ³ λμ²ν μ μλ μμ€ν μ λ΄κ²°ν¨μ±(fault-tolerant)μ μ§λ λ€κ³ νλ€.
κ³ μμ μΌλ‘ κ²°ν¨μ μ λνμ¬ λ΄κ²°ν¨μ± μμ€ν μ μ§μμ μΌλ‘ νλ ¨νκ³ ν μ€νΈν΄μ κ²°ν¨μ΄ μμ°μ μΌλ‘ λ°μν λ μ¬λ°λ₯΄κ² μ²λ¦¬ν μ μλ μμ κ°μ λμΈλ€. λ·νλ¦μ€μ μΉ΄μ€μ€ λͺ½ν€κ° μ΄λ° μ κ·Ό λ°©μμ ν μλ€.
μΈμ μ€λ₯
μΈκ°μ μμ ν μ λ’°ν μ μμμλ μμ€ν μ μ΄λ»κ² μ λ’°μ± μκ² λ§λ€κΉ? μ΅κ³ μ μμ€ν μ λ€μν μ κ·Ό λ°©μμ κ²°ν©νλ€.
- μ€λ₯μ κ°λ₯μ±μ μ΅μν νλ λ°©ν₯μΌλ‘ μμ€ν μ μ€κ³νλΌ. ex) μ μ€κ³λ μΆμν, API, κ΄λ¦¬ μΈν°νμ΄μ€λ₯Ό μ¬μ©
- μ¬λμ΄ λ§μ΄ μ€μνλ μ₯μμμ μ¬λμ μ€μλ‘ μ₯μ κ° λ°μν μ μλ λΆλΆμ λΆλ¦¬νλΌ.
- λ¨μ ν μ€νΈλΆν° μ 체 μμ€ν ν΅ν© ν μ€νΈμ μλ ν μ€νΈκΉμ§ λͺ¨λ μμ€μμ μ² μ νκ² ν μ€νΈνλΌ.
- μ±λ₯ μ§νμ μλ₯μ¨ κ°μ μμΈνκ³ λͺ νν λͺ¨λν°λ§ λμ± μ λ§λ ¨νλΌ.
νμ₯μ±
μ¦κ°ν λΆνμ λμ²νλ μμ€ν λ₯λ ₯μ μ€λͺ νλ μ©μ΄μ§λ§ μμ€ν μ λΆμ¬νλ μΌμ°¨μμ μΈ νμμ΄ μλλ€.(?)
νμ₯μ±μ λ Όνλ€λ κ²μ, “μμ€ν μ΄ νΉμ λ°©μμΌλ‘ 컀μ§λ©΄ μ΄μ λμ²νκΈ° μν μ νμ 무μμΈκ°?” μ “μΆκ° λΆνλ₯Ό λ€λ£¨κΈ° μν΄ κ³μ° μμμ μ΄λ»κ² ν¬μ ν κΉ?” κ°μ μ§λ¬Έμ κ³ λ €νλ€λ μλ―Έλ€.
λΆν κΈ°μ νκΈ°
μμ€ν μ νμ¬ λΆνλ λΆν 맀κ°λ³μ μ²λΌ κ°κ²°νκ² κΈ°μ ν΄μΌ νλ€.
- λΆν 맀κ°λ³μ μμ : μΉ μλ²μ μ΄λΉ μμ² μ, DBμ μ½κΈ°λ μ°κΈ° λΉμ¨, λνλ°©μ λμ νμ± μ¬μ©μ, μΊμ μ μ€λ₯ λ±
- νΈμν°μ κ²½μ°, μ¬μ©μλΉ νλ‘μμ λΆν¬κ° ν¬μμ λΆνλ₯Ό κ²°μ νκΈ° λλ¬Έμ νμ₯μ±μ λ Όμν λ ν΅μ¬ λΆν 맀κ°λ³μκ° λλ€.
μ±λ₯ κΈ°μ νκΈ°
μλ²-ν΄λΌμ΄μΈνΈ κ° μλ΅μκ°μΌλ‘ μ±λ₯μ κΈ°μ νκ³ μΆμ μ μλ€.
μ΄λ μ νμ μΈ μλ΅ μκ°μ μκ³ μΆλ€λ©΄ νκ· μ κ·Έλ€μ§ μ’μ μ§νκ° μλλ€. μΌλ§λ λ§μ μ¬μ©μκ° μ€μ λ‘ μ§μ°μ κ²½ννμ§ μλ €μ£Όμ§ μκΈ° λλ¬Έμ΄λ€. νκ· λ³΄λ€λ λ°±λΆμλ₯Ό μ¬μ©νλ νΈμ΄ λ μ’λ€. μλ΅ μκ° λͺ©λ‘μ μμλλ‘ μ λ ¬νλ©΄ μ€κ° μ§μ μ΄ μ€μκ°(median) μ΄ λλ€.
μ κ·Έλνλ₯Ό μμλ‘ λ³΄μ. μλ΅κ°μ΄ μΌλ§λ μ’μ§ μμμ§ λ³΄λ €λ©΄ μμ λ°±λΆμλ₯Ό μ΄ν΄λ³΄λ κ²λ μ’λ€. (μ΄λ μ¬μ©νλ λ°±λΆμλ 95λΆμ, 99λΆμ, 99.9λΆμκ° μΌλ°μ ) μ κ·Έλνλ₯Ό ν λλ‘ 95λΆμ μλ΅ μκ°μ΄ 1.5μ΄λΌλ©΄ 100κ°μ μμ² μ€ 95κ°λ 1.5μ΄ λ―Έλ§μ΄κ³ , 100κ°μ μμ² μ€ 5κ°λ 1.5μ΄λ³΄λ€ λ κ±Έλ¦°λ€.
μμ λ°±λΆμ μλ΅ μκ°(꼬리 μ§μ°μκ°)μ μλΉμ€μ μ¬μ©μ κ²½νμ μ§μ μν₯μ μ£ΌκΈ° λλ¬Έμ μ€μνλ€. μλ§μ‘΄μμλ λ΄λΆ μλΉμ€ μλ΅ μκ° μꡬμ¬νμ 99.9λΆμλ‘ κΈ°μ νλλ° μ΄λ μμ² 1000κ° μ€ 1κ°λ§ μν₯μ΄ μμμ μλ―Ένλ€. λ³΄ν΅ μλ΅μκ°μ΄ κ°μ₯ λλ¦° μμ²μ κ²½νν κ³ κ°λ€μ΄ λ§μ ꡬ맀λ₯Ό ν΄μ κ³ κ° μ€ κ³μ μ κ°μ₯ λ§μ λ°μ΄ν°λ₯Ό κ°κΈ° λλ¬Έμ΄λ€. (μ¦ μ°μ κ³ κ°μ΄λΌλ μλ―Έ). μ΄ κ³ κ°λ€μ λ§μ‘±μν€λκ² μ€μνλ€.
λΆν λμ μ κ·Ό λ°©μ
Q. λΆν 맀κ°λ³μκ° μ¦κ°νλλΌλ μ’μ μ±λ₯μ μ μ§νλ €λ©΄ μ΄λ»κ² ν΄μΌν κΉ?
A. μ ν리μΌμ΄μ μ μ ν©ν νμ₯μ±μ κ°μΆ μν€ν μ²λ μ£Όμ λμμ΄ λ¬΄μμ΄κ³ μνμ§ μλ λμμ΄ λ¬΄μμΈμ§μ λν κ°μ μ λ°νμΌλ‘ ꡬμΆνλ€. μ΄ κ°μ μ΄ κ³§ λΆν 맀κ°λ³μκ° λλ€. μ΄ κ°μ μ΄ μλͺ»λλ©΄ νμ₯μ λν μμ§λμ΄λ§ λ Έλ ₯μ νμκ³ κ° λκ³ μ΅μ μ κ²½μ° μν¨κ³Όλ₯Ό λ³λλ€.
“μΌλΆ μμ€ν μ νλ ₯μ ” μ΄λ λ¬Έμ₯μ, μμ€ν μ΄ λΆν μ¦κ°λ₯Ό κ°μ§νλ©΄ μ»΄ν¨ν μμμ μλμΌλ‘ μΆκ°ν μ μλ κ²μ μλ―Ένλ€. νλ ₯μ μΈ μμ€ν μ λΆνλ₯Ό μμΈ‘ν μ μμ λ§νΌ κ³ λΆν μν©μμ μ μ©νλ€.
λ°λ©΄ “νλ ₯μ μ΄μ§ λͺ»ν μμ€ν ”μ μλμΌλ‘ μ»΄ν¨ν μμμ νμ₯ν΄μΌ νλλ°, μμμΉ λͺ»ν λΆνκ° λ°μνλ μν©μ μ μΈνλ©΄ λ κ°λ¨νκ³ μ΄μμ μμμΉ λͺ»ν μΌμ΄ λ μ λ€.
μ μ§λ³΄μμ±
μ μ§λ³΄μ κ³ ν΅μ μ΅μννκ³ λ κ±°μ μννΈμ¨μ΄λ₯Ό μ§μ λ§λ€μ§ μκ²λ μννΈμ¨μ΄λ₯Ό μ€κ³ν μ μλ μμ€ν μ€κ³ μμΉ 3κ°μ§.
- μ΄μ©μ±
- μ΄μνμ΄ μμ€ν μ μννκ² μ΄μν μ μκ² μ½κ² λ§λ€μ΄λΌ
- λ¨μμ±
- μμ€ν 볡μ‘λλ₯Ό μ΅λν μ κ±°νμ¬ μμ§λμ΄κ° μμ€ν μ μ΄ν΄νκΈ° μ½κ² λ§λ€μ΄λΌ
- λ°μ μ±
- μμ§λμ΄κ° μ΄νμ μμ€ν μ μ½κ² λ³κ²½ν μ μκ² ν΄λΌ.
μ΄μ©μ±
μμ€ν μ΄ μννκ² μλνλ €λ©΄ μ΄μνμ΄ νμλ€. μ’μ μ΄μνμ λ€μκ³Ό κ°μ μμ λ±μ μ± μμ§λ€.
μ’μ μ΄μ©μ±μ΄λ λμΌνκ² λ°λ³΅λλ νμ€ν¬λ₯Ό μ½κ² μννκ²λ λ§λ€μ΄ μ΄μνμ΄ κ³ λΆκ°κ°μΉ νλμ μ§μ€νλ€λ μλ―Ένλ€.
λ¨μμ±: 볡μ‘λ κ΄λ¦¬
볡μ‘λλ λ€μκ³Ό κ°μ΄ λ€μν μ¦μμΌλ‘ λνλλ€.
- μν 곡κ°μ κΈμ¦(?)
- λͺ¨λ κ° κ°ν 컀νλ§
- 볡μ‘ν μμ‘΄μ±
- μΌκ΄μ± μλ λͺ λͺ κ³Ό μ©μ΄
- μμ λ°©νΈμΌλ‘ λ¬Έμ λ₯Ό ν΄κ²°ν νΉμμ¬λ‘
μμ€ν μ λ¨μνκ² λ§λλ μΌμ΄ λ°λμ κΈ°λ₯μ μ€μΈλ€λ μλ―Έλ μλκ³ , μ°λ°μ 볡μ‘λλ₯Ό μ€μΈλ€λ λ»μΌ μ μλ€. μ°λ°μ 볡μ‘λλ₯Ό μ κ±°νλ μ΅μμ λꡬλ μΆμνλ€. μ’μ μΆμνλ κΉλνκ³ μ§κ΄μ μΈ μΈκ΄ μλλ‘ λ§μ μΈλΆ ꡬνμ μ¨κΈΈ μ μλ€. λν λ€λ₯Έ λ€μν μ ν리μΌμ΄μ μλ μ¬μ© κ°λ₯νλ€.
λ°μ μ± : λ³νλ₯Ό μ½κ² λ§λ€κΈ°
μννΈμ¨μ΄λ λμμμ΄ λ³ννλ κ²μ΄ μ리λ€. μ‘°μ§ νλ‘μΈμ€ μΈ‘λ©΄μμ μ μμΌ μμ ν¨ν΄μ λ³νμ μ μνκΈ° μν νλ μμν¬λ₯Ό μ 곡νλ€. μ’μ μμλ‘ TDD μ Refactoringμ΄ μλ€.
μ 리
μ ν리μΌμ΄μ μ΄ μ μ©νλ €λ©΄ κΈ°λ₯μ μꡬμ¬νκ³Ό λΉκΈ°λ₯μ μꡬμ¬ν(보μ, μ λ’°μ±, λ²κ· μ€μ, νμ₯μ±, μ μ§λ³΄μμ± λ±)μ μΆ©μ‘±ν΄μΌ νλ€.
μ λ’°μ±μ κ²°ν¨μ΄ λ°μν΄λ μμ€ν μ΄ μ¬λ°λ₯΄κ² λμνκ² λ§λ λ€λ μλ―Έλ€. λ΄κ²°ν¨μ± κΈ°μ μ μ΅μ’ μ¬μ©μμκ² νΉμ μ νμ κ²°ν¨μ μ¨κΈΈ μ μκ² ν΄μ€λ€. (μλ¬ λ©μμ§ νμ κ°μ건κ°)
νμ₯μ±μ λΆνκ° μ¦κ°ν΄λ μ’μ μ±λ₯μ μ μ§νκΈ° μν μ λ΅μ μλ―Ένλ€.
μ μ§λ³΄μμ±μ λ³Έμ§μ μμ€ν μμ μμ νλ μμ§λμ΄μ μ΄μ νμ μΆμ κ°μ νλλ° μλ€.