세상에 완벽한 원은 존재하지 않습니다. 아무리 컴퍼스 같은 도구를 활용하거나, 심지어 슈퍼컴퓨터가 그린다 해도 몇백 배 확대하면 픽셀이 깨진 것 같은, 짧은 선들이 계단형으로 보입니다. 하지만 우리는 직선이 존재하는 상황에서도 문제가 없다면 '원'이라고 인정합니다.
실시간(Real time)이라는 것도 마찬가지입니다. 지금 발생한 사건 즉 '데이터'를 실시간으로 불러온다 이 문장은 문법적으로 맞지 않습니다. 어떠한 정보 또는 데이터가 한 곳에 추가되었는데, 동시에 다른 곳(웹 또는 모바일 앱) 알림에 실시간으로 표시된다는 것은 말이 되지 않습니다.
길동이가 자기 계정으로 '맛집 투어~' 피드에 올린 것, 또치가 제가 예전에 올린 게시물에 '좋아요'를 눌린 것. 각기 다른 사람이 다른 곳에서 한 활동이 '동시'적으로 제 알림에 꽂힌다는 것이요. '이 정도면 실시간이지'라고 인정하는 것이죠.
사용자가 원하는 것에 따라서, '실시간'은 몇 천분의 1초가 될 수도, 알림 같은 경우는 10초까지도 가능합니다. 통계는 또 어떤가요? 증권 앱에서 주식 시세 정보는 몇 분을 넘어가도 정보가 바뀌지 않으면, 장애로 인지되고 고객에게 손실에 대한 배상을 해줘야 합니다. 하지만 재작년 코로나 실 중계는 각 지자체의 현황을 매일 1-2회 집계하여 한눈에 보여주는 것만으로도 신속한 대처라고 세계적으로 유명했습니다.
출처 : 네이버 홈 > 코로나바이러스-19 확진 현황
이렇듯이 사용자가 기대하는 최소한의 '실시간'의 기준이 무엇인지, 그리고 물리적으로 시스템에서 얼마나 많은 데이터를 빠르게 가져오고 처리해야 하는지까지 고려했을 때 비로소 '실시간성' 서비스가 존재할 수 있습니다. (자세한 기준은 '똑똑하게 데이터 7탄'에서 소개했으니 넘어가겠습니다.)
실시간 정보, 필요할 때마다 아니면 예약제로?
실시간으로 시스템에서 데이터를 가져오고 처리하는 방법은 크게 2가지로 나뉩니다. 필요할 때마다 그때그때 불러오거나, 아니면 일정 시간마다 예약을 걸어놓고 불러오는 것입니다. 장단점은 명확합니다, 위 7탄에서 소개했듯이 한 번에 불러와야 하는 정보의 양이 너무 많다면, 한 차례 데이터를 불러오는 과정에서 이미 몇 초 이상 소요되면서 '실시간'의 기준을 넘어갈 수 있게 됩니다.