1. 마이크로서비스 아키텍처(Microservice Architecture)란?
- 애플리케이션이 서비스 모음으로 개발되는 애플리케이션 아키텍처의 한 유형
- 마이크로서비스를 사용하면 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있다.
- 마이크로서비스 기반 애플리케이션은 단일 사용자 요청을 처리하기 위해 여러 내부 마이크로서비스를 호출하여 응답을 작성할 수 있다.
2. 마이크로서비스 아키텍처의 용도
- 일반적으로 개발 속도 및 성능을 지속적으로 높여 나갈 수 있어서 변화하는 비지니스 요구를 충족할 수 있다.
- 자바를 사용하여 빌드된 마이크로서비스 아키텍처 중에서도 특히 Spring Boot 아키텍처가 일반적이다.
- 마이크로서비스와 서비스 지향 아키텍처를 비교하는 것도 일반적
* 둘 모두 모놀리틱(Monolithic) 애플리케이션을 더 작은 구성요소로 세분화하는 것이 목표지만, 접근 방식은 서로 다르다.
장점 | 단점 | |
모놀리틱 아키텍처 | - 개발 초기의 단순한 구조로 개발 용이 - E2E 테스트 용이 |
- 긴 빌드, 배포 시간 - 장애 문제 처리 어려움 - 유지보수 어려움 - 개발 언어 변경 어려움 |
마이크로서비스 아키텍처 | - 빠른 서비스 개발 / 출시 시간의 단축 - 유연한 확장 - 서비스별 독립적 배포 가능 - 안정적인 서비스 운영 |
- 상대적인 복잡성 - 트랜잭션 유지의 어려움 - API 관리의 중요성 증가 |
3. 마이크로서비스 아키텍처의 특징
1) 독립된 하나의 모듈에서 발생한 장애는 전체 애플리케이션에 크게 영향을 미치지 않는다.
2) 모듈 간의 의존도가 낮아 서로 다른 기술 스택을 사용할 수 있다.
3) 각 마이크로서비스를 독립적으로 배포하는 것이 용이하다.
4. 마이크로서비스 아키텍처 예시
a. 웹사이트 마이그레이션
: 모놀리틱 플랫폼에서 호스팅되는 복잡한 웹 사이트는 클라우드 기반 및 컨테이너 기반 마이크로서비스 플랫폼으로 마이그레이션할 수 있다.
b. 미디어 콘텐츠
: 마이크로서비스 아키텍처를 사용하여 이미지 및 동영상 애셋을 확장가능한 객체 스토리지 시스템에 저장하고 웹 또는 모바일에 직접 제공할 수 있다.
c. 트랜잭션 및 인보이스
: 결제 처리 및 주문은 독립적인 서비스 단위로 구분할 수 있으므로 인보이스 발행이 작동하지 않는 경우에도 계속해서 결제가 허용된다.
d: 데이터 처리
: 마이크로서비스 플랫폼은 기존의 모듈형 데이터 처리 서비스를 위해 클라우드 지원을 확장할 수 있다.
📚 참고자료
'배워서 남 주자' 카테고리의 다른 글
모노레포(Monorepo)란? (0) | 2023.07.22 |
---|---|
Ant Design DatePicker localization 한글화 이슈 (0) | 2023.07.21 |
노션 페이지를 웹사이트로 만들어주는 무료 서비스 - super.so (0) | 2023.06.16 |
import 구문을 자동 정렬할 수 있는 lint (0) | 2023.06.11 |
프로그래머스 Lv.1 | 키패드 누르기 (JavaScript) (0) | 2023.06.08 |