[별별 인터넷 용어] 스트리밍이란?
(게임 방송 분야로 유명한 스트리밍 사이트 twitch.tv)
인터넷 개인 방송이 활성화 되면서 "스트리밍", "스트리머" 등의 용어가 많이 쓰이고 있습니다.
흔히 "스트리머"라고하는 사람들은 "스트리밍"을 하는 사람들이고,
"스트리밍"이라는 단어는 방송을 하는 행위(?) 뭐 그런 의미로 사용되고 있습니다.
우리 일상에서 볼 수 있는 스트리밍 서비스
- YouTude
- Netflix
- 네이버 TV캐스트
- twitch
- 아프리카 TV
- pooq
- Vimeo
그래서! 오늘 우리는 스트리밍을 기술적인 시점에서 살펴보고자 합니다.
기술적 의미에서 살펴본 스트리밍은 어떤 의미일까요?
스트리밍이란
스트리밍(Streaming)은 인터넷으로 음성이나 영상 파일 등을 실시간으로 재생하는 기술을 의미합니다.
우리가 흔히 생각하는 실시간 개인 방송 뿐만 아니라, 유투브에 있는 영상들도 스트리밍을 통해서 재생되는 영상입니다.
다운로드는 큰 크기의 파일 전체를 한번에 받아오는 반면, 스트리밍 기술의 핵심은 큰 음성이나 영상을 작은 단위로 쪼개서 실시간으로 받아 오는 것입니다.
그 방식에는 크게 두 가지가 있습니다.
프로그레시브 다운로드(Progressive Download)
프로그레시브 다운로드(Progressive Download)는 서버에서 클라이언트로 정보가 올 때, 파일의 일부가 전송되더라고 도착한 파일의 일부를 재생하는 방법을 의미합니다.
이 방법으로 영상 등을 끊기지 않고 꾸준하게 재생하려면 다운로드 받는 속도가 영상의 재생 속도보다(영상의 데이터 레이트) 빨라야합니다.
예를 들어서, 1초에 1MB의 파일을 다운로드 받을 수 있는 네트워크에서 영상을 재생하는데, 내 컴퓨터에서 영상 1MB를 0.8초 만에 재생해 버리면 앞으로의 1MB 파일을 받기 전까지 0.2초의 버퍼링이 걸리게 됩니다.
비디오 스트리밍(Video Streaming)
비디오 스트리밍(Video Streaming)은 냇물이 흐르다, 혹은 물줄기를 의미하는 스트림이라는 단어를 사용해서, 영상이나 음성을 끊이지 않고 연속적으로 볼 수 있는 방법을 의미합니다.
서버에서 큰 영상 파일을 작은 단위로 쪼개서 전송하는 방법 자체는 위의 프로그레시브 다운로드와 차이가 없어 보이지만, 비디오 스트리밍은 서버 차원에서 훨씬 효율적으로 영상을 전송합니다.
그리고 결정적으로 비디오 스트리밍은 클라이언트에서 필요로 하는 양 만큼만 파일을 잘라서 전송하기 때문에 서버에 과부하가 걸리지 않고, 클라이언트의 요청에 효율적으로 대응할 수 있습니다.
프로그레시브 다운로드 같은 경우는 영상이나 음성만 다운로드가 끝나기 전에 재생하는 것 뿐이지, 결과적으로 파일 전체를 다운로드하기 때문에 다운로드와 별반 차이가 없습니다.
사용하는 프로토콜
하드웨어 성능이 낮았던, 아주 먼 과거에는 컴퓨터에서 미디어를 재생하는 일이 거의 없었습니다.
그러다가 하드웨어 적으로 발전이 생기면서 DVD 등을 통해서 미디어를 재생할 수 있게 되었습니다.
1990년대에 들어서면서, TCP/IP, HTTP, HTML과 같은 표준들이 제정되면서 컴퓨터에서 미디어를 보여주는 활동에 큰 발전을 가져왔습니다.
스트리밍 또한 HTTP를 통해 실시간으로 패킷을 받아와 영상을 재생할 수 있게 되었습니다.
HTTP 통신의 과정 : 2018/03/03 - [Web/별별 웹 이야기] - [웹 개념] HTTP 통신의 과정
마치며
요즘 우리는 스트리밍 서비스의 혜택을 많이 보고 있습니다.
재미난 영상을 보고, 개인 방송을 통해 사람들과 소통하고, 좋아하는 영화도 이제는 DVD가 아니라 인터넷 상으로 바로바로 볼 수 있게 되었습니다.
오늘 알아본 "스트리밍"의 기술적인 측면, 어떠셨나요?
요즘 정말 일상에서 많이 쓰는 표현이 된 만큼 그 기술적인 배경에 대해서 잘 알고 있는게 좋지 않을까요?
참고
- http://linuxism.tistory.com/729
- https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%8A%B8%EB%A6%AC%EB%B0%8D
- https://en.wikipedia.org/wiki/Streaming_media