brunch

You can make anything
by writing

C.S.Lewis

by 강단 May 04. 2020

참을 수 없는 기다림

<2> 세상을 닮은 기술, 기술을 닮은 세상

 바야흐로 스트리밍 서비스 전성시대다.  일찌감치 동영상 스트리밍 서비스를 시작한 넷플릭스를 필두로 왓챠, 웨이브 등이 뒤따르고 최근엔 콘텐츠 공룡 디즈니도 뛰어들었다. 스트리밍 서비스는 음성 및 영상 콘텐츠를 재생만 하기 때문에 저장장치 용량에 구애받지 않고 콘텐츠를 즐길 수 있다. 하지만 미디어 서버로부터 실시간으로 데이터를 전송받아야 해 송수신부 사이의 원활한 통신 환경이 필수다.  만약 인터넷이 느려진다면  'Buffering, please wait'와 같은 메시지와 함께 빙빙 도는 땡땡이를 마주할 것이다. 공공의 적 Buffering, 도대체 뭘 하는 것일까?


 버퍼링을 검색해 보면  '데이터 송수신을 원활하게 하기 위해 데이터를 일시적으로 저장하여 작업 처리 속도의 차이를 흡수하는 방법'이라고 나온다. 이 문장만으론 빌 게이츠도 모를 것 같다. 버퍼링을 이해하기 위해 먼저 버퍼에 대해 알아보자. 버퍼란 데이터를 잠시 보관해주는 저장소(메모리)다. PC, 노트북, 스마트폰에선 주로 DRAM을 쓴다. 컴퓨터 시스템에서 버퍼는 작업공간이다. 책상이 넓으면 일의 능률이 오르듯 버퍼가 크면 중앙 처리 장치(CPU)도 공간 제약 없이 일 할 수 있어 시스템 전체 성능이 향상된다.


 버퍼링은 액면대로 해석하면 버퍼에 데이터를 담는 행위다. 버퍼가 많으면 버퍼링 할 수 있는 크기도 커진다. 이제 얼죽아 카페를 통해 버퍼링이 어떻게 속도차를 흡수하는지 살펴보자. 이 카페는 얼어 죽어도 아이스 아메리카노로만 승부하며 알바 한 명, 에스프레소 머신도 하나밖에 없다. 알바는 손님이 오면 아래와 같은 동작을 반복한다.


    ① 주문을 받는다 (10초)

    ② 에스프레소를 추출한다 (40초)

    ③ 얼음물이 담긴 잔에 에스프레소를 붓고 고객을 호출한다 (10초)


  주문부터 커피 수령까지 1분이 걸린다. 주문 간격이 1분 이상이라면 손님들은 1분 대기 후에 커피를 받아갈 것이다. 그런데 만약 열 사람이 줄줄이 들어와 주문하면 어떻게 될까. 이들이 거의 동시에 도착했음에도 마지막 손님은 빨라야 7분 후에나 커피를 받을 수 있다. 뒷줄에 서 있는 고객들은 뭔가 억울하다. 비슷한 시간에 들어와 같은 돈을 냈는데 가장 먼저 주문 한 사람보다 배가 넘는 시간을 기다려야 하기 때문이다.


 이 문제는 커피를 주문하는 속도(10초)와 만드는 속도(50초)가 다르기 때문에 발생한다.  10번째 고객이 기다리는 시간을 줄이려면 어떻게 해야 할까? 한 가지 방법은 커피머신을 더 구매하는 것이다. 하지만 이 방법은 사장님이 반대한다. 꽤 큰 비용 탓이다. 다른 방법은 손님이 없을 때 에스프레소를 미리 추출해 두는 것이다.  이럴 경우 미리 뽑아둔 에스프레소가 동나기 전 까지는 바로바로 판매가 가능하다.


 이미 눈치챘겠지만 위 카페에서 에스프레소는 데이터,  에스프레소 잔은 버퍼,  손님이 없을 때 에스프레소를 미리 추출하는 행위는 버퍼링에 해당한다. 버퍼링 된 에스프레소가 충분히 많다면 붐비는 시간대에도 1분 남짓한 시간에 커피를 받아갈 수 있다. 현실 세계에선 한 김 식은 에스프레소는 크레마 풍미가 다 사라져 소리 소문 없이 망하기 십상이나 스트리밍 서비스를 포함한 데이터 통신 분야에선 버퍼링은 통신 품질을 고르게 유지시켜주는 그야말로 완소 기술이다.


  통신 속도는 송수신부에 발생하는 다양한 이유로 인해 균일하게 유지되지 않는다.  버퍼링을 통해 당장 필요한 데이터보다 더 많은 데이터를 모아두면 인터넷 이 잠시 느려질 때 이 데이터를 사용하여 애플리케이션이 매끄럽게 구동되도록 할 수 있다. 전송 지연이 심각해 버퍼링 해둔 데이터만으로 메울 수 없는 경우 빙빙 도는 땡땡이가 등판하며 서비스가 잠시 중단되게 된다. 버퍼를 어느 정도 채울 때까지 버퍼링은 지속되고 우리 인내심은 5G보다 빠르게 바닥난다. 근본 원인은 느려진 인터넷인데 욕이란 욕은 버퍼링이 다 먹으니 만약 버퍼가 말을 할 수 있다면 명예훼손 소송부터 제기할 것이다.


 실제로 웹 서비스 제공자나 데이터 센터 운영자에게 이 버퍼링 시간은 매우 치명적이다.  AWS(아마존 웹 서비스) 통계에 따르면 서비스가 0.1초 지연될 때마다 고객의 1%가 이탈하고, 로딩이 1초 지연되면 연간 1.6조 원의 손실이 발생한다고 한다. 당장 나만 해도 버퍼링 메시지가 2초 이상 지속되면 새로 고침이나 뒤로 가기 버튼을 연타하니 그럴 만도 하다. 따라서 어떤 시스템을 설계할 땐 네트워크 상황 등을 감안하여 버퍼 크기를 결정해야 한다. 버퍼가 너무 작으면 잦은 서비스 지연으로 성능과 매출이 급락할 것이고 반대로 너무 크면 초기 투자비와 유지비용이 증가한다.


 사실 우리 모두 알게 모르게 생활 속에서 버퍼링 기술을 쓰고 있다. 고속도로에서 앞 차와의 안전거리를 유지하는 것도 일행 앞으로 뛰어가 신발끈을 동이는 것도 버퍼링이다. 미리 김밥을 말아 두는 분식집 사장님도, 화장실 시계를 10분 빠르게 맞는 당신도 이미 버퍼링 전문가다. 하늘 아래 새로운 것은 없다. 기술도 속살을 들여다보면 사람 사는 모습을, 세상을 닮아 있다. 너그럽고 속 깊은 마음씨는 더불아 살아가는 세상에 필요한 버퍼다.  버퍼링은 '서로 다름'을 흡수하여 우리네 삶을 더 온활하게 만들어 줄 것이다.

작가의 이전글 공짜 보험
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari