"클라우드"라는 용어 자체가 대중화되기 시작했던 것이 인터넷 환경이 발달하고 네트워크 속도가 빨라지면서부터가 아닐까 생각한다. PC에 저장된 자료들을 로컬 HDD가 아닌 네트워크를 통한 원격에 저장할 수 있는 서비스가 여기저기서 제공되면서부터 IT가 업이 아닌 일반 대중에게까지 "클라우드"라는 단어가 익숙해지지 않았을까 생각한다.
이 글에서 설명하려는 "클라우드" 또한 원격에서 서비스 한다는 개념은 비슷하지만 우리는 "클라우드"라는 개념위에서 어떻게 가정에 있는 셋톱박스를 통해서 서비스가 되는지 알아보자.
디지털방송(DTV)이 시작되고부터 개발 및 유지보수되는 엄청난 셋톱박스들이 존재한다.
물론 현재도 새롭게 개발되는 셋톱박스들 또한 존재하고 이미 폐기 처분된 셋톱박스들도 있긴 하지만 방송사업자는 오래된 셋톱박스나 현재 개발되는 셋톱박스에서 동일한 서비스들을 제공하고 싶어 한다. 그렇기 위해서 서비스 개발사들은 오래된 셋톱박스에서 동일한 서비스를 제공하는 애플리케이션을 하나 제작하고 최신 셋톱박스에서 화려한 UI를 제공하는 애플리케이션을 따로 제작할 수밖에 없었다.
셋톱박스가 추가되고 셋톱박스에서 운영되는 새로운 플랫폼이 추가될 때마다 그에 맞는 어플리케이션을 제작할 수밖에 없는 것이 현실이었고 방송사업자는 새로운 서비스들을 추가할 때마다 개발된 애플리케이션 개수만큼 추가 개발 비용을 지불해야 하는 애플리케이션 개발사 입장에서 보면 매출이 엄청나게 증가할 것 같은 상황이지만 개발사 역시 한정된 인력으로 여러 개의 개발된 애플리케이션을 유지보수한다는 것은 만만치 않은 일이었다.
하지만 이러한 고민들은 클라우드가 생겨나면서 해결이 가능하게되었다.
오래된 셋톱박스에서도 최신 셋톱박스에서도 하나의 애플리케이션 개발로 서비스가 가능해지기 때문에 방송사업자 입장에서는 유지 보수 비용이 현저하게 줄일 수 있고 개발사 역시 유지 보수해야 할 애플리케이션이 개수가 줄기 때문에 그만큼 다른 곳에 인력 투입이 가능하게 되었다.
그럼 어떻게 이런 꿈같은 얘기가 가능한지 구체적으로 살펴보도록 하자. 방송서비스에서의 클라우드는 크게 3가지 종류가 있다. 3가지 모두의 공통점은 사용자의 액션을 서버 전달하고 사용자에게 보여야 할 UI가 서버를 통해 셋톱박스에 전달된다. 예를 들어 셋톱박스에서 사용자가 리모컨을 통해 "메뉴"키 누르고 셋톱박스의 클라이언트는 해당 "메뉴"키를 전달받아 서버에게 다시 "메뉴 보여줘"라는 명령을 전달한다. 서버는 그 명령을 받고 즉시 사용자에게 보여야 하는 메뉴 화면을 다시 셋톱박스에 전달한다. 서버에서 셋톱박스 클라이언트로 전송되는 방식에 따라 3가지 종류로 나눠진다.
첫째, 보이는 화면을 비디오 방식으로 전달하는 VCS (Video Cloud Solution)
둘째, 보이는 화면을 이미지 방식으로 전달하는 ICS (Image Cloud Solution)
셋째, 보이는 화면을 커맨드 방식으로 전달하는 GCS (Graphic Cloud Solution)
이렇게 세 가지로 구분할 수 있으며 GCS를 제외하고는 일반적으로 웹브라우저상에서 실행되는 웹 애플리케이션 형태로 개발되고, GCS의 경우는 우리 회사가 자체적으로 개발한 "Wind3"라는 자바스크립트 형태의 애플리케이션으로 개발이 가능하다.
각각의 특징을 살펴보면 우선 VCS는 브라우저에서 그려지는 화면을 비디오 방식으로 전송하기 때문에 서버로부터 전송되는 데이터가 크고 비디오를 인코딩하여 전송해야하기때문에 그 만큼 서버 CPU나 메모리같은 리소스를 많이 할당해야한다. 따라서 한 대의 서버가 처리할 수 있는 요청이 ICS, GCS보다 적어질 수 밖에 없다.
ICS는 브라우저에서 그려지는 화면을 이미지 방식으로 전송하기때문에 VCS보다는 전송되는 데이터가 적고 서버 리소스도 비디오보다는 적게 소모된다. 화려한 애니메이션을 가지는 애플리케이션을 서비스한다고 가정했을 때 VCS만큼 유려한 화면을 자연스럽게 표현하지는 못한다.
마지막으로 VCS와 ICS가 사용자에게 보여야 할 화면 자체가 전송되는 반면 GCS는 셋톱박스가 그려야 할 정보들이 전송되고 셋톱박스에 존재하는 클라이언트가 해당 정보들을 전송받아 화면에 직접 그린다. 그렇기 때문에 VCS, ICS보다 전송되는 데이터가 현저하게 줄긴 하지만 셋톱박스의 사양에 따라 성능에 차이는 있을 수 있다.
모든 것이 그렇듯 VCS, ICS, GCS 모두 각각의 솔루션에 대한 장/단점이 존재하므로 어떤 서비스들을 제공하고 얼마만큼의 비용을 들이느냐에 따라 그에 맞는 적절한 시스템을 적용하면 된다.
아래 그림은 GCS와 VCS를 혼용하는 하이브리드 형태로 대부분의 사용자가 자주 사용하는 메뉴를 GCS로 개발하여 적은 비용으로 많은 사용자의 요청을 처리하고 그 하위 메뉴 중 특정 서비스에 대해서는 VCS를 적용하여 화려한 UI를 사용자에 제공할 수 있다.
게임 산업에서 일찌감치 클라우드라는 솔루션을 많이 사용되고 있었다. 흔히 알고 있는 Steam이나 몇 년 전 구글에서 공개한 Stadia도 클라우드를 사용하여 PS5, XBox와 같은 단말기 대비 많이 싼 가격에 콘솔 게임기를 공급하고 있지만 성능은 그에 못지않게 화려한 게임을 즐길 수 있게 하였다. 네트워크망이 4G, 5G, 6G로 발전함에 따라 앞으로는 클라우드를 이용한 다양한 서비스들이 나올 전망이고 특히 핸드폰만 있으면 서버에 설치된 윈도우를 내 노트북처럼 이용할 날도 얼마 남지 않은 듯하다.
'개발' 카테고리의 다른 글
[Android] Don't Store Data in the Application Object (0) | 2021.11.23 |
---|---|
[Android] Screen off 상태로 재부팅 방법 (0) | 2021.11.18 |
Digital Video Broadcasting (DVB); Adaptive media streaming over IP multicast (0) | 2021.09.08 |
TCP segments (0) | 2021.08.06 |
Android MediaCodec (0) | 2021.02.01 |