랄라
MSA와 MA의 정의 본문
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 |