도대체 마이크로서비스 아키텍처가 무엇인데 구인구직 사이트에서 보는 공고의 JD(Job Description)마다 빠지지 않고 MSA라는 키워드가 적혀져 있을까? MSA에 대해서 바로 알아보면? 좋겠지만..! MSA의 철학과 개념을 정확하게 이해하기 위해서는 먼저, 우리가 알게 모르게 사용하고 있던 모놀리식 아키텍처에서부터 알아봐야 한다.
모놀리식 아키텍처란?
모놀리식 아키텍처는 어플리케이션을 개발할 때 하나의 덩어리 형태로 개발하는 방식을 말한다. 이 방식은 과거부터 현재까지 우리가 주로 사용하는 방식이다. 웹 || 앱 서비스에서 제공해야하는 주문, 결제, 상품 관련 기능을 하나의 Application에 개발하고 그것을 단일 소프트웨어 형태로 묶어서 배포하는 방식을 말한다.
과거에는 Application의 덩치가 작아서 이러한 방식이 문제되지 않았다. 하지만, 점점 고객의 수와 다양한 니즈가 요구되는 요즘 세상에서는 적절하지? 못한 형태가 되었다. 왜냐하면, 첫 번째는 코드 수정을 할 때 마다 각 부서마다 이야기를 나눠야하는 의사 소통과 조정 비용이 발생하는
마이크로서비스 아키텍처란?
마이크로서비스 특징
위치 투명성; 서비스 클라이언트에게 영향을 주지 않고 서비스 인스턴스를 추가/삭제할 수 있도록 물리적 위치를 어떻게 관리하는가?
적정 크기; 한 가지 책임 영역에 집중하게 하는 방법은 무엇인가?
회복성; 서비스에 문제가 발생 했을 때 서비스 클라이언트가 “빨리 실패”하게 하는 방법은 무엇인가?
확장성; 서비스 간 의존성을 최소화하면서 애플리케이션이 신속히 확장할 수 있는 방법은 무엇인가?
반복성