λ§μ΄ν¬λ‘μλΉμ€ λμ
μν°ν¨ν΄κ³Ό κ³Όμ
from: https://martinfowler.com/bliki/MonolithFirst.html
- λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ νμ₯μ±, 민첩μ±, μ μ§λ³΄μμ± ν₯μ λ± λ€μν μ΄μ μ μ½μ
- νμ§λ§ λ§μ μ‘°μ§λ€μ΄ λ§μ΄ν¬λ‘μλΉμ€λ₯Ό ν¨κ³Όμ μΌλ‘ λμ
νλ λ° μ΄λ €μμ κ²ͺκ³ μμ
- λ§μ΄ν¬λ‘μλΉμ€ λμ
μ νν λ°μνλ μν°ν¨ν΄κ³Ό κ³Όμ λ€μ μ΄ν΄λ³΄κ³ , μ‘°μ§λ€μ΄ ν¨μ μ νΌνκ³
- λ§μ΄ν¬λ‘μλΉμ€ μ¬μ μμ μ±κ³΅ν μ μλλ‘ ν΅μ°°μ μ 곡
λ§μ΄ν¬λ‘μλΉμ€λ₯Ό λͺ©νλ‘ μΌλ μν°ν¨ν΄
κ°μ₯ νν μν°ν¨ν΄ μ€ νλλ λ§μ΄ν¬λ‘μλΉμ€ λμ
μ체λ₯Ό λͺ©νλ‘ μΌλ κ²
λ§μ μ‘°μ§λ€μ΄ λ§μ΄ν¬λ‘μλΉμ€κ° μ νμνμ§, λΉμ¦λμ€ λͺ©νμ μ΄λ»κ² μ°κ³λλμ§ λͺ
νν μ΄ν΄νμ§ λͺ»ν μ± μλλ¬ λμ
νλ €κ³ ν¨
κ²°κ³Ό:
- λΆνμν 볡μ‘μ±μΌλ‘ μΈν μμ λλΉ
- μΈ‘μ κ°λ₯ν μ΄μ λΆμ‘±
- μμ€ν
μ±λ₯κ³Ό μμ μ± μ ν κ°λ₯μ±
ν΄κ²°μ±
:
- λ§μ΄ν¬λ‘μλΉμ€ κ³ λ € μ λΉμ¦λμ€ λͺ©νλ₯Ό λͺ
νν μ μ
- νΉμ μꡬμ¬νμ λ§μ΄ν¬λ‘μλΉμ€κ° μ΅μ μ ν΄κ²°μ±
μΈμ§ νκ°
- μ€μ§μ μΈ μ΄μ μ μ 곡νλ μμμλ§ λ§μ΄ν¬λ‘μλΉμ€ ꡬν
μ‘°μ§μ μ€λΉ λΆμ‘±
μ‘°μ§μ μ€λΉ λΆμ‘±μ λ§μ΄ν¬λ‘μλΉμ€ λμ
μ μ±κ³΅μ λ°©ν΄νλ "μνλ¬Όμ§ κ°μ ν"μΌλ‘ λ³Ό μ μμ
λ§μ μ‘°μ§λ€μ΄ λ§μ΄ν¬λ‘μλΉμ€λ₯Ό ν¨κ³Όμ μΌλ‘ ꡬννκ³ κ΄λ¦¬νλ λ° νμν λ¬Έν, κΈ°μ , κ΄νμ΄ λΆμ‘±
μ‘°μ§ μ€λΉμ ν΅μ¬ μΈ‘λ©΄:
- μ격ν μ€κ³ κΈ°μ :Β κ°λ°μλ€μ μ μ μλ μλΉμ€ κ²½κ³μ APIλ₯Ό λ§λ€κΈ° μν κ°λ ₯ν μννΈμ¨μ΄ μ€κ³ κΈ°μ μ κ°μΆ°μΌ γ
ν¨
- νμ΅ λ¬Έν:Β λ§μ΄ν¬λ‘μλΉμ€ λμ
μλ μ€νκ³Ό νμ΅μ΄ μλ°λλ―λ‘, μ‘°μ§μ λ³νλ₯Ό μμ©νκ³ μ€ν¨λ₯Ό μ©μΈνλ λ¬Ένκ° νμν©λλ€.
- DevOpsμ ν ν ν΄λ‘μ§:Β μ±κ³΅μ μΈ λ§μ΄ν¬λ‘μλΉμ€ ꡬνμ μν΄μλ DevOps κ΄νμ μ±ννκ³ λμ¨νκ² κ²°ν©λ μμ¨μ μΈ κ°λ°μ μν ν ꡬμ±μ΄ νμν©λλ€.
ν΄κ²°μ±
:
- νμν κΈ°μ μ κ°μΆκΈ° μν κ΅μ‘κ³Ό λ©ν λ§μ ν¬μ
- νμ΅κ³Ό μ€νμ μ₯λ €νλ μμ±μ λ¬Έν μ‘°μ±
- λ§μ΄ν¬λ‘μλΉμ€λ₯Ό μ§μνλ DevOps κ΄νκ³Ό ν ꡬ쑰 λμ
μ μ λ
κΈ°μ μλ§ μ§μ€νλ μν°ν¨ν΄
λ λ€λ₯Έ νν μν°ν¨ν΄μ λ§μ΄ν¬λ‘μλΉμ€μ κΈ°μ μ μΈ‘λ©΄, νΉν λ°°ν¬ μΈνλΌμ κ³Όλνκ² μ§μ€νλ κ²
μ΄λ μ’
μ’
κ·Όλ³Έμ μΈ μν€ν
μ²μ μ‘°μ§μ κ³Όμ λ₯Ό ν΄κ²°νμ§ μμ μ± λ³΅μ‘ν λꡬμ νλ«νΌμ μ‘°κΈ° ν¬μνλ κ²°κ³Όλ₯Ό μ΄λ
κ²°κ³Ό:
- μ°¨λ³νλμ§ μμ κ³Όλν μμ
- μ μ¬μ μΌλ‘ λΆμ ν©ν κΈ°μ μ μ‘°κΈ° ν¬μ
- μ€μν μλΉμ€ μ€κ³μ API κ³ λ €μ¬ν μν
ν΄κ²°μ±
:
- λ¨Όμ μλΉμ€ λΆν΄μ μ μμ μ§μ€
- μ΄κΈ° μλΉμ€λ₯Ό μ§μνκΈ° μν μ΅μνμ μΈνλΌ κ΅¬μΆ
- κ²½νμ΄ μμμ λ°λΌ κΈ°μ μ€νμ μ μ§μ μΌλ‘ λ°μ
λ λ§μμλ‘ μ’λ€λ μν°ν¨ν΄
"λ λ§μμλ‘ μ’λ€"λ μν°ν¨ν΄μ μ‘°μ§μ΄ μλΉμ€κ° λ§μμλ‘ νμ λ μ’λ€κ³ μλͺ» λ―Ώμ΄ μ§λμΉκ² μΈλΆνλ λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²λ₯Ό λ§λ€ λ λ°μ
κ²°κ³Ό:
- κ°λ°, ν
μ€νΈ, λ°°ν¬μ 볡μ‘μ± μ¦κ°
- μλΉμ€ λ΄λΆμ 볡μ‘μ±μ΄ μλΉμ€ κ° λ³΅μ‘μ±μΌλ‘ μ΄λ
- λμ λ³κ²½μ΄ νμν λ°μ νκ² κ²°ν©λ μλΉμ€ λ°μ κ°λ₯μ±
ν΄κ²°μ±
:
- κΈ°λ³Έμ μΌλ‘ νλΉ νλμ μλΉμ€λ‘ μμ
- νΉμ λ¬Έμ λ₯Ό ν΄κ²°ν λλ§ μΆκ° μλΉμ€ μ μ
- μλΉμ€λ νμ΄ κ΄λ¦¬νκΈ° λ무 컀μ§λ©΄ λΆν
κ±·κΈ°λ μ μ λ λ €κ³ νλ μν°ν¨ν΄
μ΄ μν°ν¨ν΄μ κΈ°λ³Έμ μΈ μννΈμ¨μ΄ κ°λ° κ΄νμ λ¨Όμ μλ¬νμ§ μμ μ± λ§μ΄ν¬λ‘μλΉμ€λ₯Ό λμ
νλ €λ μλλ₯Ό λ»ν¨
ν΅μ¬ κΈ°λ³Έ μ¬ν:
- ν΄λ¦° μ½λ
- μλνλ ν
μ€ν
- μ’μ μ€κ³ κ΄ν (μ: OOD, DDD)
κ²°κ³Ό:
- μλͺ» μ€κ³λ λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²
- ν
μ€νΈ μλν λΆμ‘±μΌλ‘ μΈν μμ μ± λ¬Έμ
- μννΈμ¨μ΄λ₯Ό λΉ λ₯΄κ³ μμ£Ό μ 곡νλ λ₯λ ₯ κ°μ
ν΄κ²°μ±
:
- ν΄λ¦° μ½λ κ΄ν μμ© λ° κ°μ
- κ°λ°μ ν΅μ¬ λΆλΆμΌλ‘ μλνλ ν
μ€ν
ꡬν
- λλ©μΈ μ£Όλ μ€κ³μ κ°μ μμμ μ€κ³ κΈ°μ κ΅μ‘μ ν¬μ
μ°λ°μ λμ
μν°ν¨ν΄
μ°λ°μ λμ
μ μΌκ΄λ μ λ΅μ΄λ λ‘λ맡 μμ΄ λ§μ΄ν¬λ‘μλΉμ€λ₯Ό 무κ³νμ μΌλ‘ ꡬννλ κ²μ λ»ν¨
κ²°κ³Ό:
- μ‘°μ§ μ 체μ μΌκ΄μ± μλ μν€ν
μ²
- λ€μν λ§μ΄ν¬λ‘μλΉμ€ ꡬν κ΄λ¦¬μ μ μ§λ³΄μμ μ΄λ €μ
- κΈ°μ λΆμ± μ¦κ°μ ν΅ν© κ³Όμ λ°μ κ°λ₯μ±
ν΄κ²°μ±
:
- λΉμ¦λμ€ λͺ©νμ λΆν©νλ λͺ
νν λ§μ΄ν¬λ‘μλΉμ€ λμ
μ λ΅ μ립
- λ§μ΄ν¬λ‘μλΉμ€λ‘μ μ μ§μ , ν΅μ λ λ§μ΄κ·Έλ μ΄μ
μ μν λ‘λ맡 μμ±
- μ‘°μ§ μ 체μ λ§μ΄ν¬λ‘μλΉμ€ κ°λ°μ μν νμ€κ³Ό λͺ¨λ² μ¬λ‘ μ립
μλ-ν¬-μλ ν
μ€ν
ν¨μ
λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²μμ μλ-ν¬-μλ ν
μ€ν
μ κ³Όλνκ² μμ‘΄νλ©΄ "λΆμ° λͺ¨λ리μ€"λ₯Ό μ΄λνκ³ λ§μ΄ν¬λ‘μλΉμ€μ λ§μ μ΄μ μ μμν μ μμ
κ²°κ³Ό:
- ν
μ€ν
λ³λͺ©μΌλ‘ μΈν λ°°ν¬ λΉλ κ°μ
- ν
μ€νΈμ 볡μ‘μ±κ³Ό μ·¨μ½μ± μ¦κ°
- μλΉμ€μ λ
립μ λ°°ν¬ κ°λ₯μ± μμ€
ν΄κ²°μ±
:
- μλΉμ€ μμ€ ν
μ€ν
κ³Ό κ³μ½ ν
μ€νΈμ μ§μ€
- λ
립μ μΌλ‘ λ°°ν¬ λ° ν
μ€νΈ κ°λ₯ν μλΉμ€ μ€κ³
- μλ-ν¬-μλ ν
μ€νΈλ μ€μν μ¬μ©μ μ¬μ μ νν΄ μ νμ μΌλ‘ μ¬μ©
κ²°λ‘
λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ² λμ
μ μλΉν μ΄μ μ μ 곡ν μ μμ§λ§, μ μ€ν κ³ν, μ€λΉ, μ€νμ΄ νμ
μ΄λ¬ν νν μν°ν¨ν΄μ νΌνκ³ μ‘°μ§μ , κΈ°μ μ κ³Όμ λ₯Ό ν΄κ²°ν¨μΌλ‘μ¨ κΈ°μ
μ λ§μ΄ν¬λ‘μλΉμ€ λμ
μ±κ³΅ κ°λ₯μ±μ λμΌ μ μμ
μ£Όμ μμ¬μ :
- λ§μ΄ν¬λ‘μλΉμ€ λμ
μ λͺ
νν λΉμ¦λμ€ λͺ©νμ μ°κ³
- λ¬Ένμ , κΈ°μ μ μΌλ‘ μ‘°μ§μ μ€λΉ
- κΈ°μ λ³΄λ€ μλΉμ€ μ€κ³μ λΆν΄μ λ¨Όμ μ§μ€
- κ΄λ¦¬ κ°λ₯ν μμ μλΉμ€λ‘ μμνμ¬ μ μ§μ μΌλ‘ λ°μ
- κΈ°λ³Έμ μΈ μννΈμ¨μ΄ κ°λ° κ΄ν μλ¬
- μΌκ΄λ λμ
μ λ΅κ³Ό λ‘λ맡 κ°λ°
- κ΄λ²μν μλ-ν¬-μλ ν
μ€ν
λ³΄λ€ μλΉμ€ μμ€ ν
μ€ν
μ°μ