
May 12, 2026
Nobody 3
Nobody 3
크로스 플랫폼 개인 미디어 관리자 및 플레이어
Nobody 3는 흩어진 온라인 미디어를 하나의 데스크톱 환경에서 탐색하고, 개인 보관용 라이브러리처럼 관리할 수 있도록 만든 크로스 플랫폼 GUI 애플리케이션입니다.
최신 버전 다운로드: https://github.com/octxxiii/Nobody3/releases/latest
⸻
프로젝트 소개
처음에는 개인적으로 사용하기 위해 만든 도구였지만, 이후 기능을 정리하고 구조를 개선하면서 하나의 독립적인 데스크톱 애플리케이션 프로젝트로 발전시켰습니다.
단순한 스크립트가 아니라, 사용자가 실제로 조작할 수 있는 인터페이스와 설정, 미니 플레이어, 포맷 관리, 백그라운드 작업 처리 등을 갖춘 형태로 설계했습니다.
Nobody 3의 목표는 간단합니다.
사용자가 자주 이용하는 미디어 콘텐츠를 더 편하게 탐색하고, 정리하고, 재생할 수 있는 개인용 데스크톱 도구를 만드는 것.
⸻
주요 특징
통합 미디어 탐색 환경
YouTube, YouTube Music, SoundCloud와 같은 온라인 미디어 서비스를 하나의 GUI 안에서 탐색할 수 있도록 구성했습니다. 브라우저를 따로 열고, 주소를 복사하고, 외부 도구를 실행하는 흐름을 줄이는 것이 핵심 목표였습니다.
포맷 및 품질 선택 UI
미디어 항목의 포맷, 품질, 해상도 정보를 테이블 형태로 확인할 수 있도록 했습니다. 사용자는 원하는 조건에 맞는 항목을 선택할 수 있으며, 불필요한 정보는 필터링할 수 있습니다.
미니 플레이어
메인 창을 계속 띄워두지 않아도 간단한 재생 제어가 가능하도록 미니 플레이어 모드를 추가했습니다. 항상 위에 표시하는 옵션을 통해 다른 작업 중에도 미디어 제어가 가능하도록 설계했습니다.
설정 및 사용자 환경 저장
사용자 설정, 로그, 캐시 데이터는 OS별 사용자 디렉터리에 저장되도록 구성했습니다. Windows, macOS, Linux 환경을 고려하여 경로 처리와 실행 환경을 분리했습니다.
백그라운드 작업 처리
검색, 분석, 미디어 처리와 같은 작업은 UI가 멈추지 않도록 별도의 서비스 레이어와 워커 구조로 분리했습니다. PyQt의 QThread 기반으로 백그라운드 작업을 처리하며, UI와 비즈니스 로직을 분리하는 방향으로 리팩터링했습니다.
⸻
기술 스택
- Python
- PyQt5
- PyQtWebEngine
- yt-dlp
- FFmpeg
- PyInstaller
- pytest
⸻
아키텍처
Nobody 3는 단일 파일 중심의 초기 구조에서 벗어나, 역할별 모듈로 분리된 구조를 갖도록 개선했습니다.
Nobody/ ├── main.py # 애플리케이션 진입점 ├── config/ # 설정 및 상수 ├── models/ # 도메인 모델 ├── services/ # 백그라운드 작업 ├── utils/ # 공통 유틸리티 └── views/ # UI 컴포넌트
주요 설계 방향은 다음과 같습니다.
- UI와 로직 분리
- MVP 패턴 기반 구조화
- 백그라운드 작업 분리
- OS별 경로 처리
- 설정 및 로그 관리
- 테스트 가능한 모듈 구성
⸻
구현 과정에서 중점적으로 본 부분
Nobody 3는 단순히 기능을 붙이는 것보다, 실제 사용자가 헷갈리지 않고 사용할 수 있는 흐름을 만드는 데 중점을 두었습니다.
특히 다음 부분을 중요하게 다뤘습니다.
- 버튼과 테이블의 사용 흐름
- 포맷 정보의 가독성
- 설정 화면의 복잡도 조절
- 미니 플레이어의 사용성
- 실행 파일 배포 구조
- FFmpeg와 외부 의존성 처리
- 사용자 입력값 검증
- 파일 경로 및 캐시 관리
⸻
보안 및 안정성 고려
사용자 입력과 외부 URL을 다루는 애플리케이션이기 때문에 기본적인 검증 로직을 포함했습니다.
- URL 검증
- 파일명 정리
- 경로 순회 방지
- 입력값 정리
- SSL/TLS 검증
- 로그 및 캐시 경로 분리
⸻
프로젝트를 통해 다룬 기술적 주제
이 프로젝트를 진행하면서 다음과 같은 주제를 직접 구현하고 개선했습니다.
- PyQt 기반 데스크톱 GUI 설계
- WebEngine을 활용한 내장 브라우저 구성
- 비동기 작업과 UI 응답성 유지
- 외부 CLI 도구 연동
- 크로스 플랫폼 실행 환경 고려
- PyInstaller 기반 패키징
- 사용자 설정 및 캐시 관리
- 모놀리식 코드 리팩터링
- 테스트 가능한 구조로의 분리
⸻
현재 상태
Nobody 3는 개인 사용을 위한 도구에서 출발했지만, 현재는 구조화된 데스크톱 애플리케이션 형태로 정리되어 있습니다. Windows 실행 파일 빌드, macOS/Linux 빌드 스크립트, 테스트 코드, 사용자 문서 등을 포함하고 있으며, 계속해서 기능과 구조를 개선하고 있습니다.
⸻
향후 개선 방향
- 멀티 다운로드 큐 개선
- 미디어 라이브러리 관리 기능 강화
- 설정 UI 개선
- 테스트 범위 확장
- 자동 업데이트 방식 검토
- 크로스 플랫폼 배포 안정화
⸻
한 줄 소개
Nobody 3는 온라인 미디어 탐색, 관리, 재생 흐름을 하나의 데스크톱 GUI로 통합한 개인 미디어 관리 애플리케이션입니다.