UGREEN DXP4800PLUS NAS로 AI 자동화 시스템 구축하기 (Docker + PostgreSQL + YouTube API + n8n 완전 가이드)

 처음에는 단순히 유튜브 쇼츠 트렌드를 수집하려고 했다.

그런데 데이터를 저장할 DB가 필요했고, 자동화 워크플로가 필요했고, TTS가 필요했고, 컨테이너 관리가 필요했다. 하나를 해결하면 다음 문제가 보였다. 결국 하나의 AI 자동화 시스템으로 발전했다.

이 글은 UGREEN DXP4800PLUS NAS 위에서 실제로 운영 중인 AI 자동화 시스템의 전체 구조를 정리한 글이다. 각 컴포넌트를 왜 선택했는지, 어떻게 연결했는지를 중심으로 설명한다. 각 기술의 상세 내용은 개별 글 링크로 연결한다.


전체 아키텍처

YouTube API
      ↓
Collector (수집기)
      ↓
PostgreSQL (데이터 저장)
      ↓
FastAPI (대시보드 + API)
      ↓
Edge-TTS (음성 생성)
      ↓
Video Generator (영상 합성)
      ↓
drafts 폴더 저장

n8n (워크플로 자동화)
      ↓
Telegram (알림)

모든 서비스는 UGREEN DXP4800PLUS NAS에서 Docker 컨테이너로 운영된다.


왜 NAS를 선택했는가

클라우드 서버를 쓰면 월 고정 비용이 발생한다. 여러 서비스를 동시에 운영하면 비용이 빠르게 늘어난다.

UGREEN DXP4800PLUS는 현재 20개 이상의 Docker 컨테이너를 동시에 운영하면서도 CPU와 메모리에 여유가 있다. 초기 구매 비용이 있지만 월 운영 비용은 전기세뿐이다.


Docker 계층: 모든 서비스의 기반

Docker가 없었다면 PostgreSQL, FastAPI, n8n을 각각 별도로 설치하고 관리해야 했다. Docker Compose로 각 서비스를 컨테이너 단위로 격리하고 하나의 스택으로 관리한다.

NAS 재부팅 후에도 restart: unless-stopped 설정으로 모든 서비스가 자동 복구된다. 처음 구축할 때 depends_on만으로는 서비스 시작 순서가 보장되지 않는다는 것을 겪었다. healthcheckcondition: service_healthy 조합이 필요하다.

관련 글:


PostgreSQL 계층: 수집 데이터 영구 저장

처음에는 파일로 저장했다. 수집 데이터가 늘어나면서 중복 제거, 검색, 통계 계산이 필요해졌다. PostgreSQL로 전환했다.

중요한 것은 Docker 볼륨 설정이다. 볼륨 없이 운영하다가 컨테이너 재생성 시 수백 개의 수집 데이터가 사라지는 경험을 했다. NAS 환경에서는 /volume2/docker/ 하위에 Bind Mount 방식으로 데이터를 영구 보존한다.

현재 수집 영상 약 700개, 스냅샷 4만 개 이상이 PostgreSQL에 저장되어 있다.

관련 글:


YouTube API 계층: 트렌드 데이터 수집

30분마다 YouTube Data API로 트렌드 영상을 수집한다. 처음에는 모든 조회에 search.list를 사용했다가 하루 만에 쿼터가 소진됐다.

핵심 원칙은 단순하다.

신규 발견 → search.list (100유닛)
기존 갱신 → videos.list (1유닛)

수집 주기도 분리했다. 매시 0~29분은 글로벌 키워드 수집, 매시 30~59분은 기존 영상 갱신만 실행한다. 하루 API 사용량이 8,000유닛에서 4,000유닛으로 줄었다.

관련 글:


Edge-TTS 계층: 무료 한국어 음성 생성

수집된 트렌드 데이터로 쇼츠 영상을 자동 생성하는 파이프라인에서 TTS가 필요했다. ElevenLabs, OpenAI TTS는 비용이 발생한다. Edge-TTS는 무료이면서 한국어 품질이 실용적인 수준이다.

두 가지 문제를 겪었다. 영문 혼재 시 발음 오류(vs → 이상한 발음, API → 에이피아이)와 자막 싱크 불일치다. 전처리 규칙과 --write-subtitle 옵션으로 해결했다.

관련 글:


n8n 계층: 자동화의 관제 시스템

n8n은 스케줄링, 알림, 외부 서비스 연동을 담당한다. 코드 없이 워크플로를 만들 수 있어서 반복 작업 자동화에 유용하다.

현재 운영 중인 워크플로:

매일 09:00
↓
기업마당 정책자금 공고 수집
↓
신규 공고 필터링
↓
Telegram 자동 알림

같은 구조로 GitHub 이슈 알림, 서버 상태 모니터링 등 다양한 자동화를 추가할 수 있다.

관련 글:


실제 운영 중인 서비스

현재 운영 중인 AI 자동화 스택:

├─ shorts-api (FastAPI 트렌드 대시보드)

├─ shorts-postgres (PostgreSQL)

├─ n8n (워크플로 자동화)

├─ hermes (AI 브리핑 에이전트)

└─ Edge-TTS 파이프라인 (영상 자동 생성)

이외에도 별도의 자동매매 시스템과 미디어 서버를 같은 NAS에서 운영 중이다.


앞으로 추가 예정

모니터링 대시보드 (Grafana + Prometheus)
AI 에이전트 고도화
Video Factory 자동화 완성
Blogger 자동 발행 연동

관련 글 모음

Docker / NAS 인프라

YouTube 자동화

개발 문제 해결

자동화 워크플로

댓글

이 블로그의 인기 게시물

UGREEN DXP4800PLUS NAS로 유튜브 쇼츠 자동화 시스템 구축기 (Docker · FastAPI · PostgreSQL · Edge-TTS)

YouTube Data API 쿼터 초과를 피하는 방법 (700개 쇼츠 수집 사례)

FastAPI app.mount 사용 후 API가 404가 되는 이유와 해결 방법