파일 관리를 넘어 미디어 경험 플랫폼으로
기업 내부의 파일 관리 시스템이 단순한 저장소를 넘어 통합 미디어 플랫폼으로 진화하고 있습니다. 전통적인 파일 스테이션과 노트 스테이션만으로 구성되던 시스템이 이제 음악, 사진, 영상, 전자책까지 아우르는 6개의 전문 스테이션으로 확장됩니다. 이러한 변화는 단순히 기능을 추가하는 것이 아니라, 업무 환경에서 다양한 형태의 콘텐츠를 효율적으로 관리하고 공유하려는 현대 조직의 요구를 반영합니다.
이번 확장 개발의 핵심은 기존 인프라를 최대한 재사용하면서도 각 미디어 유형에 최적화된 경험을 제공한다는 점입니다. 파일의 실제 저장, 업로드, 권한 관리, 휴지통 기능은 이미 검증된 파일 스테이션 체계를 그대로 활용하고, 새로운 스테이션들은 그 위에 메타데이터 레이어를 얹는 방식으로 구현됩니다. 이는 시스템의 복잡도를 낮추면서도 전문적인 미디어 관리 기능을 제공하는 현명한 아키텍처 선택입니다.
음악 감상의 즐거움을 더하는 뮤직 스테이션
뮤직 스테이션은 파일 스테이션에 저장된 오디오 파일을 장르별로 분류하고 재생 목록처럼 제공하는 간편한 음악 플레이어 역할을 합니다. 멜론이나 네이버 뮤직과 같은 대중적인 음악 스트리밍 서비스의 간이형 인터페이스를 제공하여, 사용자는 장르 탭을 선택하고 트랙 리스트에서 원하는 곡을 골라 재생할 수 있습니다.
이 스테이션의 핵심은 하단에 고정된 미니 플레이어입니다. 이전 곡, 재생/일시정지, 다음 곡 등 기본적인 재생 컨트롤을 제공하며, 현재 선택한 장르의 전체 트랙이 재생 목록으로 설정됩니다. 각 트랙에는 제목, 아티스트, 커버 썸네일, 재생 횟수 등의 정보가 포함되며, 별도의 커버 이미지가 없는 경우 파일 스테이션의 기본 썸네일을 활용합니다. 초기 버전에서는 개인별 플레이리스트 생성 기능은 제외되지만, 향후 확장을 위한 여지를 남겨둡니다.
시각적 경험을 극대화하는 포토 스테이션
포토 스테이션은 사실상 완전히 새로운 기능이 아닙니다. 이미 구현되어 있던 갤러리 공유 기능을 정식 메뉴로 승격시키고 카테고리 분류 체계를 추가한 것입니다. 이는 개발 리소스를 효율적으로 활용하는 동시에, 이미 검증된 기능을 더 접근하기 쉽게 만드는 현명한 전략입니다.
기존의 갤러리 프로젝트 테이블에 카테고리 식별자 컬럼만 추가하면, 사용자는 카테고리별로 정리된 사진 갤러리를 한눈에 볼 수 있게 됩니다. 썸네일 뷰어, 포토 슬라이드, 공유 링크 생성 등 기존의 모든 기능은 그대로 유지되며, 단지 카테고리라는 조직화 레이어가 추가될 뿐입니다. 이는 최소한의 변경으로 최대한의 사용성 개선을 이루는 사례입니다.
OTT 수준의 영상 관리, 비디오 스테이션
비디오 스테이션은 이번 확장 중 가장 야심찬 프로젝트입니다. TVING이나 쿠팡플레이 같은 OTT 서비스의 사용자 경험을 기업 내부 영상 관리 시스템에 그대로 구현합니다. 장르별 가로 스크롤 썸네일 목록, 맨 위에 배치되는 이어보기 레인, 각 영상마다 제공되는 소개 페이지와 배경 이미지 등이 그 특징입니다.
특히 주목할 만한 기능은 사용자별 시청 기록과 이어보기 시스템입니다. 사용자가 영상을 시청하면 10초마다, 그리고 일시정지나 종료 시점에 현재 재생 위치가 자동으로 저장됩니다. 다음에 같은 영상을 열면 마지막으로 시청하던 지점부터 자동으로 재생이 시작되어, 마치 넷플릭스를 사용하는 것과 같은 편리한 경험을 제공합니다. 시청 진행률은 새로 시작, 시청 중, 완료 등의 상태로 관리되며, 이어보기 레인에는 시청 중인 영상들이 최근 시청 순서대로 표시됩니다.
각 영상에는 제목, 줄거리, 썸네일, 배경 이미지 외에도 개별 공유 링크가 생성될 수 있습니다. 이 링크를 통해 비로그인 사용자도 특정 영상에 접근할 수 있으며, 이는 외부 협력사나 고객에게 교육 영상이나 홍보 자료를 공유할 때 매우 유용합니다. 다만 공유 링크로 시청하는 경우에는 진행률이 저장되지 않아 내부 사용자와 외부 사용자의 경험을 적절히 구분합니다.
비디오 스테이션은 향후 LMS 확장 가능성도 염두에 두고 설계됩니다. 현재 단계에서는 구현하지 않지만, 나중에 시리즈 식별자, 에피소드 번호, 학습 완료 여부, 퀴즈 통과 여부 같은 컬럼을 추가하기만 하면 교육 플랫폼으로 전환할 수 있도록 테이블 구조를 단순하게 유지합니다.
나만의 서재를 구현하는 이북 스테이션
이북 스테이션은 기존의 간단한 이북 뷰어를 완전한 디지털 서재 시스템으로 승격시킵니다. 실제 운영 중인 전자책 플랫폼을 벤치마킹하여, 상단 카테고리 탭, 검색 기능, 다양한 정렬 옵션, 그리고 읽기 상태 필터 등을 모두 구현합니다.
사용자는 전체, 건강과 인체, 브랜딩과 마케팅, IT와 AI 이슈, 자기계발 등의 카테고리로 분류된 책장을 탐색할 수 있습니다. 각 책 카드에는 표지 이미지, 카테고리 배지, 제목, 저자 정보와 함께 개인별 읽기 진행률이 표시됩니다. 아직 읽지 않은 책에는 읽기 시작하기 버튼이, 읽는 중인 책에는 읽는 중 3퍼센트 같은 진행 상황이 나타납니다.
정렬 기능도 다양합니다. 최신순으로 새로 추가된 책을 확인하거나, 제목순과 저자순으로 알파벳 정렬을 하거나, 읽기 진행률순으로 거의 다 읽은 책부터 볼 수도 있습니다. 상태 필터를 사용하면 모든 책, 읽는 중인 책, 완료한 책, 아직 읽지 않은 책을 분류해서 볼 수 있어, 개인 독서 관리가 체계적으로 이루어집니다.
책을 클릭하면 기존의 이북 뷰어가 열리며, 페이지를 넘길 때마다 현재 페이지와 전체 페이지 수, 읽기 퍼센트가 자동으로 저장됩니다. 다음에 같은 책을 열면 마지막으로 읽던 페이지가 자동으로 표시되어, 종이책에 책갈피를 꽂아두는 것처럼 자연스러운 독서 경험을 제공합니다.
아키텍처 설계의 지혜, 중복 없이 확장하기
이번 확장 개발에서 가장 중요한 설계 원칙은 기존 인프라의 철저한 재사용입니다. 파일의 실제 저장, 업로드, 삭제, 권한 관리, 휴지통 처리는 모두 이미 검증된 파일 스테이션의 서비스를 그대로 사용합니다. 새로운 스테이션들은 파일 스테이션의 파일 테이블을 외래 키로 참조하면서, 장르나 카테고리 분류, 썸네일과 배경 이미지, 공유 링크, 사용자별 진행률 같은 메타데이터만 추가로 관리합니다.
이러한 접근 방식은 개발 시간과 유지보수 비용을 크게 절감합니다. 업로드 기능을 네 번 따로 만들 필요가 없고, 권한 체계를 여러 번 구현할 필요도 없습니다. 파일 스테이션에서 한 번 해결된 문제는 모든 스테이션에서 자동으로 해결되며, 버그 수정이나 성능 개선도 한 곳에서만 이루어지면 전체에 적용됩니다.
공유 링크 체계도 통일됩니다. 이미 갤러리 프로젝트에서 검증된 40자 무작위 토큰 방식을 그대로 비디오 스테이션에도 적용하여, 시스템 전체에서 일관된 공유 경험을 제공합니다. 썸네일 생성과 저장 경로도 기존의 스토리지 경로 서비스와 썸네일 서비스 규칙을 그대로 확장하여 사용합니다.
다만 분류 체계만큼은 철저히 분리됩니다. 노트 스테이션의 카테고리 테이블과 새로운 스테이션들의 장르나 카테고리 테이블은 완전히 독립적으로 운영됩니다. 이는 노트와 파일을 분리했던 기존 설계 철학의 연장선이며, 각 스테이션이 독자적으로 진화할 수 있는 여지를 남겨둡니다.
단계적 구축 전략, 검증된 것부터 시작하기
여섯 개의 스테이션 중 노트와 파일은 이미 완성되어 있으므로, 실제 개발 대상은 네 개입니다. 이들을 한꺼번에 만들지 않고 기존 인프라 재사용도가 높은 순서로 단계적으로 구축합니다. 포토 스테이션이 가장 먼저입니다. 갤러리 공유 기능을 메뉴로 승격하고 카테고리 컬럼만 추가하면 되므로, 가장 빠르게 완성할 수 있습니다.
다음은 이북 스테이션입니다. 이북 뷰어 자체는 이미 존재하므로, 서재 화면과 카테고리 체계, 읽기 진행률 저장 기능만 추가하면 됩니다. 세 번째는 뮤직 스테이션으로, 오디오 재생은 브라우저 기본 기능을 활용하고 장르 분류와 미니 플레이어 UI만 새로 만듭니다.
마지막이 비디오 스테이션입니다. 신규로 추가되는 필드가 가장 많고, 배경 이미지와 소개 페이지, 시청 진행률과 이어보기 시스템 등 구현해야 할 기능도 가장 복잡하기 때문입니다. 하지만 앞선 세 스테이션을 구축하면서 쌓인 경험과 패턴이 비디오 스테이션 개발에도 그대로 적용될 수 있어, 학습 곡선의 이점을 누릴 수 있습니다.
각 스테이션은 데이터베이스 마이그레이션, 모델 클래스, API 라우트, 프론트엔드 화면 순서로 레이어별로 개발됩니다. 한 번에 한 스테이션, 한 턴에 한 레이어씩 진행하여 개발 리스크를 최소화하고 각 단계에서 충분한 테스트를 거칩니다.
미래를 위한 설계, 확장 가능성 확보
이번 확장 개발은 현재의 요구사항만 충족하는 것이 아니라, 미래의 확장 가능성도 함께 고려합니다. 비디오 스테이션은 당장 LMS 기능을 구현하지 않지만, 나중에 시리즈 구조나 학습 진도 관리 컬럼을 추가하기만 하면 교육 플랫폼으로 발전할 수 있도록 테이블 구조를 단순하고 유연하게 유지합니다.
뮤직 스테이션도 개인별 플레이리스트 기능은 1차 범위에서 제외하지만, 추후 사용자 테이블과의 관계 테이블만 추가하면 쉽게 구현할 수 있습니다. 좌측 메뉴 구성도 네 개의 새 스테이션을 미디어라는 상위 메뉴로 묶어, 향후 추가 미디어 유형이 생겨도 사이드바가 지나치게 복잡해지지 않도록 대비합니다.
진행률 저장 방식도 신중하게 설계됩니다. 영상은 10초 간격과 일시정지 및 종료 시점에, PDF는 페이지 전환 시마다 저장하여, 사용자 경험을 해치지 않으면서도 데이터베이스 부하를 최소화합니다. 시청 진행률과 별도로 이벤트 로그를 남겨, 나중에 시청 패턴 분석이나 감사 목적으로 활용할 수 있는 여지도 남겨둡니다.
파일 관리 시스템이 미디어 경험 플랫폼으로 진화하는 이번 확장은, 단순히 기능을 늘리는 것이 아니라 조직 내 지식과 콘텐츠의 활용 방식을 근본적으로 바꾸는 변화입니다. 음악을 듣고, 사진을 감상하고, 영상을 학습하고, 책을 읽는 모든 경험이 하나의 통합된 플랫폼 안에서 일관되게 제공되며, 각자의 진행 상황이 체계적으로 관리되는 환경이 만들어집니다.

댓글 0