배경: 실물 이미지 레퍼런스의 필요성 뉴스 기사를 기반으로 뉴스툰을 생성하는 파이프라인에서 직면했던 문제 중 하나는 이미지 생성 모델의 시각적 한계와 환각(Hallucination) 현상이었다. 뉴스 콘텐츠는 독자에게 정확한 사실을 전달해야 하므로 시각 자료의 사실성 역시 매우 중요하다. 하지만 생성형 AI는 텍스트 프롬프트만으로는 기사에 등장하는...
배경 및 문제 상황 뉴스낵의 데이터 파이프라인은 단일 EC2 t4g.medium (ARM64, 4GB RAM) 인스턴스에서 동작한다. 이 한정된 자원 안에서 Airflow, FastAPI, Nginx 컨테이너가 함께 동작해야 하기에 메모리 최적화는 안정적인 서비스 운영을 위해 필수적이었다. 이전 포스팅에서 다루었듯, 인프라 통합 당시 Airfl...
배경 Airflow Web UI Swagger UI를 통한 API 호출 뉴스낵의 콘텐츠 생성 파이프라인이 안정화되면서 운영 환경은 점차 다양해졌다. 내부적으로 자동 스케줄러인 Airflow가 주기적으로 기사 생성을 스케줄링하는 동시에, 예외 ...
들어가며 뉴스낵의 백엔드는 메인 API 서버(Spring Boot), AI 서버(FastAPI), 오케스트레이터(Airflow)라는 성격이 다른 세 시스템이 하나의 DB를 공유하는 구조로 되어있다. 이 복합적인 시스템을 구축하기 위해 보안·비용·재현성 세 가지를 동시에 만족하는 인프라 아키텍처를 설계했다. 이 글에서는 초기 VPC 설계부터 Ngin...
배경: 인프라 고정 비용 최적화의 필요성 뉴스낵의 MVP 개발을 마무리하고 운영이 시작되자 인프라 고정 비용에 대한 고려가 필요해졌다. 초기에는 안정성을 명목으로 메인 API 서버(Spring Boot), AI 서버(FastAPI), 오케스트레이터(Airflow)를 각각 서로 다른 3대의 분리된 EC2 t3.small (x86 아키텍처, 2GB RA...
들어가며 이전 글에서는 단일 노드 환경에서 Airflow를 도입하여 뉴스낵의 핵심 데이터 파이프라인을 구축한 경험을 공유했다. 하지만 이 파이프라인은 운영 단계에서 LLM API의 장애 등 통제 불가능한 외부 변수로 인한 한계를 보였다. 이 글에서는 파이프라인의 단일 장애점과 데이터 정합성 문제를 해결하기 위해, 시스템의 제어권을 Airflow로 ...
들어가며 뉴스낵은 매시간 언론사 RSS를 수집하고, 매일 2회 기사들을 바탕으로 상위 이슈를 선별하고, 각 이슈들에 대한 AI 기사(뉴스툰)를 만든 후, 최종적으로 오늘의 뉴스낵까지 만드는 긴 호흡의 데이터 생성 프로세스를 거친다. flowchart LR A([기사 수집]) --> B([이슈 클러스터링]) B --> C([...
들어가며 뉴스낵은 매일 새로운 기사가 쏟아지는 뉴스 피드 중심의 서비스다. 피드형 애플리케이션에서 조회 성능은 사용자 경험(UX)과 직결된다. 백엔드 API를 설계할 때 가장 먼저 선택해야 했던 것이 페이징 전략이었다. 기술적 선택지는 크게 두 가지였다. Offset 기반: SELECT ... LIMIT N OFFSET M으로 원하는 페...
들어가며 서비스를 운영하다 보면 외부 요인으로 인한 서비스 장애를 마주하곤 한다. 1월 29일 오후 5시, 팀 계정으로 사용하던 구글 계정에 접속하자 로그아웃 상태와 함께 본인인증 화면이 나타났다. 인증을 시도하자 계정이 보안 정책 위반으로 정지됐다는 화면이 출력되었다. 이의신청만 가능했고 명확한 복구 일정은 알 수 없는 상황이었다. 뉴스낵...
들어가며 뉴스낵 백엔드 시스템은 FastAPI를 기반으로 수많은 외부 API(LLM 호출, AWS S3 통신 등)와 맞물려 돌아간다. 이러한 I/O 바운드 작업에서 병목을 막고 높은 처리량을 달성하기 위해 비동기(async/await) 프로그래밍을 도입했다. 또한 FastAPI의 BackgroundTasks를 사용하여 API 요청 시 즉각적으로 HT...