랄라

MSA와 MA의 정의 본문

내일배움캠프/공부정리

MSA와 MA의 정의

devdaeun 2025. 2. 7. 00:42

Microservices Architecture (MSA)

하나의 어플리케이션을 각각의 기능에따라 여러개의 독립적인 서비스로 분할하여

개발 및 유지보수를 원활하게하도록 돕는 소프트웨어 아키텍처 스타일.

*하나의 기능을 가진 작은 앱 들이 모여하나의 큰 앱으로 동작.

 

장점

  • 각 서비스는 독립적으로 배포(버전 업데이트)가 가능하며 다른서비스의 변경에 영향을 받지않고 개발이 가능하다.
  • 서비스가 분리되어있어 기술스택을 다양하게 사용할 수 있다.
  • 각 서비스별로 데이터베이스 분리가 가능하며, 대규모 데이터를 원활하게 저장할 수 있다.

단점

  • 데이터베이스가 분리되어있기때문에 데이터 불일치가 발생할 수 있다.
  • 관리 비용, 코드의 복잡성 증가.
  • 기능에 따라 앱이 분리가되어있기때문에 서버 간의 통신이 원활하지않을경우 네트워크 지연이 발생할 수 있다.

Monolithic Architecture (MA)

MSA 와 반대되는 전통적인 구조, 하나의 큰 애플리케이션 안에 모든 기능을 구현하였으며,

하나의 데이터베이스로 모든 데이터를 관리하는 스타일.

*하나만 실행해도 다양한 기능사용가능

 

 

장점

  • 소규모의 개발을 진행하는경우 유용하며, 코드수정이 쉽고 배포가 간편하다.
  • 데이터베이스가 하나여서 데이터의 일관성 유지가 간편하다.
  • 오류발생시 단일 코드로 구성되어있기때문에 원인 위치파악을 손쉽게 할 수있다.

단점

 

  • 모든서비스의 내용이 함께 배포된다.
  • 사용자가 많아지는경우 속도가 느려진다.
  • 하나의 값을 수정할경우 다른코드에 영향이 가지않도록 고려가 필요하다.

 

 

 

'내일배움캠프 > 공부정리' 카테고리의 다른 글

RestTemplate  (0) 2025.02.11
Spring Cloud  (1) 2025.02.07
AWS 배포중 발생한 오류 해결 (80포트 접속 불가능)  (0) 2025.02.05
Validation  (0) 2025.02.05
Spring Security와 주요기능  (0) 2025.02.05