마이크로서비스
마이크로서비스는 애플리케이션을 특정 비즈니스 기능을 담당하는, 각각 독립적으로 배포 가능한 작은 서비스들의 집합으로 구성하는 아키텍처 패턴이며, 명확하게 정의된 API를 통해 통신합니다.
이해하기 마이크로서비스
모놀리식(단일) 애플리케이션은 모든 기능을 하나의 배포 단위로 묶습니다. 규모가 커질수록 개발, 테스트, 배포, 확장이 어려워집니다. 마이크로서비스는 애플리케이션을 사용자 서비스, 이메일 처리 서비스, 에이전트 서비스, 알림 서비스처럼 독립된 서비스로 분해합니다. 각 서비스는 별도로 개발, 배포, 확장될 수 있습니다. 팀들은 충돌 없이 각자 다른 서비스를 병렬로 개발할 수 있습니다. 한 서비스의 장애가 다른 서비스까지 중단시키지는 않습니다. 다만, 많은 서비스를 관리하고 이들의 통신 및 배포를 운영하는 복잡성이 증가하는 것이 단점입니다.
GAIA 활용 방법 마이크로서비스
GAIA는 Nx 모노레포 아키텍처에서 마이크로서비스 원칙을 따릅니다. API, 웹 앱, 데스크톱 앱, 모바일 앱, 음성 에이전트, 그리고 봇은 각각 독립적으로 배포 가능한 애플리케이션이며, 정의된 인터페이스를 통해 서로 통신합니다. 백그라운드 처리는 ARQ 워커를 독립적인 서비스로 사용합니다. 이러한 모듈화 덕분에 각 구성 요소를 개별적으로 업데이트, 확장 또는 교체할 수 있습니다.
관련 개념
API 게이트웨이
API 게이트웨이는 클라이언트 요청에 대한 단일 진입점 역할을 하는 서버로, 해당 요청을 적절한 백엔드 서비스로 라우팅하고, 인증, 속도 제한, 로깅 및 분산 시스템의 기타 중요한 작업을 처리합니다.
이벤트 기반 아키텍처
이벤트 기반 아키텍처(EDA)는 시스템 구성 요소들이 이벤트(특정 동작이 발생했다는 개별 알림)를 통해 소통하는 소프트웨어 설계 패턴입니다. 이를 통해 시스템 간 결합도를 낮추고, 실시간 반응성과 확장 가능한 반응형 시스템을 구현할 수 있습니다.
서버리스
서버리스 컴퓨팅은 클라우드 제공업체가 서버 인프라를 관리하고, 자동으로 리소스를 할당 및 확장하여 개발자가 인프라 관리가 아닌 코드 개발에 집중할 수 있게 하는 클라우드 실행 모델입니다.
API 통합
API 통합은 서로 다른 소프트웨어 애플리케이션을 API(응용 프로그램 인터페이스)로 연결하여 데이터를 원활하게 공유하고 기능을 연동하는 과정입니다.


