FastAPI에서 APScheduler로 주기 작업 구현하기

백그라운드에서 일정 간격으로 도는 작업(주기 수집, 정리 배치 등)이 필요할 때, 별도의 크론 서버 없이 FastAPI 앱 안에서 처리하는 방법을 정리합니다. 실제 운영 중인 유튜브 쇼츠 자동화 서버에서 트렌드 수집을 주기적으로 돌리는 코드를 기준으로 설명합니다. 이 글의 가정: FastAPI 앱이…

백그라운드에서 일정 간격으로 도는 작업(주기 수집, 정리 배치 등)이 필요할 때, 별도의 크론 서버 없이 FastAPI 앱 안에서 처리하는 방법을 정리합니다. 실제 운영 중인 유튜브 쇼츠 자동화 서버에서 트렌드 수집을 주기적으로 돌리는 코드를 기준으로 설명합니다. 이 글의 가정: FastAPI 앱이…

유튜브 쇼츠를 직접 촬영하지 않고 Python으로 자동 생성하는 시스템을 실제로 운영하고 있다. UGREEN DXP4800PLUS NAS에서 YouTube API로 트렌드 데이터를 수집하고, 성장률 분석 → 주제 선정 → 대본 생성 → 음성 합성 → 영상 합성까지 자동으로 처리한다. 현재 약 1,100개 영상…

YouTube 쇼츠 트렌드를 분석하면서 깨달은 게 있다. 조회수 자체는 별로 의미가 없다는 것이다. 조회수 100만짜리 영상도 6개월 전에 터진 거라면 지금 트렌드가 아니다. 반면 조회수 5,000인 영상이 어제 올라와서 24시간 만에 5,000이 찍혔다면 지금 뜨는 영상이다. 그래서 조회수 대신 성장률을…

UGREEN DXP4800PLUS NAS에서 FastAPI 기반 쇼츠 트렌드 수집 시스템을 운영하고 있다. 현재 DB에는 영상 700개 이상, 스냅샷 40,000개 이상이 쌓여 있고, 30분마다 자동으로 수집·저장이 돌아간다. 이 구조를 만들면서 FastAPI와 PostgreSQL 연동에서 막혔던 부분들을 정리한다. 단순한 예제 코드가 아니라 Docker Compose…

처음에는 단순히 유튜브 쇼츠 트렌드를 수집하려고 했다. 그런데 데이터를 저장할 DB가 필요했고, 자동화 워크플로가 필요했고, TTS가 필요했고, 컨테이너 관리가 필요했다. 하나를 해결하면 다음 문제가 보였다. 결국 하나의 AI 자동화 시스템으로 발전했다. 이 글은 UGREEN DXP4800PLUS NAS 위에서 실제로 운영 중인…

매일 아침 정책자금 공고를 직접 찾아보는 게 번거로웠다. 기업마당(bizinfo.go.kr)에 매일 새로운 공고가 올라오는데 일일이 확인하기가 쉽지 않았다. n8n으로 자동화하면 되겠다는 생각에 워크플로를 만들었다. 결과적으로 매일 오전 9시에 새로운 정책자금 공고가 Telegram으로 자동 발송되는 시스템이 완성됐다. 이 글에서는 UGREEN DXP4800PLUS NAS에서…

YouTube Data API의 현재 quota 구조를 기준으로 search.list와 videos.list의 제한 차이와 호출량을 줄이는 운영 방법을 정리합니다.

Docker Compose에서 depends_on을 설정했는데도 FastAPI 컨테이너가 PostgreSQL 연결에 실패했다. 분명히 postgres가 먼저 시작되도록 설정했는데 왜 이런 문제가 발생한 걸까? 로그를 보니 이런 오류가 찍혀 있었다. could not connect to server: Connection refused Is the server running on host “postgres” and…

Docker로 PostgreSQL을 운영하다가 한 번쯤은 이런 상황을 겪게 된다. 컨테이너를 재생성했더니 데이터베이스가 텅 비어 있었다. 처음에는 PostgreSQL 자체 문제인 줄 알았다. 로그를 확인하고 설정을 점검했지만 이상이 없었다. 원인은 Docker 볼륨 설정이었다. UGREEN DXP4800PLUS NAS에서 쇼츠 자동화 시스템과 트레이딩 봇을 운영하면서…

Docker를 설치하고 나서 처음에는 컨테이너를 하나씩 docker run 명령어로 실행했다. 그런데 서비스가 늘어나면서 문제가 생겼다. 어떤 포트로 실행했는지, 어떤 볼륨을 마운트했는지, 환경변수는 뭘 넣었는지 기억하기 어려워졌다. 결국 Docker Compose로 전환했다. 지금은 docker-compose.yml 파일 하나로 모든 서비스를 관리하고 있다. NAS가 재부팅되어도…