Skip to content

Latest commit

 

History

History
22 lines (13 loc) · 2.01 KB

Monolithic_vs_Microservices.md

File metadata and controls

22 lines (13 loc) · 2.01 KB

Monolithic vs Microservices

Monolithic

monolithic이란 거대한 하나의 바위와 같은 형태를 의미한다. 애플리케이션을 구축하는 전통적인 방법이다.

Monolithic 방식은 하나의 소프트웨어에 복잡한 로직들이 모두 들어있다. 필요한 데이터는 모든 로직이 공유하는 하나의 데이터베이스에 저장된다.

Microservices

Microservices 방식은 소프트웨어를 서로 독립된 단일 기능으로 분할하고 그것들을 연결시켜 전체 기능을 구현한다.

각각의 단일 기능(마이크로서비스)들은 인스턴스와 데이터가 모두 독립되어 있다. 따라서 개별적으로 변경이나 교체가 가능하며, 마이크로서비스별 다른 팀에서 대응할 수 있다.

비교

쇼핑몰 웹 사이트 소프트웨어는 고객 관리, 주문 관리, 재고 관리 등의 기능들로 구현된다.

일반적인 주문 처리의 경우 Monolithic, Microservices 모두 문제없이 처리한다. 하지만 결제 방법이나 상품 주문 과정이 바뀌는 경우 Monolithic 방식은 변경의 규모와 관계없이 소프트웨어 전체를 다시 검토하고 만들어야 한다. 또한, 변경이 많아질수록 깔끔했던 로직의 역할 분담이 애매해지는 경우가 생기며 유지 보수 또한 어려워진다. 게다가 주문이 갑작스럽게 증가하는 경우 부하가 늘어난 로직만 처리 능력을 높일 수 없기 때문에 인스턴스를 늘려서 대응하게된다. 따라서 비즈니스 환경이 자주 바뀌거나 부하 변동을 예측할 수 없을 때 쉽게 대응할 수 없다.

Microservices 방식은 각각의 단일 기능이 완전히 독립되기 때문에 개별적으로 변경, 실행이 가능하다. 한 마이크로서비스의 변경이 다른 곳에 영향을 미치지 않기 때문에, 처리량의 증가에도 즉시 대처할 수 있다.

참고

https://www.n-ix.com/microservices-vs-monolith-which-architecture-best-choice-your-business/