Cloud/MSA

[MSA] Monolithic vs MSA

문승주 2023. 7. 23. 23:44
반응형

본 내용은 인프런의 이도원 님의 강의 "Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)" 내용을 바탕으로 정리한 내용입니다.

 

Monolithic Architecture (모놀리식 아키텍처)

  • 모놀리식 아키텍처는 모든 로직이 하나의 큰 애플리케이션으로 패키지 되어 있는 전통적인 아키텍처 서비스이다.
  • 애플리케이션에서 사용하는 데이터가 한곳에 모여 서비스되는 형태이다.

장점

  • 개발 및 테스트가 단순하고 쉽다.
  • 배포와 확장이 단순하며, 통합이 용이하다.
  • 작은 규모의 프로젝트에 적합히다.

단점

  • 큰 규모의 애플리케이션은 유지 보수가 어렵다.
  • 하나의 모듈에 오류가 발생하면 전체 시스템에 영향을 미칠 수 있다.
  • 대규모 팀이 협업할 때 충돌 가능성이 높다.

 

Microservices Architecture (MSA, 마이크로서비스 아키텍처)

  • MSA는 애플리케이션을 여러 개의 작은 독립적인 서비스로 분리하는 아키텍처 패턴이다.
  • 독립적으로 배포, 확장 및 관리될 수 있다.
  • 각 서비스는 특정 비즈니스 기능을 담당하며, 서로간에는 API를 통해 통신한다.
  • 이렇게 하면 각 서비스는 느슨한 결합을 가지게 되어, 한 서비스의 변경이 다른 서비스에 영향을 미치지 않는다.

장점

  • 높은 확장성과 유연성을 제공하여 대규모 애플리케이션에 적합하다.
  • 특정 기능을 담당하는 작은 팀이 개별 서비스를 독립적으로 개발하고 관리할 수 있다.
  • 기술 스택과 데이터베이스 선택의 자유도가 높다.

단점

  • 개발과 운영에 추가적인 복잡성이 발생한다.
  • 서비스 간 통신을 위한 오버헤드가 발생할 수 있다.
  • 모든 서비스가 정상적으로 동작해야 전체 시스템이 정상적으로 작동한다.

 

 

어떤 아키텍처를 선택할지는 프로젝트의 크기, 복잡성, 요구사항, 팀의 기술 수준 등 다양한 요소에 따라 달라진다. 작은 규모의 프로젝트에서는 모놀리식 아키텍처를 고려할 수 있고, 대규모이거나 복잡한 시스템에서는 MSA가 더 적합할 수 있다. 최근에는 MSA가 더 인기를 끌고 있으며, 기업들이 점차 MSA로의 전환을 추구하는 추세를 보이고 있다.

반응형