집에서 영화나 드라마, 음악 같은 미디어 파일을 관리하다 보면 단순히 컴퓨터의 폴더에 파일을 저장하는 것만으로는 조금 아쉬울 때가 있습니다. 파일이 많아질수록 원하는 콘텐츠를 찾는 것도 번거롭고, 다른 기기에서 감상하려면 파일을 직접 옮기거나 공유해야 하기 때문입니다.
저도 서버에 여러 서비스를 구성하면서 단순히 파일을 저장하는 것과 편하게 이용하는 것은 꽤 다르다는 것을 느꼈습니다. 특히 컴퓨터뿐만 아니라 스마트폰이나 TV처럼 다양한 기기에서 저장된 콘텐츠를 편하게 이용하고 싶다면 미디어 관리 프로그램을 활용하는 것이 훨씬 편리합니다.
이때 활용할 수 있는 대표적인 오픈소스 프로그램 중 하나가 Jellyfin입니다.
Jellyfin이란 무엇인가?
Jellyfin은 개인이 보유한 미디어 파일을 하나의 서버에서 관리하고 다양한 기기에서 재생할 수 있도록 도와주는 오픈소스 미디어 서버 프로그램입니다.
쉽게 말하면 서버에 저장해 놓은 영화, 드라마, 음악, 사진 등의 콘텐츠를 보기 좋게 정리하고 다른 기기에서 접근할 수 있도록 만들어주는 프로그램이라고 생각하면 됩니다.
파일을 단순한 폴더 형태로 보관하는 것과 달리 Jellyfin을 이용하면 콘텐츠에 대한 정보를 확인하고 종류별로 정리된 형태로 관리할 수 있습니다.
특히 나만의 서버에 이미 많은 미디어 파일을 저장하고 있다면 Jellyfin을 통해 개인 미디어 라이브러리를 만들어 볼 수 있습니다.
Jellyfin을 Docker로 운영하는 이유
Jellyfin은 일반적인 프로그램처럼 운영체제에 직접 설치할 수도 있지만, 나만의 서버에서는 Docker를 이용해 구성하는 방법도 많이 활용됩니다.
앞서 Docker에 대해 알아본 것처럼 Docker를 이용하면 프로그램을 하나의 독립적인 컨테이너 환경에서 관리할 수 있습니다.
이 방식의 장점은 Jellyfin과 서버의 다른 서비스들을 어느 정도 분리해서 관리할 수 있다는 것입니다.
예를 들어 같은 서버에서 개인 클라우드나 모니터링 프로그램 등을 함께 운영하고 있다면 각 서비스를 별도의 컨테이너로 구성해 관리할 수 있습니다.
또한 서버를 다시 구성해야 하는 상황에서도 Jellyfin의 설정과 미디어 데이터가 적절하게 분리되어 있다면 기존 환경을 다시 구성하기가 비교적 편리합니다.
다만 Docker를 사용한다고 해서 데이터 관리가 자동으로 해결되는 것은 아닙니다. 중요한 것은 Jellyfin의 프로그램 자체와 실제 미디어 파일을 구분해서 관리하는 것입니다.
Jellyfin에서는 어떤 기능을 사용할 수 있을까?
Jellyfin의 기본적인 역할은 미디어 라이브러리를 관리하고 재생하는 것입니다.
서버에 저장된 콘텐츠를 영화, 드라마, 음악 등의 형태로 구분해 관리할 수 있으며, 미디어 정보를 보기 편한 형태로 확인할 수 있습니다.
또한 여러 기기에서 서버에 접속해 콘텐츠를 감상할 수 있다는 점도 큰 장점입니다.
집에 있는 PC에서만 파일을 재생하는 것이 아니라 네트워크를 통해 다른 컴퓨터나 모바일 기기, 지원되는 TV 환경 등에서 콘텐츠를 이용할 수 있습니다.
이러한 구조를 사용하면 미디어 파일을 여러 기기에 중복해서 저장할 필요가 줄어듭니다.
하나의 서버에 원본 파일을 보관하고 필요한 기기에서 서버에 접속하는 방식으로 관리할 수 있기 때문입니다.
미디어 파일을 어떻게 관리하는 것이 좋을까?
Jellyfin을 처음 구성할 때는 프로그램 설치보다 미디어 파일을 어떻게 정리할 것인지 먼저 생각하는 것이 좋습니다.
영화와 드라마, 음악처럼 콘텐츠의 종류를 구분하고 파일 이름과 폴더 구조를 일정한 규칙으로 유지하면 나중에 라이브러리를 관리하기가 훨씬 편해집니다.
파일이 수백 개 이상으로 늘어나면 처음에는 아무렇게나 저장했던 작은 차이가 상당히 큰 관리 문제로 이어질 수 있습니다.
특히 파일 이름이 제각각이면 Jellyfin이 콘텐츠 정보를 제대로 인식하지 못하는 경우도 있을 수 있습니다.
따라서 처음부터 일정한 폴더 구조와 파일 이름 규칙을 정해두는 것이 좋습니다.
또한 미디어 파일 자체는 중요한 데이터이므로 Jellyfin 컨테이너를 관리하는 것과 별개로 백업 계획도 생각해야 합니다.
트랜스코딩이란 무엇인가?
Jellyfin을 사용하면서 알아두면 좋은 개념 중 하나가 트랜스코딩입니다.
서버에 저장된 영상 파일을 재생하는 기기의 성능이나 네트워크 환경에 따라 원본 영상을 그대로 재생하기 어려운 경우가 있습니다.
이때 서버가 영상을 재생 가능한 형태로 변환해서 전달하는 작업을 트랜스코딩이라고 합니다.
문제는 영상 변환 작업에 상당한 컴퓨팅 자원이 필요할 수 있다는 것입니다.
특히 고해상도 영상이나 여러 사용자가 동시에 영상을 재생하는 환경에서는 CPU 사용량이 크게 증가할 수 있습니다.
따라서 Jellyfin 서버를 구성할 때는 단순히 저장공간만 생각해서는 안 됩니다. 어떤 영상을 주로 이용하는지, 몇 명이 동시에 사용할 것인지, 서버의 CPU가 영상 처리를 얼마나 잘 지원하는지도 함께 고려하는 것이 좋습니다.
하드웨어를 선택할 때 중요한 부분
Jellyfin 서버에서 중요한 하드웨어 중 하나는 CPU입니다.
특히 영상 트랜스코딩이 필요한 환경이라면 CPU 성능과 영상 처리 기능을 확인해야 합니다.
반대로 대부분의 기기에서 원본 영상을 바로 재생할 수 있는 환경이라면 서버에서 별도의 변환 작업이 거의 발생하지 않을 수도 있습니다.
저장장치 역시 중요합니다.
영상 파일은 하나의 파일 크기가 상당히 큰 경우가 많기 때문에 미디어 서버를 운영할 계획이라면 충분한 저장공간을 확보해야 합니다.
대용량 데이터를 장기간 보관한다면 HDD를 활용하고 운영체제나 자주 사용하는 서비스는 SSD에 구성하는 식으로 저장장치의 역할을 나누는 방법도 생각할 수 있습니다.
Jellyfin을 외부에서 사용할 때 주의할 점
집 안의 네트워크에서만 Jellyfin을 사용할 때와 인터넷을 통해 외부에서 접속할 때는 고려해야 할 부분이 달라집니다.
외부 접속을 구성하면 집 밖에서도 서버에 접근할 수 있다는 편리함이 생기지만, 동시에 서버 관리에 더욱 신경 써야 합니다.
HTTPS와 같은 안전한 통신 환경을 구성하고 계정 정보를 적절하게 관리하는 것이 중요합니다.
또한 인터넷 회선의 업로드 속도도 고려해야 합니다.
집에서 서버에 저장된 영상을 외부에서 재생하는 경우 서버가 영상을 인터넷으로 전송해야 하기 때문입니다.
따라서 외부에서 Jellyfin을 사용할 계획이라면 서버의 성능뿐만 아니라 네트워크 환경까지 함께 확인하는 것이 좋습니다.
Jellyfin을 사용할 때 주의해야 할 점
Jellyfin은 개인 미디어 서버를 구성하는 데 유용하지만, 어떤 콘텐츠든 자유롭게 배포해도 된다는 의미는 아닙니다.
자신이 적법하게 보유하고 이용할 권리가 있는 콘텐츠를 중심으로 사용하는 것이 중요합니다.
또한 미디어 파일이 많아질수록 저장공간 관리도 중요해집니다.
사용하지 않는 파일이 계속 쌓이면 디스크 공간이 빠르게 부족해질 수 있습니다. 따라서 주기적으로 저장공간을 확인하고 필요하지 않은 파일을 정리하는 습관을 들이는 것이 좋습니다.
무엇보다 중요한 콘텐츠를 저장하고 있다면 별도의 백업을 준비하는 것이 좋습니다. Jellyfin 자체가 데이터를 보호해 주는 백업 프로그램은 아니기 때문입니다.
나만의 서버에서 Jellyfin을 사용해 본다면
Jellyfin의 가장 큰 매력은 단순한 파일 저장 공간을 개인적인 미디어 라이브러리로 바꿀 수 있다는 점이라고 생각합니다.
처음에는 서버에 영상을 저장하는 것만으로도 충분하다고 생각할 수 있지만, 콘텐츠가 많아지면 파일을 찾아 재생하는 과정 자체가 번거로워집니다.
Jellyfin을 이용하면 저장된 콘텐츠를 한곳에서 관리하고 여러 기기에서 접근할 수 있기 때문에 서버를 활용하는 재미도 더욱 커집니다.
특히 이미 Docker를 사용하고 있다면 Jellyfin을 추가하면서 컨테이너, 저장공간, 네트워크, 하드웨어 자원 등이 실제 서비스에서 어떻게 연결되는지 공부할 수 있다는 점도 좋습니다.
마무리
Jellyfin은 나만의 서버에 저장된 영화, 드라마, 음악 등의 미디어 파일을 하나의 라이브러리로 관리하고 여러 기기에서 이용할 수 있도록 도와주는 오픈소스 미디어 서버입니다.
Docker와 함께 사용하면 다른 서비스와 환경을 분리해서 관리하기 편하고, 서버를 장기간 운영하는 데에도 도움이 될 수 있습니다.
다만 Jellyfin을 구성할 때는 단순히 프로그램을 설치하는 것만 생각해서는 안 됩니다. 미디어 파일을 어떻게 정리할지, 저장공간은 충분한지, 서버의 CPU가 필요한 영상 처리를 감당할 수 있는지, 외부 접속이 필요한지 등을 함께 생각해야 합니다.
저 역시 나만의 서버를 운영한다면 이런 부분을 하나씩 확인하면서 서비스를 추가하는 방식을 선택할 것 같습니다. 처음에는 단순히 파일을 저장하던 서버가 하나의 개인 미디어 공간으로 바뀌는 과정을 직접 경험해 보면 서버를 구축하고 운영하는 재미도 더욱 커지기 때문입니다.