메인 콘텐츠로 건너뛰기
2026-10-30PureStream개발 주간 보고서라이브러리 스캔Subsonic

PureStream 10월 개발 주간 보고서: 더 빠른 라이브러리 스캔, 더 안정적인 원격 재생

이번 달 PureStream은 대규모 라이브러리 스캔 최적화, 서드파티 Subsonic 클라이언트 호환성 개선, 홈 서버 Web 인터페이스 개편 및 원격 접근 보안 강화를 완료했습니다. 47,500곡 라이브러리의 정상 상태 재스캔은 약 0.9초가 소요되며, 1만 곡 디렉터리 로딩 시간은 약 1.3초에서 약 40밀리초로 단축되었습니다.

PureStream 10월 개발 주간 보고서: 더 빠른 라이브러리 스캔, 더 안정적인 원격 재생

10월 한 달 동안 PureStream은 대규모 라이브러리 스캔, 서드파티 생태계 호환성, 홈 서버 Web 인터페이스 및 원격 접근 보안 강화에 집중했습니다. 음악 애호가에게 있어 방대한 컬렉션의 매끄러운 관리와 언제 어디서나 끊김 없는 안정적인 감상은 무엇보다 중요합니다.

⚡️ 스캔 성능의 도약: 대규모 라이브러리의 초고속 점검과 안정적인 등록

대용량 외장 기계식 하드 드라이브(예: 10TB, 50만 곡)에 저장된 대규모 라이브러리의 경우, 기존에는 중복 확인 시 파일 내부를 하나씩 깊게 읽어 들이면서 심각한 디스크 스래싱과 긴 대기 시간이 발생했습니다.

이번 달에는 음악 라이브러리 스캔 메커니즘을 전면 재구축했습니다:

  • 미변경 파일 초고속 건너뛰기: 스캔에 패스트 패스 비교 방식을 도입했습니다. 파일 크기와 수정 시간이 일치하면 파일을 다시 열거나 오디오 태그를 재판독하지 않고, 콘텐츠 지문을 재계산하지도 않은 채 즉시 건너뜁니다.
  • 스캔 소요 시간 대폭 단축: 테스트 환경에서 수만 곡 규모의 라이브러리 스캔 속도가 비약적으로 향상되었습니다(실제 소요 시간은 하드웨어 및 파일 수에 따라 달라질 수 있습니다):
라이브러리 규모 및 시나리오 최적화 후 소요 시간(참고치) 성능 및 경험
47,500곡 정상 상태 재스캔 약 0.9초 초고속 완료, 중복 디스크 읽기가 거의 발생하지 않음
32,000곡 최초 스캔 약 65초 오디오 분석이 더욱 가볍고 빨라짐
47,500곡 최초 스캔 약 3분 전 과정에 걸쳐 안정적이고 질서 있는 I/O 유지
  • 예측 가능한 진행 상태 피드백: 스캔 화면에서 처리 완료, 재생 가능, 실패 수량 및 예상 잔여 시간을 실시간으로 표시합니다. 여러 폴더를 마운트한 경우 '제 N/M번째 음악 폴더’로 명확히 표시됩니다. 실패한 파일은 미리보기와 분류를 지원하며, 시스템 트레이에서도 스캔 상태를 확인할 수 있습니다.
  • 대형 디렉터리 마무리 실패 오류 수정: 이전에는 47,500개 파일이 포함된 대형 단일 디렉터리에서 스캔 마무리 단계의 백그라운드 대기 로직 문제로 인해 모든 파일 처리가 끝난 뒤에도 실패로 오판되는 현상이 있었습니다. 수정 후 동일한 대형 디렉터리에서도 안정적으로 마무리를 완료합니다.

🌐 서드파티 Subsonic 클라이언트 전면 호환

원하는 재생 도구를 자유롭게 선택할 수 있도록 PureStream은 서드파티 Subsonic 클라이언트 생태계와의 호환성을 대폭 강화했습니다:

  • 주요 클라이언트와의 매끄러운 연결: Feishin, Amperfy 등 다양한 클라이언트에서 실측을 거쳤으며, 음악 탐색, 검색, 즐겨찾기 및 부드러운 재생을 지원합니다.
  • 응답 속도 향상 및 전송량 경량화: 1만 곡 라이브러리의 루트 디렉터리 로딩 시간이 약 1.3초에서 약 40밀리초로 크게 줄었으며, 대규모 즐겨찾기 목록의 데이터 전송 크기는 기존의 약 1/12 수준으로 축소되었습니다.
  • 다중 음원 독립 격리: 서로 다른 음악 소스에 존재하는 동일한 이름의 앨범과 아티스트를 독립적으로 분류 및 보관하여 서로 덮어쓰지 않습니다.

🎨 홈 서버 Web 인터페이스의 편안하고 따뜻한 업그레이드

