Monolithic Architecture
소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태이다. 웹 개발을 예로 들면 웹 프로그램을 개발하기 위해 모듈별로 개발을 하고, 개발이 완료된 웹 어플리케이션을 하나의 결과물로 패키징하여 배포되는 형태를 말한다. 이런 어플리케이션을 모놀리식 어플리케이션이라 하며, 웹의 경우 WAR파일로 빌드되어 WAS에 배포하는 형태를 말한다. 주로 소규모 프로젝트에서 사용된다.
MSA
MSA는 API를 통해서만 상호작용할 수 있다. 즉, 마이크로 서비스는 서비스의 end-point(접근점)을 API 형태로 외부에 노출하고, 실질적인 세부 사항은 모두 추상화한다. 내부의 구현 로직, 아키텍처와 프로그래밍 언어, 데이터베이스, 품질 유지 체계와 같은 기술적인 사항들은 서비스 API에 의해 철저하게 가려진다.
MSA 특징
첫 번째, 독립적인 개발/운영으로 각종 비용을 최소화하여 빠른 비즈니스의 확장과 실현이 가능하다.
두 번째, 작은 서비스를 개발하고, 비즈니스 변화에 맞춰 발빠르게 수정 및 검증할 수 있는 에자일(Agile) 방법론의 적용이 가능하며 지속 통합/지속 배포(CI/CD, Continuous Integration/Continuous Delivery) 프로세스에 최적화되어 있다.
세 번째, MSA는 서비스 단위 스케일 조정이 가능하여 물리적인 자원 사용을 최소화할 수 있다.
MSA 단점
서비스 단위로 개발되기 때문에 설계와 분리의 어려움이 있으며, 분산된 서비스로 인해 통합 테스트를 진행하기도 쉽지 않다.
또한 분산 시스템의 서비스 간 네트워크 통신 수의 증가에 따라 서비스 성능 저하가 발생할 수도 있다. 즉, 설계, 테스트, 성능에 대한 보장을 할 수 없다면 MSA는 실패한 아키텍처가 될 수밖에 없다.
https://kr.tmaxsoft.com/info/storyTView.do?seq=345
[Product] 마이크로 서비스 아키텍처의 효율적 개발/운영 플랫폼, ‘ProSaaS’
MSA란 클라우드 상에서 하나의 작은 서비스로 단위로 개발하여 변경/조합/재활용이 가능하도록 구성한 최신 아키텍처입니다.
kr.tmaxsoft.com
[MSA] MSA란 무엇인가? 개념 이해하기
MSA가 무엇인지 자세하게 알고싶어 개인적으로 정리하는 포스팅입니다. MSA? MicroService Architecture의 줄임말 👉🏻 마이크로서비스 아키텍처에 대한 정확한 정의는 없다. 하지만 마이크로서비스란
wooaoe.tistory.com
'애플리케이션 개발 > computer science' 카테고리의 다른 글
[CS] 웹 시스템 구성 (0) | 2022.12.19 |
---|---|
카카오톡 SNS 공유하기 (0) | 2022.11.09 |
[Spring] View 설정 / h2 Database 설정 (0) | 2022.05.09 |
[spring] Spring / JPA (0) | 2022.05.08 |