마이크로서비스는 무엇일까? 위키백과에 따르면 다음과 같다고 한다. 어플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처 스타일의 일종인 소프트웨어 개발 기법으로 섬세하고 프로토콜이 가벼운 편이라고 한다.
어플리케이션을 더 작게 여러 서비스로 분할 할 때의 장점으로 모듈성을 개선하고 어플리케이션의 이해, 개발, 테스트를 더욱 쉽게 해주고 침식에 더 탄력적으로 만들어준다는 부분을 꼽을 수 있고, 규모가 작은 자율적인 팀들이 팀별 서비스를 독립적으로 개발, 전개, 규모 확장을 할 수 있게 함으로써 병렬로 개발할 수 있게 한다고 한다. 또 지속적인 리팩토링을 통해 각각의 서비스 아키텍처가 하나로 병합될 수 있게 허용해 주며 지속적 배포와 전개를 가능하게 한다고 한다.
위에서 설명했듯이 작은 서비스로 분할한 후 하나의 시스템을 제공하는 아키텍처이기에 독립적이며 느슨하게 결합되어있고 배포 역시 독립적으로 가능하기에 전체 프로그램을 빌드한 뒤에 재배치 하지 않고도 기존 서비스들을 업데이트하는 게 가능하다고 한다.
참고자료
https://gruuuuu.github.io/cloud/architecture-microservice/