서비스의 비지니스나 팀구성등의 환경에 따라 MA 또는 MSA가 더 나은 아키텍쳐 일수 있음
단순히 일반적인 상황에서 특징을 비교했을 뿐 실제 아키텍쳐는 서비스에 맞게 설계가 필요하다고 봄
Monolithic Architecture
개념
- 전통적인 웹 개발 아키텍쳐로, 하나의 어플리케이션 내에 모든 로직이 들어가 있는 통짜 구조를 의미
- 일반적으로 하나의 서비스에 데이터 베이스, 백엔드, 프론드엔드가 포함되어 있음
장점
- 하나의 어플리케이션만 개발하면 되어 간편
- 로컬환경에서 개발이 용이
- 배포 및 테스트가 쉬움
단점
대용량 서비스가 되었을때
- 빌드와 배포가 오래 걸림
- 코드의 수정 및 추가가 힘듬
- 효율적인 자원 관리가 힘듬
- scale out이 불가능
Micro Service Architecture
개념
- 대용량 서비스를 위해 정의된 아키텍쳐
- 서비스 간 통신은 일반적으로 Rest API로 이뤄짐
장점
대용량 서비스가 되었을때
- 각 서비스가 독립적이기 때문에 배포가 유연해짐
- 부하가 많은 특성 서비스만 확장할 수 있으므로 확장성이 좋음
- 팀 또는 기능간의 의존성이 제거됨
단점
- 서비스간의 의존성이 있는 기능의 경우 테스트가 어려움
- 서비스간 호출을 API로 하기 때문에 성능상 문제가 생김
참고문서
https://www.slideshare.net/awskorea/aws-77558771
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 Aws가 제안하는 서버리스 아키텍처 - 김필중
www.slideshare.net
'아키텍쳐' 카테고리의 다른 글
Layered Architecture vs Hexagonal Architecture (0) | 2023.02.16 |
---|---|
Redis, Kafka를 활용하여 이벤트 기반 아키텍쳐 설계 (0) | 2023.02.15 |