이 문장도 현업 기준으로 정확합니다.
그리고 앞 문장보다 한 단계 더 깊습니다.

스케일은 트래픽이 아니라 상태 관리에서 갈린다

이걸 실무 언어로 풀면 이겁니다.


왜 트래픽은 문제가 아닌가

트래픽 자체는 요즘 거의 문제 아닙니다.

  • 로드밸런서 → 수평 확장
  • CDN → 정적 리소스 분산
  • 오토스케일링 → 인스턴스 늘리면 끝

요청 수(QPS)는 돈 문제지, 구조 문제는 아닙니다.


진짜 갈리는 지점: 상태(State)

1. 세션

  • 서버 세션?
    • 스케일 아웃 순간 깨짐
  • Sticky Session?
    • 확장성 포기
  • Redis 세션?
    • 이제부터 락·TTL·장애 전파가 시작됨

👉 “로그인 유지” 하나로 아키텍처 레벨 결정됨


2. 트랜잭션

  • 단일 DB일 땐 멀쩡
  • 샤딩 / 분산 들어가는 순간:
    • 2PC? 성능 박살
    • 보상 트랜잭션? 로직 지옥

👉 비즈니스 일관성 vs 확장성의 전쟁


3. 캐시 일관성

  • 캐시 없으면 성능 안 나옴
  • 캐시 넣으면:
    • 최신성 보장?
    • 장애 시 fallback?
    • 캐시 스탬피드?

👉 캐시는 성능 장치가 아니라 상태 복제 장치


4. 비동기 처리

  • 큐 넣는 순간:
    • exactly-once는 환상
    • 중복 처리 설계 필수
    • idempotency 없으면 재앙

👉 상태를 “나중에 반영”하기 시작한 순간 난이도 급상승


그래서 스케일 잘 되는 시스템의 공통점

업무적으로 정리하면 딱 3줄입니다.

  1. 상태를 최대한 없앤다
  2. 있다면 한 곳에 모은다
  3. 언젠간 틀려도 괜찮게 만든다

기술 스택보다 이 철학이 먼저입니다.

LIST

+ Recent posts