12가지 마이크로서비스 패턴
🛣️ API 게이트웨이 (API Gateway) 클라이언트와 마이크로서비스 간의 중개자 역할을 하며, 클라이언트의 요청을 적절한 마이크로서비스로 라우팅합니다. 🔍서비스 발견 (Service Discovery) 동적으로 서비스 인스턴스를 찾고 등록하는 메커니즘을 제공하여, 서비스의 위치를 자동으로 식별합니다. ⚡ 회로 차단기 (Circuit Breaker) 실패한 서비스 호출을 신속하게 탐지하고, 시스템의 나머지 부분에 대한 영향을 최소화합니다. ⚖️ 로드 밸런싱 (Load Balancing) 서비스 인스턴스 간에 트래픽을 균등하게 분산하여, 성능을 최적화하고 오버로드를 방지합니다. 🚢 격벽 (Bulkhead) 시스템의 일부분이 실패할 때 전체 시스템의 실패를 방지하기 위해, 서비스를 격리시킵니다. 📜 CQRS (Command Query Responsibility Segregation) 명령과 쿼리를 분리하여, 시스템의 복잡성을 관리하고 성능을 향상시킵니다. ⭐️ 이벤트 기반 아키텍처 (Event-Driven Architecture) 서비스 간의 비동기 통신을 가능하게 하며, 시스템의 확장성과 유연성을 향상시킵니다. 📖 사가 (Saga) 긴 트랜잭션을 관리하고, 일관성을 유지하기 위해 분산 트랜잭션을 조정합니다. 🔁 재시도 (Retry) 일시적인 실패를 극복하기 위해, 실패한 작업을 자동으로 재시도합니다. 🖼 백엔드 for 프론트엔드 (Backend for Frontend, BFF) 프론트엔드와 백엔드 간의 통신을 단순화하고, 프론트엔드의 요구에 맞게 백엔드를 구성합니다. 🚗 사이드카 (Sidecar) 마이크로서비스의 기능을 확장하고, 공통의 크로스 커팅 관심사를 처리합니다. 🪢 교살자 패턴 (Strangler Pattern) 기존 시스템을 점진적으로 대체하고, 새로운 시스템으로 마이그레이션합니다. https://medium.com/gitconnected/12-microservices-pattern-i-wish-i-knew-before-the-system-design-interview-5c35919f16a2