MSA 부터 RxJava 까지
신기술은 계속 쏟아지고 있는데 그중 가장 핫 하다면 핫한 기술이 다음 두가지가 일까 한다.
- MSA(Micro Service Architecture) Martin Fowler 가 먼저 언급하였다고 전해지며,
일반적인 아키텍쳐인 모놀리식 스타일은 프로그램을 큰 덩어리로 구축한다면, 아주 작은 부분을 변경하더라도 모두 빌드해서 다시 배포 해야 한다.
최근 처럼 배포 주기가 짧다면 매우 비효율적이게 된다. 또한 프로그램이 점점 커지게 된다면 각 모듈의 구조를 변경 없이 유지하는 것은 매우 어렵다.
MSA는 작은 서비스의 결합을 통해 하나의 프로그램을 개발하는 방법으로 각각의 서비스는 독립적인 비지니스 로직으로 구성되며, 오나전 자동화된 개발/배포환경에 의해 각각 독립적인 배포가 가능하다.
또한 최소한의 중심적인 관리 체계가 있으며 이 시스템은 각각 다른 프로그래밍 언어, 다른 데이터스토리지 기술로 작성하는 것이 가능하다.
- RxJava 반응형(Reactive) 프로그래밍이라고 불리며 기본 골격은 Observer pattern을 보면 된다.
여기에 함수형 프로그램방식으로 이전과 다르게 간결하게 구현 할수 있기 때문에 JAVA8 이후 많이 사용하게 되었다.
특히 MSA에서는 반응형 프로그램이 필수가 된다.