Source: ByteByteGo

1️⃣ Load Balancing (로드 밸런싱)

들어오는 트래픽을 여러 서버에 분산시키는 기술

  • 특정 서버에 과부하 방지
  • 가용성 및 확장성 향상
  • 예: L4/L7 Load Balancer, Nginx, ALB

핵심: 한 서버에 몰리지 않게 분산

2️⃣ Caching (캐싱)

자주 사용하는 데이터를 메모리에 저장해 응답 속도 개선

  • DB 부하 감소
  • 지연시간(Latency) 감소
  • 예: Redis, Memcached

핵심: 자주 쓰는 건 빨리 꺼내자

3️⃣ CDN (Content Delivery Network)

정적 파일을 전 세계 엣지 서버에 분산 저장

  • 사용자와 가까운 서버에서 다운로드
  • 웹사이트 로딩 속도 개선
  • 예: Cloudflare, Akamai

핵심: 지리적으로 가까운 곳에서 전달

4️⃣ Message Queue (메시지 큐)

생산자와 소비자를 비동기로 분리하는 구조

  • 시스템 간 결합도 감소
  • 트래픽 버퍼 역할
  • 예: RabbitMQ, Kafka

핵심: 바로 처리하지 말고 큐에 넣어라

5️⃣ Publish–Subscribe (Pub/Sub)

하나의 메시지를 여러 소비자가 동시에 받는 구조

  • 이벤트 기반 시스템에 적합
  • 느슨한 결합 구조
  • 예: Kafka Topic, Google Pub/Sub

핵심: 한 번 발행, 여러 명 수신

6️⃣ API Gateway

클라이언트 요청의 단일 진입점

  • 라우팅
  • 인증
  • 속도 제한
  • 프로토콜 변환

핵심: 모든 요청은 관문을 통해

7️⃣ Circuit Breaker

하위 서비스 장애 시 호출을 차단하는 패턴

  • 연쇄 장애 방지
  • 일정 임계치 이상 실패하면 자동 차단
  • 예: Resilience4j

핵심: 망가진 서비스는 잠시 차단

8️⃣ Service Discovery

실행 중인 서비스 인스턴스를 자동 추적

  • 동적 IP 환경에서 필수
  • 마이크로서비스 아키텍처 핵심
  • 예: Consul, Eureka

핵심: 서비스 위치를 자동으로 찾기

9️⃣ Sharding (샤딩)

대규모 데이터를 여러 노드에 분산 저장

  • 특정 shard key 기준 분할
  • DB 확장성 확보

핵심: 데이터를 나눠서 저장

🔟 Rate Limiting

일정 시간 내 요청 횟수 제한

  • DDoS 방지
  • 과부하 보호
  • 예: Token Bucket, Leaky Bucket

핵심: 너무 많이 요청 못 하게 막기

1️⃣1️⃣ Consistent Hashing

노드가 추가/삭제될 때 데이터 재배치 최소화

  • 캐시 서버 분산 구조에 많이 사용
  • 노드 변동에 강함

핵심: 노드 변경 시 재정렬 최소화

1️⃣2️⃣ Auto Scaling

트래픽에 따라 자동으로 서버 수 조절

  • CPU, 메모리, 요청 수 기준
  • 비용 최적화

핵심: 필요할 때 늘리고, 한가하면 줄이기


전체 구조 관점

영역 관련 개념

확장성 Load Balancing, Auto Scaling, Sharding

성능 Caching, CDN

안정성 Circuit Breaker, Rate Limiting

비동기/이벤트 Message Queue, Pub/Sub

마이크로서비스 API Gateway, Service Discovery

분산 시스템 Consistent Hashing


한 문장 요약

이 12개 아키텍쳐는 확장성 + 안정성 + 성능 + 분산 시스템 설계의 기본 골격이다.