Microservice Architecture의 약자로 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 개발, 배포, 유지보수를 용이하게 하는 소프트웨어 아키텍처 스타일이다.
서비스 간의 통신은 주로 HTTP/HTTPS, 메시지 큐 등을 통해 이루어 진다.
모놀리틱 아키텍처와 비교를 해보자
모놀리틱 아키텍처는 모든 기능이 하나의 애플리케이션 내에 포함되어 하나의 큰 코드베이스로 구성된 애플리케이션이다.
작업하는 하나의 프로젝트에 회원, 주문 등등 작업하는 것이다.
- 장점 : 모든 코드가 하나의 코드베이스에 포함되어 있어서 배포가 간단하다, 하나의 DB를 사용하여 데이터 일관성을 쉽게 유지할 수 있다.
- 단점 : 특정 기능을 확장하려면 전체 애플리케이션을 확장해야함, 작은 변경 사항도 전체 애플리케이션을 다시 배포해야함, 새로운 기술 도입이 어렵고, 특정 모듈에 종속적이다.
마이크로서비스 아키텍처는 여러 개의 독립적인 서비스로 구성된 애플리케이션으로 각 서비스는 비즈니스 로직을 수행한다.
- 장점 : 특정 서비스만 확장하여 성능 최적화 가능, 개별 서비스의 변경 사항을 독립적으로 배포 가능, 서비스별로 적합한 기술 스택을 선택할 수 있다.(Django, Node.js 등등)
- 단점 : 서비스 간 통신, 데이터 일관성 유지 등의 복잡성이 증가, 각 서비스의 모니터링, 로깅 등을 개별적으로 관리해서 운영비용이 증가한다.
ex) 하나의 주문이 들어오면 해당 상품이 있는지 확인해야하고, 어떤 사용자가 주문했는지 확인해야 하는 경우
결론
어떤 아키텍처를 사용하기 전에 상황에 맞게 각각의 장·단점을 잘 활용할 수 있는 아키텍처를 사용해야겠다!🖐️
'🔥스파르타 TIL (MSA)' 카테고리의 다른 글
Spring Cloud 란? (3) - 서킷 브레이커 (1) | 2025.03.08 |
---|---|
Eureka 서버 사용해보기 (1) | 2025.03.08 |
Spring Cloud 란? (4) - API Gateway (0) | 2025.02.11 |
Spring Cloud 란? (2) - 클라이언트 사이드 로드 밸런싱 (0) | 2025.02.08 |
Spring Cloud 란? (1) (0) | 2025.02.08 |