MSA란
마이크로 서비스 아키텍처는 작고 독립적인 서비스들의 집합으로 구성된 애플리케이션 구조이다.
모놀로식 아키텍처와 마이크로 서비스 아키텍처 비교 및 장단점
모놀로식 아키텍처
- 모놀로식 아키텍처는 전통적인 개발 방식으로 하나의 프로젝트에 모든 기능을 함께 포함합니다. 이렇게 하면 코드 베이스가 커질수록 개발 및 배포에 복잡성이 증가합니다.
- 모놀로식 아키텍처의 경우 모듈 단위로 쪼개는 것이 아닌 하나의 프로젝트로 전체 애플리케이션을 묶어서 개발하는 방식입니다.
- 위의 경우 회원, 상품, 주문 뿐 아니라 여러 개의 비즈니스 로직이 추가된다면 코드베이스가 커지게 되는 구조입니다.
- 모놀로식 아키텍처 장단점
- 장점
- 초기 개발에 유리하며 빠르게 프로토 타입을 개발할 수 있스빈다.
- 필요한 모든 기능을 한 번만 호출하기 때문에 복잡한 통신 없이 직접 사용할 수 있습니다.
- 단점
- 코드 베이스가 커질수록 복잡해지고 유지관리 및 확장이 어려워집니다.
- 일부 기능을 수정하거나 업데이트를 하려면 전체 애플리케이션을 재배포해야합니다.
- 장점
- 모놀로식 아키텍처를 사용하기에 적합한 상황
- 간단한 소규모 프로젝트 (사이드 프로젝트)
- 프로토 타입 제작 및 단기 프로젝트
마이크로 서비스 아키텍처
- MSA는 여러 개의 작은 서비스로 구성되어 각 서비스가 독립적으로 개발되고 배포되는 구조입니다.
- MSA로 구성되어 있는 애플리케이션의 경우 전체 시스템이 분산되어 있어 개발, 배포가 독립적으로 가능하며 확장성과 유지관리가 용이해집니다.
- MSA의 겨우 애플리케이션을 작은 독립적인 서비스로 분리하고, 각 서비스는 모듈 또는 프로젝트로 나눠서 개발 및 관리를 진행합니다. 이렇게 개발을 진행할 경우 독립적으로 개발 및 배포가 가능하여 개별적인 배포 주기를 가질 수 있습니다.
- MSA의 장단점
- 장점
- 서비스 간 독립성으로 인해 확장성과 유연성이 높아집니다.
- 기능 고립성이라는 특징 때문에 일부 서비스가 실패하더라도 전체 시스템에 큰 영향을 미치지 않습니다.
- 단점
- 서비스 간 통신이 필요하며, 서로 간 연결 구축 및 관리의 복잡성이 증가합니다.
- 초기 개발 및 통신 등에 시간이 소요됩니다.
- 장점
- MSA를 사용하기에 적합한 상황
- 대규모 및 복잡합 프로젝트
- 시스템을 독립적으로 개발하고 확장해야 하는 경우
'Programming' 카테고리의 다른 글
[Programming] - 함수형 프로그래밍이란? (0) | 2024.03.20 |
---|---|
[Programming] - 객체지향 프로그래밍이란? (0) | 2024.03.20 |
[Notion] - Notion 키보드 및 마크다운 단축키 (1) | 2024.02.18 |
[Notion] - Notion 사용법 & 단축키 (0) | 2024.02.15 |
[Programming] - 애자일이란 (1) | 2023.11.13 |