IT 개발 관련/[Spring]

[Spring] MSA(MicroService Architecture) 란?

Baileyton 2024. 6. 27. 14:54
728x90

마이크로서비스 아키텍처 (MSA) 란?

마이크로서비스 아키텍처(MSA)는 소프트웨어 애플리케이션을 여러 개의 작은, 독립적으로 배포 가능한 서비스로 구성하는 소프트웨어 개발 접근 방식입니다. 이 아키텍처는 최근 몇 년간 소프트웨어 개발에서 큰 인기를 얻고 있으며, 특히 대규모 시스템의 유연성, 확장성 및 유지보수성을 향상시키는 데 유용합니다.

 

특징

  • 느슨한 결합도 : MSA는 느슨하게 결합되어 있어, 각 서비스가 독립적으로 동작하고, 다른 서비스에 최소한의 영향을 미칩니다.
  • 독립적 배포 : 각 서비스는 독립적으로 배포될 수 있어, 시스템의 일부분만 수정하고 배포할 수 있습니다.
  • 특정 기능 수행 : 각 서비스는 특정 기능을 수행하도록 설계되어, 단일 책임 원칙(Single Responsibility Principle)을 따릅니다.
  • API 통신 : 서비스 간의 통신은 명확히 정의된 API를 통해 이루어져, 서비스 간의 상호작용이 일관되고 명확합니다.
  • 독립적 개발 : 각 서비스는 독립적으로 개발될 수 있어, 개발 팀이 서로 다른 기술 스택을 사용하거나, 다른 개발 속도로 작업할 수 있습니다.

장점

  • 유연성 : 각 서비스가 독립적이므로, 시스템의 일부분만 수정하고 테스트할 수 있어 유연성이 향상됩니다.
  • 확장성 : 특정 서비스만 확장하거나 축소할 수 있어, 시스템 자원의 효율적인 관리가 가능합니다.
  • 유지보수성 : 작은 서비스 단위로 관리되므로, 코드베이스가 더 작고 이해하기 쉬워 유지보수가 용이합니다.
  • 배포의 용이성 : 서비스별로 독립적인 배포가 가능하여, 한 서비스의 배포가 다른 서비스에 영향을 미치지 않습니다.

단점

  • 복잡성 증가 : 서비스가 많아지면서, 서비스 간의 통신 및 데이터 일관성 유지 등 관리 포인트가 늘어납니다.
  • 네트워크 오버헤드 :서비스 간의 통신이 네트워크를 통해 이루어지므로, 네트워크 오버헤드가 발생할 수 있습니다.
  • 데이터 관리의 어려움 :각 서비스가 독립적으로 데이터베이스를 관리하기 때문에, 데이터 일관성을 유지하기 어려울 수 있습니다.

 

728x90