홈 서버 Web 인터페이스의 새로운 시각적 리팩토링을 완료했습니다:

  • 편안한 배경 톤: 다크 모드에 더욱 부드럽고 따뜻한 뉴트럴 톤을 적용하여 장시간 탐색해도 눈의 피로가 적습니다.
  • 커버 중심의 정돈된 레이아웃: 앨범 벽은 음반 커버를 중심으로 구성하고 불필요한 카드 테두리를 제거했으며, 트랙 목록이 더욱 산뜻해졌습니다.
  • 명확한 구조의 내비게이션: 데스크톱 사이드바를 '음악 라이브러리 / 지금 재생 중 / 관리’로 재구성하여 기본적으로 앨범 라이브러리로 바로 이동하며 상태 페이지도 언제든 접근할 수 있습니다. 모바일 너비에서는 하단 내비게이션으로 자동 전환됩니다.
  • 편리한 재생 바: 재생 진행 바를 상단에 밀착시키고 소형 화면에서는 2줄 레이아웃으로 접히며, 슬라이더 터치 영역을 44픽셀 이상으로 유지하여 오터치를 방지했습니다.
  • 멀티 디바이스 검증: 11개 핵심 페이지를 다크/라이트 모드, 데스크톱/모바일 너비에서 검증하여 가로 넘침이나 프론트엔드 오류가 발생하지 않음을 확인했습니다.

🔐 더욱 안정적인 원격 접근, 더욱 안전한 재생 계정

  • 구독 자동 대사: App Store 및 Microsoft Store 구독을 매일 자동으로 대사하여 환불, 취소 또는 만료 상태를 더욱 신속하고 정확하게 동기화합니다.
  • 유연하고 부드러운 권한 처리: 구독 상태가 변경되더라도 기록 표시만 수행하며 현재 재생 중인 음악을 강제로 중단하지 않습니다. 기기 권한 회수는 언제나 관리자의 수동 조작으로만 진행됩니다.
  • 초 단위 기기 재연동: 기기를 다시 연동하거나 변경할 때 한 번의 작업으로 기존 인증 정리와 신규 인증 발급을 완료하며, '잠시 후 다시 시도해 주세요’라는 안내가 더 이상 나타나지 않습니다.
  • 온라인 상태 감지: 홈 서버가 정기적으로 온라인 상태를 보고하여 관리 화면에서 기기의 접속 여부를 쉽게 확인할 수 있습니다.
  • 듀얼 재생 기기 지원: 단일 가구 기준으로 기본 2대의 재생 기기(예: Mac과 iPhone 조합) 동시 연결을 지원합니다.
  • 계정 보안 강화: 서버에 재생 계정 비밀번호를 저장하지 않습니다. 플레이어는 기기 인증을 통해 홈 서버로부터 일회성 임시 계정 정보를 직접 발급받아 사용 후 즉시 폐기합니다. 또한 네트워크 연결 불가, 연동 실패, 인증 만료를 세부적으로 구분하여 안내하며, 단순히 '연결 실패’로만 표시하지 않습니다.

🖥 데스크톱 환경 및 런타임 개선

  • 부팅 시 자동 시작: 트레이 메뉴에서 시스템 시작 시 자동 실행 설정을 공식 지원합니다.
  • 세션 무음 리다이렉트: 로그인 만료 시 ‘세션이 만료되었습니다’ 팝업을 띄우지 않고 로그인 페이지로 즉시 이동합니다.
  • 네이티브 오디오 파싱: 오디오 태그 파싱 방식을 네이티브 정적 라이브러리로 전환하여 런타임에 파싱 컴포넌트를 임시 컴파일하지 않으므로 실행 및 스캔이 한결 가벼워졌습니다.
  • 런타임 로그 보강: 시스템 비정상 종료 및 이상 요청 로그를 보강하여 잠재적인 문제를 신속하게 추적할 수 있습니다.
  • 파일 필터링 및 직관적인 상태 확인: 시스템 숨김 파일과 불필요한 항목을 기본적으로 건너뛰며, 트레이에서 처리 완료, 재생 가능, 실패의 3가지 지표를 바로 확인할 수 있습니다.

📌 알려진 문제 및 향후 계획

현재 버전에서는 다음 문제들을 지속적으로 개선하고 있습니다:

  1. 일부 외장 하드 드라이브, 네트워크 공유 및 Windows 기기에서의 스캔 성능을 계속 검증 중이며, 실제 속도는 하드웨어 및 파일 수에 영향을 받습니다.
  2. 스캔 화면의 화면 낭독기 음성 안내를 지속적으로 다듬고 있으며, 일부 실패 유형 안내 문구를 보강하고 있습니다.
  3. Microsoft Store 구독의 환불, 취소 등 다양한 시나리오에 대한 검증 범위를 지속적으로 확대할 예정입니다.

앞으로도 외장 하드 드라이브, 네트워크 공유 및 Windows 기기 검증을 완료하고, 접근성 음성 안내 및 실패 유형 문구를 보완하며, 구독 대사 지원 범위를 넓혀 나갈 계획입니다.