SiliconValley_survivor

SiliconValley_survivor

Real Time - 실시간 시스템 (feat.네트워킹 101 개념)

여러분의 실시간 시스템 디자인은 제대로 구현되어있나요? - 시스템 설계에서 ‘즉시’를 구현하는 모든 방법

SiliconValley_survivor's avatar
SiliconValley_survivor
Sep 12, 2025
∙ Paid

서버에서 발생하는 이벤트를 “바로 지금” 사용자에게 전달하는 시스템. 채팅 메시지, 라이브 대시보드, 협업 편집기, 라이브 코멘트와 같은 기능을 실시간 시스템이라고 할 수 있습니다. 본 글은 낮은 지연과 양방향 통신을 가능하게 하는 아키텍처 패턴을 정리합니다.

What is realtime?

문제 정의 (The Problem)

Google Docs 같은 협업 편집기를 떠올려보세요. 한 사용자가 글자를 치면 수 ms 내에 다른 모든 사용자 화면에도 반영되어야 합니다. 하지만, 모든 사용자가 수 ms마다 서버를 폴링(Polling)하도록 만들면 인프라가 많은 부하를 받게됩니다.

핵심 목표는 효율적이고 지속적인(Client↔Server) 통신 채널을 구현하는 일 입니다. 표준 HTTP는 요청-응답 후 연결을 종료하는 방식이라, 서버가 능동적으로 클라이언트에 데이터를 전송해야 하는 상황에서는 한계가 있습니다.

그리고 실제 현업에서는 특별한 팀원들이 만들어 놓은 것을 모두 가져다 쓰는 경우가 흔합니다. 그래서 10년 경력 개발자라고 해도 직접 구현해본 경험이 없을 수 있어요. 여기서는 면접에서 좋은 결정을 내릴 수 있을 정도로 콘텐츠를 만들었습니다.

실시간 업데이트 패턴으로 해결할 수 있는 디자인 문제들

  • Ticketmaster 설계

  • Uber 설계

  • WhatsApp 설계

  • Robinhood 설계

  • Google Docs 설계

  • 온라인 경매(Online Auction) 설계

  • Facebook Live 댓글 설계

그 외에도 다양한 디자인 문제들이 있습니다.

해법(The Solution)

시스템에 실시간 업데이트, 푸시 알림 등이 필요할 때, 해법은 두 가지 서로 다른 구성요소로 구분됩니다.

  1. 첫 번째 ‘홉(hop)’

    1. 서버에서 클라이언트로 업데이트를 어떻게 전달할 것인가?

  2. 두 번째 ‘홉(hop)’

    1. 소스에서 서버로 업데이트를 어떻게 전달할 것인가?

실시간 업데이트를 위한 두 번의 홉(Two Hops for Real-time Updates)
각 홉은 서로 다른 트레이드오프를 가지며, 이 둘이 함께 작동해 전체 해법을 이룹니다. 따라서 각 홉을 분리해 살펴보겠습니다.

This post is for paid subscribers

Already a paid subscriber? Sign in
© 2026 실리콘밸리_생존자 · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture