들어가며 뉴스낵(Newsnack) 서비스는 매시간 언론사 RSS를 수집하고, 선별된 기사들의 웹툰/카드뉴스를 생성한 뒤, 최종적으로 오디오 브리핑까지 조립해 내는 긴 호흡의 데이터 생성 프로세스를 거친다. 초기에는 단순 Linux Cron 스크립트나 FastAPI의 백그라운드 태스크로 구동하려 했으나, 여러 한계에 직면했다. 수많은 배치 작업 ...
들어가며 뉴스낵은 매일 새로운 기사가 쏟아지는 뉴스 피드 중심의 서비스다. 피드형 애플리케이션에서 조회 성능은 사용자 경험(UX)과 직결된다. 백엔드 API를 설계할 때 가장 먼저 선택해야 했던 것이 페이징 전략이었다. 기술적 선택지는 크게 두 가지였다. Offset 기반: SELECT ... LIMIT N OFFSET M으로 원하는 페...
들어가며 서비스를 운영하다 보면 외부 요인으로 인한 서비스 장애를 마주하곤 한다. 1월 29일 오후 5시, 팀 계정으로 사용하던 구글 계정에 접속하자 로그아웃 상태와 함께 본인인증 화면이 나타났다. 인증을 시도하자 계정이 보안 정책 위반으로 정지됐다는 화면이 출력되었다. 이의신청만 가능했고 명확한 복구 일정은 알 수 없는 상황이었다. 파이프...
들어가며 뉴스낵 백엔드 시스템은 FastAPI를 기반으로 수많은 외부 API(LLM 호출, AWS S3 통신 등)와 맞물려 돌아간다. 이러한 I/O 바운드 작업에서 병목을 막고 높은 처리량을 달성하기 위해 비동기(async/await) 프로그래밍을 도입했다. 또한 FastAPI의 BackgroundTasks를 사용하여 API 요청 시 즉각적으로 HT...
들어가며 AI에게 4장을 요청했더니 만들어낸 1장의 4컷 만화 뉴스낵은 기사 본문을 바탕으로 AI가 상황에 맞는 4컷짜리 뉴스툰(웹툰, 카드뉴스)를 그려낸다. 하지만 단순히 LLM에게 “만화 4장을 그려달라”고 요청하면 4장 미만의 이미지가 생성되는 경우가 허다했다. 그렇다면 각각의 장면 프롬프트 4개를 따로 처리하면 어떨까? 하지만 이 방식은...
이전 글에서 이어지는 글입니다. 이 글은 오늘의 뉴스낵 생성 워크플로우 구축기를 다룹니다. 들어가며 이전 포스팅에서 다루었던 AI 기사 작성 워크플로우가 동적인 분기 중심이었다면, 이번에 다룰 ‘오늘의 뉴스낵’ 워크플로우는 여러 기사를 하나로 통합하는 흐름에 초점을 맞추고 있다. 오늘의 뉴스낵은 사용자가 선택한 여러 개의 뉴스 기사들을...
이 글은 뉴스낵 AI 엔진의 두 가지 주요 워크플로우 중 AI 기사 작성 워크플로우의 구축 과정을 설명합니다. 뉴스낵 첫 화면 들어가며 뉴스낵은 Airflow 기반의 파이프라인을 통해 매일 다양한 언론사에서 수집된 기사들을 유사한 내용끼리 묶어 ‘이슈’ 단위로 관리한다. AI 엔진은 이렇게 묶인 기사들을 토대로 뉴스툰이나 오늘의 뉴스낵을...
들어가며 연합뉴스 RSS 뉴시스 RSS 뉴스낵의 모든 콘텐츠는 언론사의 최신 뉴스 기사로부터 시작된다. AI 생성 품질은 입력 데이터의 품질에 직접적으로 의존하므로, 수집 파이프라인의 안정성과 정확성은 서비스 전체의 신뢰도와 직결된다. 이 ...
뉴스낵 이용하기 들어가며 최근 신한 스퀘어브릿지 청년 해커톤 2기에 백엔드 개발자로 참여하였다. 이 해커톤은 6주 동안 참가자들이 실제 기업과 매칭되어 기업이 제안한 과제를 해결하는 프로젝트를 진행하는 방식으로 진행되었다. 나는 디자이너 2명, 프론트엔드 1명, 백엔드 1명으로 구성된 팀에서 백엔드 개발을 담당했다. 우리 팀은 AXZ에 배정되...
이전 글에서 이어지는 글입니다. 모니터링 대상 서버 연동 이제 모니터링 대상인 ‘어디GO’ 서버가 자신의 상태 정보를 외부에 공개하도록 설정할 차례다. 서버 인프라 메트릭 수집 (Node Exporter) 서버의 CPU, 메모리, 네트워크 등 기본적인 하드웨어 및 OS 정보를 수집하기 위해 node_exporter를 사용했다. ‘어디GO...