리액티브 시스템

현대 애플리케이션은 리액티브 시스템이 되기를 기대한다. 리액티브 시스템은 여러 프론트 장비나 시스템이 연계하는 레거시 시스템, 빈번히 발생하는 장애나 트래픽 증감에 적절히 반응하는 시스템을 의미한다.

리액티브 시스템은 사용자에게 가장 빠르고 적절한 응답을 제공하기 위해 장애로부터 빠르게 회복하고(탄력성), 시스템은 사용량 트래픽에 반응해 시스템 자원 조절을 유연하게 수행하며(유연성), 메시지 기반 통신을 통해 느슨한 결합과 위치 투명성을 제공해야 한다.

변화하는 환경에 탄력적으로 대응하기 위해서는 시스템 자체가 변화와 확장에 언제든지 대응할 수 있는 아키텍처 유연성을 갖춰야 한다. 시스템을 구성하는 구성요소 간의 관계가 느슨하게 맺어져있어 언제든지 대체되거나 추가 확장될 수 있는 특성을 말한다. 메시지 기반이라는 요소가 의존성을 줄이는 중요한 특성이다.

강한 결합에서 느슨한 결합의 아키텍처로의 변화

예전에는 아키텍처 구성요소를 특정 벤더에 전적으로 의존해 구축하는 경우가 많았다. 특정 벤더 중심 아키텍처는 검증된 유명 제품을 사용한다는 점에서 품질을 보장한다고 할 수 있지만, 특정 벤더에 의존한다는 점에서 특정 기술에 락인되어 쉽게 변경하거나 확장하지 못한다.

최근에는 클라우드 환경에서 사용되는 오픈소스 제품들이 유명 벤더만큼 품질이 높아지고 호환성이 제공돼서 벤더에 의존할 필요가 없어졌다. 최근의 아키텍처 설계는 필요한 영역에 적절한 솔루션을 선택하고 조합하는 개방적인 방식으로 바뀌고 있다.

2AC01081-EDF4-4944-BD8A-A8D17B755E8D.jpeg