마이크로서비스 아키텍쳐 (MSA) 본문
마이크로서비스 아키텍쳐
마이크로서비스 아키텍쳐(MicroService Architecture)는 MSA 라고도 불린다.
마이크로서비스는 정확히 콕 짚어 무엇이라 정의할 수는 없지만,
작고도 독립적으로 배포가 가능한 '각각의 기능'을 수행하는 서비스로 구성된 프레임워크라고 볼 수 있다고 한다.
각각의 서비스마다 서버를 열어 관리하는 방식으로 이해하는 것이 편하다.
모놀리식 아키텍쳐
마이크로서비스 아키텍쳐의 반대 개념은 모놀리식 아키텍쳐인데,
모놀리식 아키텍쳐는 각 기능이 독립적으로 수행되는 것이 아닌
한 프로젝트 안에서 단일 서비스로 실행되게 구현한 아키텍쳐를 말한다.
모든 프로세스는 각 기능들이 긴밀히 연결되어 있기 때문에 복잡하고,
한 서비스에 대한 수요가 급증할 경우 해당 아키텍쳐 전체를 확장해야 한다는 단점을 가지며
새로운 기능을 추가하거나 실험하기에 쉽지 않다.
때문에 위와 같은 단점을 타파하고자 마이크로서비스 아키텍쳐가 등장했다.
마이크로서비스 아키텍쳐 특징
1. 마이크로서비스 아키텍쳐는 API를 통해서만 서로 상호작용이 가능하다.
각각의 서비스끼리 상호간의 접근점을 두고, 서로 재사용하는 것이 가능하다는 의미기도 하다.
예시로, DB 내 한 유저의 데이터를 파악하는 service1이 있다고 한다면,
유저의 정보를 업데이트를 하는 service2 에서, service1를 활용할 수 있다는 얘기다.
2. 각각의 서비스가 작고도 독립적인 기능을 수행하다 보니, 유지 보수가 쉽고,
다수의 개발자가 각각 맡게 된 service만 구현하면 되니 작업속도 & 배포가 빠르다는 장점이 있다.
하지만 그만큼 독립적인 기능들이 나뉘어져 있기 때문에 복잡하다는 단점 또한 가질 뿐더러,
결제와 같이 빈틈없이 수행해야 할 기능에 있어서는 따로 트랜잭션을 구현해줘야 한다는 단점도 가진다.
2023.02.13 - [코딩/알쓸코잡] - 트랜잭션(Transaction) & ACID
'개발 > 알쓸코잡' 카테고리의 다른 글
DNS / Load Balancer (0) | 2023.02.22 |
---|---|
TDD (Test Driven Development) (0) | 2023.02.22 |
logout process 과정 (0) | 2023.02.19 |
이미지 업로드 프로세스 (0) | 2023.02.15 |
트랜잭션(Transaction) & ACID (0) | 2023.02.13 |