-
[Software Engineering] MSACS/Software Engineering 2021. 8. 8. 18:02
📝 MSA
💻 Monolithic
✔ MSA가 도입되기 전, 모든 기능을 하나의 어플리케이션에서 비즈니스 로직을 구성해 운영하는 Monolithic 방식으로 개발이 이루어 졌다.
🔧 Monolithic 장점
- 개발시 환경 설정에 있어 간단하다.
- 작은 사이즈의 프로젝트에서 유리하다
🔧 Monolithic 단점
- 빌드/테스트 시간이 증가한다 - 하나를 수정해도 시스템 전체를 빌드해야 하며 유지보수가 힘들다.
- 작은 문제가 시스템 전체에 영향을 미친다.
- 확장성에 불리하다 - 하나의 서비스 확장을 위해 전체 프로젝트를 확장해야 한다.
💻 MicroService Architecture
✔ 기능 별로 컴포넌트를 나누고 조합할 수 있도록 구축한다.
🔧 컴포넌트란?
- 재사용이 가능한 독립적인 단위모듈이다.
- 구현, 명세화, 패키지화 그리고 배포 될 수 있어야 한다.
🔧 MSA 특징
- 각 컴포넌트는 API를 통해 다른 서비스와 통신을 한다.
- 모든 서비스는 각각 독립된 서버로 운영하고 배포하기 때문에 서로 의존성이 없다.
🔧 MSA 장점
- 하나의 서비스에 문제가 생겨도 다른 서비스에는 영향을 끼치지 않는다.
- 서비스 별로 부분적인 확장이 가능하다.
🔧 MSA 단점
- API로 통신하므로 속도가 느리다.
- 서비스 별로 통신에 맞는 데이터로 맞추는 과정이 필요하다.
REFERENCE
'CS > Software Engineering' 카테고리의 다른 글
[Software Engineering] Agile (0) 2021.08.08