Monolithic vs Microservices
μμ€ν μ ꡬμΆνλ λ°©μμ ν¬κ² λͺ¨λ리μ μν€ν μ²μ λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²(Microservice Architecture, MSA)λ‘ λλ μ μλ€.
λͺ¨λ리μ μν€ν
μ²(Monolithic Architecture)
λͺ¨λ리μ μν€ν μ²λ μμ€ν μ λͺ¨λ κΈ°λ₯μ΄ νλμ μ ν리μΌμ΄μ μ ν΅ν©λ ꡬ쑰λ‘, λͺ¨λ λ‘μ§μ΄ λ¨μΌ νλ‘μΈμ€ λ΄μμ μ€νλλ©°, λ°°ν¬ λ¨μλ νλλ€.
μ΄κΈ° κ°λ° μλκ° λΉ λ¦
λͺ¨λ μ½λκ° νκ³³μ μμ΄ λ‘μ§ μΆμ κ³Ό ν΅ν© ν μ€νΈ μ©μ΄
νμ§λ§ μμ€ν κ·λͺ¨κ° 컀μ§κ³ λΉμ¦λμ€κ° 볡μ‘ν΄μ§λ©΄ λͺ¨λ리μ ꡬ쑰λ μ¬λ¬ νκ³μ λΆλͺνλ€.
λ°°ν¬μ κ²½μ§μ±: μμ μ½λ μμ μΌλ‘ μ 체 μμ€ν μ λΉλ, ν μ€νΈ, λ°°ν¬λ₯Ό λ€μ μ λ°
λΉν¨μ¨μ μΈ νμ₯μ±: νΉμ κΈ°λ₯(μ: κ²μ)μλ§ νΈλν½μ΄ λͺ°λ €λ μμ€ν μ 체λ₯Ό 볡μ νμ¬ νμ₯(Scale-out) νμ
κΈ°μ μ€νμ μ’ μμ±: νλ² μ ν΄μ§ κΈ°μ μ€ν λ³κ²½ λ° μλ‘μ΄ κΈ°μ μ λμ μ μ΄λ €μ
κ°λ° λ³λͺ©: μ¬λ¬ νμ΄ νλμ κ±°λν μ½λλ² μ΄μ€λ₯Ό λμμ μμ μΌλ‘ μΈν μΆ©λκ³Ό μ‘°μ λΉμ© μ¦κ°
λ§μ΄ν¬λ‘μλΉμ€ μν€ν
μ²(Microservice Architecture, MSA)
λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²λ νλμ ν° μ ν리μΌμ΄μ μ μ¬λ¬ κ°μ μμ μλΉμ€λ‘ λΆλ¦¬νλ μ κ·Ό λ°©μμ΄λ€.
ν΅μ¬ μμΉ
λ¨μΌ μ± μ μμΉ: κ° μλΉμ€λ κ³ μ ν λΉμ¦λμ€ μμ(λλ©μΈ)μ λν μ± μμ κ°μ§
λλ©μΈ μ£Όλ μ€κ³(DDD)μ λ°μ΄λλ 컨ν μ€νΈ(Bounded Context) κ°λ κ³Ό μ μ¬
λ 립μ μΈ λ°°ν¬: μλΉμ€λ μλ‘ λ 립μ μΌλ‘ κ°λ°, ν μ€νΈ, λ°°ν¬ κ°λ₯
λ°μ΄ν°λ² μ΄μ€ λΆλ¦¬: κ° μλΉμ€λ μμ λ§μ λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ νλ κ²μ μ§ν₯(μλΉμ€ κ° κ°ν κ²°ν© λ°©μ§)
κΈ°μ λ€μμ±: κ° μλΉμ€μ κ°μ₯ μ ν©ν νλ‘κ·Έλλ° μΈμ΄, νλ μμν¬, λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ λ‘κ² μ ν κ°λ₯
μ₯μ
μ νμ νμ₯μ±: νΈλν½μ΄ λͺ°λ¦¬λ νΉμ μλΉμ€(μ: κ²°μ )λ§ μ νμ μΌλ‘ νμ₯ν μ μμ΄ μμ ν¨μ¨μ± κ·Ήλν
λΉ λ₯Έ λ°°ν¬ μ£ΌκΈ°: κ° νμ΄ λ§‘μ μλΉμ€λ₯Ό λ 립μ μΌλ‘ λΉ λ₯΄κ² λ°°ν¬ κ°λ₯
μ₯μ 격리: νλμ μλΉμ€μ μ₯μ κ° λ°μνλλΌλ, ν΄λΉ μ₯μ κ° μμ€ν μ 체μ μ€λ¨μΌλ‘ μ΄μ΄μ§λ κ²μ λ°©μ§ κ°λ₯
νμ μμ¨μ±: μμ νμ΄ νΉμ μλΉμ€μ μ 체 λΌμ΄νμ¬μ΄ν΄μ μ± μμ§λ©°, μμ¬κ²°μ μλ ν₯μ
MSAκ° λ§μ£Όνλ μλ‘μ΄ λμ κ³Όμ
MSAκ° λͺ¨λ리μμ λ¬Έμ λ₯Ό ν΄κ²°νμ§λ§, λΆμ° μμ€ν κ³ μ μ 볡μ‘μ±μ μλ‘κ² λ§λ€μ΄λΈλ€.
λΆμ° νΈλμμ κ³Ό λ°μ΄ν° μΌκ΄μ±
μλΉμ€λ§λ€ λ°μ΄ν°λ² μ΄μ€κ° λΆλ¦¬λλ©΄, μ¬λ¬ μλΉμ€μ κ±ΈμΉ λ°μ΄ν° λ³κ²½μ νλμ νΈλμμ μΌλ‘ λ¬Άμ μ μμ
SAGA ν¨ν΄μ μ¬μ©ν΄ μ΅μ’ μΌκ΄μ±(Eventual Consistency)μ λ§μΆκ±°λ, νΈλμμ λ μμλ°μ€ ν¨ν΄ λ± νμ©
λ€νΈμν¬ ν΅μ κ³Ό μ₯μ μ ν
REST APIλ gRPC κ°μ λκΈ°μ νΈμΆμ νλμ μλΉμ€ μ§μ°μ΄λ μ₯μ κ° νΈμΆν μλΉμ€μ μ°μμ μΌλ‘ μ ν κ°λ₯
μ₯μ κ° λ°μν μλΉμ€λ₯Ό μΌμμ μΌλ‘ μ°¨λ¨νλ μν· λΈλ μ΄μ»€ ν¨ν΄ λμ νμ
μλΉμ€ νμ (Service Discovery)
μλ§μ μλΉμ€κ° λμ μΌλ‘ μμ±λκ³ μ§λ νκ²½μμ κ° μλΉμ€μ μμΉ(IP, Port)λ₯Ό κ΄λ¦¬νλ λ©μ»€λμ¦ νμ
Eureka, Consul κ°μ μλΉμ€ λμ€μ»€λ²λ¦¬ λꡬ νμ©
μ΄μ λ° λͺ¨λν°λ§μ 볡μ‘μ±
λ°°ν¬, λͺ¨λν°λ§, λ‘κΉ , μ€μ κ΄λ¦¬κ° λͺ¨λ λΆμ°λμ΄ λ³΅μ‘λκ° κΈ°νκΈμμ μΌλ‘ μ¦κ°
νλμ μμ²μ μΆμ νκΈ° μν΄ μ¬λ¬ μλΉμ€μ λ‘κ·Έλ₯Ό μ°κ²°νλ λΆμ° μΆμ μμ€ν νμ
Last updated
Was this helpful?