나의 소박한 서비스 운영기(Running a Service)
좋은 서비스를 운영하는 것은 내 오랜 꿈이다. 고객이 좋아하는 서비스를 만들고 이에 대한 피드백을 바탕으로 지속적으로 개선하는 것은 그 자체로 가치있다. 그동안 여러가지 서비스를 기획했지만 개발을 하지 못한 프로젝트도 많고, 고객들의 수요가 있다고 생각했지만 만들어놓으니 이도저도 않은 경우도 많았다. 여러가지 프로젝트 중에서 지속적으로 운영한 프로젝트가 있어서 소개하고자 한다. 제목에서도 언급했듯이 아주 소박한 서비스 운영기다.
서비스의 시작
내 고향은 대한민국 지도의 꼬리인 포항이다. 부모님은 여전히 이곳에 거주하신다. 어머니가 영화감상을 좋아하셔서 수년전부터 고향 갈 기회가 생기면 영화를 외장하드에 넣어갔다. 어머니가 사용하시는 데스크탑 바탕화면에 ‘영화’라는 폴더를 만들어서 쉽게 영화를 보실 수 있도록 했다. 1-2년동안 이런 방식으로 영화를 보실 수 있도록 해드렸는데 여러가지 문제가 발생했다.
문제점
- 인터넷으로 다운로드 받은 후, 아직 보지 않은 영화를 가져가다 보니 코덱이나 자막 싱크가 맞지 않는 문제가 발생했다.
- 어머니가 영화를 꽤 빨리 보셔서 다음에 내가 고향에 내려갈때까지 기다리셔야 하는 경우가 많았다.
- PC에서 파일들을 넣어드리니 모니터로만 보실 수 있어서 큰 화면의 TV에서 감상이 어려웠다.
1차 서비스 개선
문제를 쪼개서 현 상황을 개선할 수 있는 여러가지 방향을 생각해봤다.
- 모니터보다 화면이 큰 TV로 볼 수 없을까?
- TV로 보실 수 있도록 해야했는데 이렇게 하려면 외장하드를 연결하거나 PC를 TV로 상시 연결해야 했다.
- PC는 서재에 있어야 했고 추가로 PC를 구입하는 것은 선택지에서 제외했다.
- TV로 보실 수 있도록 해야했는데 이렇게 하려면 외장하드를 연결하거나 PC를 TV로 상시 연결해야 했다.
- 정기적으로 컨텐츠 수급을 할 수 있도록 하는 부분
- 클라우드 서비스를 활용해서 컨텐츠를 넣는 방향으로 진행하면 될 것 같았다.
- 자막싱크/코덱의 문제
- 미리 컨텐츠를 보고 영화를 전달하는 방법
- 네이버 영화와 같이 미리 검증된 채널에서 영화를 다운로드 받는 것
TV로 보는 문제는 단기간에 해결이 쉽지 않아서 클라우드 서비스를 바탕으로 컨텐츠를 수급하는 문제부터 해결하기로 했다. 처음에는 드롭박스를 활용했고, 이후에는 구글 드라이브를 활용했다. 이전보다 서비스가 많이 개선되었는데 곧 새로운 문제에 봉착했다.
- 영화 편수가 많아지니 어떤 영화가 이미 시청한 영화이고, 어떤영화가 시청하지 않은 영화인지 확인이 어렵다. 특히 영화를 보시기 전에는 어떤 영화인지 확인이 어려웠다.
- 해당 부분에 대한 확인이 자체적으로 어렵다보니 정기적으로 어머니에게 전화를 해서 얼마만큼 영화를 보셨는지 확인을 해야지 추가적으로 컨텐츠를 넣어야 할지 여부를 확인할 수 있었다.
- 클라우드 서비스의 용량도 많은 수의 영화를 저장해두기엔 무리였다.
- 최신으로 저장된 날짜를 바탕으로 파일을 필터링 하는것이 대부분 젊은 유저들에게는 어렵지 않은 부분이지만 어머니 나이에는 해당 부분도 쉽지 않다는 사실을 깨달았다.
2차 서비스 개선
총체적인 서비스 개선이 필요하다는 것을 깨닫고 검색을 하던 중 NAS(Network Attached Storage)에 대해 알게되었다. 개인용 저장서버인데 다양한 컨텐츠를 해당 기기에 넣어두고 다른 기기(클라이언트)에서 스트리밍 되도록 할 수 있다. (회사에서 기업용 자체 백업 솔루션으로 활용하기도 한다) 나스는 Qnap사에서 제작한 4베이1를 선택했고, 클라이언트 프로그램으로 Plex를 활용하고, 부모님집에는 라스베리파이2위에 Plex를 올린 RasPlex를 TV에 연결해서 스트리밍해서 보실 수 있도록 구성했다.
- Qnap TS-451
- 일종의 소형컴퓨터라 자체 운영체제도 깔려있다.
- 영화등을 스트리밍 할 목적도 있었지만 부모님이 거주하는 곳이 주택이라서 입구쪽에 설치된 원격감시카메라의 영상을 저장하는 용도로 활용할 목적도 있었다.
- Plex
- 멀티플랫폼(Mac, Windows, iOS, Android)를 지원하는 스트리밍 플랫폼이다.
- 위 언급한 나스에 서버용 프로그램을 설치하면 여러 클라이언트에서 재생이 가능하다.
- 라즈베리파이와 RasPlex
- 라즈베리파이의 SD카드에 RasPlex가 들어간 프로그램을 설치하면 위 언급한 Plex 프로그램의 클라이언트로서 역할을 한다.
- TV에 HDMI를 통해서 연결 할 수 있기때문에 어머니가 큰 화면을 통해서 영화를 볼 수 있다.
- 라즈베리파이는 HDMI-CEC(Consumer Electronics Control)를 지원하는 TV리모컨 및 Plex 앱으로도 제어가능해서 사용이 용이하다.
본격적인 서비스의 운영
나스를 해외직구로 구입하고, 하드드라이브를 장착하고, 컨텐츠를 설치하고, 라즈베리파이를 구입하고, 그 위에 프로그램을 올리는 등 대대적인 준비를 했다. Plex 서비스도 가입했다. 본격적인 서비스 운영준비가 끝났고, 포항에 갔을 때 제작한 라즈베리파이를 고향집의 TV에 연결하였다. 어머니의 핸드폰에 안드로이드앱도 설치해드리고, Plex의 조작법도 설명해드렸다.
- Plex에는 다음영화(Daum Movies) DB가 연동이 되어있어서 영화의 포스터와 평점을 미리 볼 수 있다. 어떤 영화를 이미 시청했는지도 쉽게 확인이 가능하다.
- 서울에 있는 나스에 지속적으로 영화 컨텐츠를 넣고 관리를 하는 것이 수월해졌다.
- 라즈베리파이가 TV에 연결되어 있었기때문에 큰 TV에서 영화를 볼 수 있게 되었다.
- 클라우드 서비스를 운영하는 것과 비슷해서 클라우드에 접속가능한 여러 기기들로 감상을 할 수 있었다.
- (기타) 집 현관문에 움직임이 있을때마다 감시카메라의 영상이 서울 서버에 영상이 저장되는 것은 덤이다.
이제야 본격적으로 제대로된 셋업을 갖췄구나하는 생각이 들었고, 어머니도 만족해하셨다.
끊임없는 업데이트와 수정 - 유지 및 보수의 중요성
예상치 못한 문제점과 다양한 유지 보수 관련 이슈가 기다리고 있었다.
Plex
- 자막이 없는 영화의 경우 플랫폼을 가리지 않고 재생이 잘되는데 자막과 함께 봐야하는 경우는 계속해서 버퍼링이 걸리며 재생이 잘되지 않았다. 해당 부분이 원활하게 재생이 되려면 온더플라이 트랜스코딩3을 지원할 수 있는 기기여야 하는데 나스의 스펙이 좀더 높아야했다. 당연하게 될 줄 알았던 기능이 안되니 당황스러웠다.
- 나스 자체 기능으로 특정폴더에 자막과 원본영상을 넣어두면 한개의 파일로 인코딩을 해주는 기능을 지원했는데 제대로 동작하지 않는 경우가 많았다. 한개의 파일을 다시 영화가 있는 폴더에 옮기는 것도 일이었다.
- 결과적으로 어머니가 작은 모바일 화면으로 보실일이 별로 없으셔서 그냥 지원을 하지 않기로 했다.
- Plex도 하나의 서버 및 클라이언트 응용프로그램이라는 점을 간과했다. 클라이언트(모바일앱, 데스크탑앱)의 업데이트의 경우 운영체제, 또는 앱스토어에서 간편하게 업데이트 할 수 있다. 서버 프로그램의 경우 해당 패키지를 나스에 다운받아서 업데이트를 해야했다. 어려운일도 아니고, 사실 업데이트를 하지 않더라도 큰 문제는 발생하지 않는다. 하지만 업데이트를 하다가 작은 문제라도 발생하게 되면 문제가 복잡해졌다.
- Plex를 업데이트를 하거나 새로운 유저를 추가 했다가 지웠을 경우에 포항에 있는 라즈베리 클라이언트에서 새롭게 로그인 정보를 요구하는 경우가 있었다. 매우 간단한 문제이지만 유저(어머니)에게는 이정도도 어려운 문제이고, 실제 해당문제로 어머니가 한동안 영화를 감상하시지 못하는 문제가 발생했다.
NAS
- NAS도 운영체제가 설치된 컴퓨터다. 해당 운영체제를 지속적으로 업데이트 해줘야 했다.
- 24시간동안 계속 켜놔야 했는데 지금 사는 곳은 전기세 걱정이 별로 없지만 아파트의 경우는 조금 부담될수도 있겠다는 생각을 했다.
- 운영한지 5-6개월이 지난시점에 하드드라이브 하나가 고장이 났다. 보증기한 이내여서 새로운 하드드라이브를 받아서 설치할 수 있었지만 언젠가 다른 하드드라이브가 고장날 것이라는 점은 분명해보였다.
- 여담이지만, RAID4등의 시스템에 대한 큰 이해없이 사람들이 많이 쓰는 방식으로 구성했는데 백업이 되는 부분은 좋았다.
유저(어머니)
- 작동이 안되거나 서비스가 중단되면 가장 답답한게 유저인데 물리적으로 거리가 떨어져있고, 라즈베리파이 등의 클라이언트는 원격지원 솔루션을 따로 설치할 수가 없어서 해결하는데 어려움이 있었다.
- 급기야 집에 보안을 위해서 설치해둔 웹캠을 TV에 비추거나 스마트폰에 비춰달라고 어머니께 요청해서 해결하는 경우도 있었다.
뼈속까지 개발자라면 다른 방법을 찾았을지 모르겠다.
서비스 중단과 넷플릭스
여러가지 유지 보수 문제를 해결하며 나스를 가지고 서비스를 운영한지 2년정도 되었을무렵 NAS의 하드웨어상에 문제가 생겼다. 해외에서 직구한 물품이라 수리를 요청해야하는 과정이 번거로워 유지보수에도 지쳐갈 시점이여서 무리를 해서라도 수리를 할지, 아니면 서비스를 중단하고 다른 플랫폼으로 갈아탈지 고민해야했다. 앞으로 어떻게 어머니가 영화를 보시도록 해드리는게 좋을까. 넷플릭스에 대해 조금 알아봤다. 몇년전에 미국계정으로 1달간 구독을 해보고 그 이후에는 구독을 한적이 없다.
- 컨텐츠
- 국내 초기 런칭할때는 컨텐츠가 부족하다는 피드백이 많았는데 여러가지 미드를 포함해 컨텐츠가 풍부해졌다.
- 계속 서비스를 하며 깨달은 건 어머니는 꽤 괜찮은 영화를 계속 보고 싶어하시지 항상 최신 영화를 항상 보시고 싶어하시는건 아니라서 적합했다.
- 코덱과 자막
- 너무 당연한 얘기지만 파일의 종류에 따라서 재생이 안된다던지 자막의 싱크가 맞지 않는다던지 하는 문제는 애초부터 없다.
- 실제로 나스를 가지고 서비스를 운영해보면 해당부분이 얼마나 큰 요소인지 알 수 있다.
- 너무 당연한 얘기지만 파일의 종류에 따라서 재생이 안된다던지 자막의 싱크가 맞지 않는다던지 하는 문제는 애초부터 없다.
- 인터페이스
- 데스크탑, 크롬캐스트, 플스, 애플TV, 앱 등 거의 모든 유니버셜 플랫폼에서 동작한다.
- UI가 직관적이고, 드라마의 경우에는 한편이 끝나면 다음편이 자동재생 된다.
- 한 기기에서 영화를 시청하다가 다른 기기로 해당 컨텐츠를 시청하는 경우, 거의 완벽하게 싱크가 된다.
- 계정공유 및 프로파일
- 여러명이서 계정을 공유할 경우에 각 유저별 싱크가 훌륭하게 된다. 쉽게 얘기해서 내가 특정 드라마를 2화까지 봤다고 해서 어머니가 넷플릭스에 2화까지 봤다고 나오지 않는다. 프로파일이 나뉘어져 있기때문이다.
- 프리미엄 계정의 경우, 5개의 프로파일을 쓸 수 있고, 4개의 기기에서 동시 시청이 가능하다.
넷플릭스 서비스가 훌륭해서 더 이상 NAS를 수리해서 쓰는게 의미 없겠다는 판단을 내렸다. 이후 고향을 내려간 어느날 크롬캐스트를 TV에 설치했고, 스마트폰에 앱도 설치해드렸다. 작동방법을 간단히 알려드렸는데 쉽게 사용을 잘 하셨다. 현재 넷플릭스 계정에는 5개의 프로파일이 있고, 적어도 3명의 유저가 적극적으로 컨텐츠를 소비하고 있다.
느낀점
단 한 명을 위해서 서비스를 운영한 부분이지만 느낀점이 많다.
- 인터페이스
- 화면이 단순하고, 복잡하지 않고, 직관적이어야 한다.
- 유저는 단순한 변화에도 어려워한다.
- 안정성
- 시스템 소프트웨어나 클라이언트 소프트웨어 업데이트를 하면 작동을 하지 않는다던지, 서버가 계속 살아 있도록 해야하는 부분이 얼마나 중요한지 새삼 깨달았다.
- 유지보수
- 나스를 처음에 구입할때는 유지 및 보수에 들어갈 노력을 간과했다. 프로젝트를 기획할 때 서비스를 유지하고, 개선하는 부분을 사전에 고려하는 것이 얼마나 중요한 부분인지 깨달았다.
- 갓플릭스
- 위 모든 과정을 겪고 나니 넷플릭스가 제공하는 사용자 경험이 얼마나 훌륭한지 새삼 깨닫게 된다. 모든 것이 백그라운드에서 잘 돌아가기때문에 유저는 컨텐츠를 소비하는 것에만 집중하면 된다.
애초부터 먼길을 돌아가지 말고 넷플릭스/왓챠플레이 같은 서비스를 썼으면 어땠을까 하는 생각을 한다. (물론 처음에 내가 어머니를 위한 서비스를 시작했을때만 해도 국내에는 해당 서비스들이 존재하지 않았다) 분명 비용 및 노력도 적게 소요되었을 것이다. 하지만 뭔가 고장도 내보고, 운영도 해보면 그만큼 배우는 부분도 크다. 이 과정에서 잡다한 지식을 습득했고, 무엇보다 재밌었다. 이후 회사 안밖으로 서비스를 기획하고, 운영하고, 대응하는 면에서 달라진것은 덤이다.