2.1 마이크로서비스란
커다란 모놀리식 아키텍처를 단독으로 실행 가능한 다수의 모듈로 분해한 아키텍처를 마이크로서비스 아키텍처라고 합니다. 이때 실행 가능한 하나의 모듈을 마이크로서비스라고 합니다.
각각의 마이크로서비스는 독립적인 프로세스 형태로 각기 배포할 수 있어야 하고, 개별적으로도 개발할 수 있어야 합니다. 마이크로서비스는 상호 독립적인 구조이기 때문에 프로그래밍 언어나 프레임워크가 같을 필요는 없으며, 서로 독립적인 데이터 저장소와 네트워크 통신 기능을 가질 수 있습니다.
마이크로서비스의 특징을 정리하면 다음과 같습니다.
• 마이크로서비스 하나는 독립적인 프로세스 하나를 의미합니다.
• 개발과 배포에 상호 독립적입니다.
• 기술 독립성을 가집니다.
• 독립적인 데이터 저장소를 가질 수 있습니다.
• 각 마이크로서비스는 각자 가진 네트워크 기능으로 통신할 수 있습니다.