AI 웹 앱 성능 개선: FastAPI 백그라운드 작업 및 SSE를 활용한 실시간 진행 상황 표시
🤖 AI 추천
백엔드 개발자, 풀스택 개발자, AI 애플리케이션 개발에 관심 있는 주니어 개발자
🔖 주요 키워드

핵심 기술
AI 기반 콘텐츠 생성과 같이 시간이 오래 걸리는 작업을 사용자 경험을 저해하지 않도록 처리하는 방법을 다룹니다. FastAPI의 BackgroundTasks
와 Server-Sent Events (SSE)를 활용하여 백그라운드에서 작업을 수행하고 실시간 진행 상황을 사용자에게 푸시하는 기술을 설명합니다.
기술적 세부사항
- 문제점: 장기 실행 AI 작업 시 웹 앱이 멈추고 응답 없는 상태가 되는 '로딩 스피너' 문제
- 기존 웹 앱 동작 방식: 요청 -> 서버 작업 (AI 호출 등) -> 대기 -> 결과 수신 (사용자 경험 저하)
- 제안 솔루션: 스마트 레스토랑 비유 (주문 후 바로 응답, 백그라운드에서 조리, 중간 진행 상황 제공)
- 요청 즉시 확인
- AI 작업은 백그라운드 태스크로 오프로드
- Server-Sent Events (SSE) 를 통해 실시간 진행 상황 푸시
- 주요 도구: FastAPI
BackgroundTasks
, Server-Sent Events (SSE), PocketFlow - FastAPI
BackgroundTasks
:- 요청 처리 후 별도 함수를 백그라운드에서 실행
- 사용자는 즉시 응답을 받고 앱은 멈추지 않음
- 예: 사용자 가입 후 환영 이메일 비동기 발송
- Server-Sent Events (SSE):
- 서버에서 브라우저로 단방향으로 실시간 업데이트 푸시하는 간편한 방법
- WebSockets보다 단순하고 가벼움 (푸시 전용)
- FastAPI SSE 엔드포인트 예시:
StreamingResponse
와 비동기 제너레이터 활용 - 프론트엔드 JavaScript에서
EventSource
API를 사용해 쉽게 연결 및 수신
- PocketFlow: 복잡한 AI 작업 (기사 작성 등)을 여러
Node
(단계)로 구성하여 관리shared_data
(토픽, SSE 큐, 섹션, 초안 등)를 통해 노드 간 데이터 공유GenerateOutline
노드: 주제 기반으로 섹션 제목 생성WriteContent
노드: 각 섹션별 내용 작성 및 실시간 진행 상황 업데이트ApplyStyle
노드: 초안을 다듬어 최종 결과물 생성
개발 임팩트
- AI 기능이 포함된 웹 애플리케이션의 사용자 경험을 크게 향상시킬 수 있습니다.
- 사용자는 장시간 소요되는 작업 중에도 앱을 계속 사용하고 진행 상황을 확인할 수 있습니다.
- 개발자는 복잡한 비동기 처리 및 실시간 업데이트 로직을 FastAPI의 강력한 기능을 활용하여 효율적으로 구현할 수 있습니다.
커뮤니티 반응
(주어진 원문에는 외부 커뮤니티 반응에 대한 직접적인 언급은 없습니다.)
톤앤매너
IT 개발자를 대상으로 하는 기술 분석 글로서, 명확하고 전문적인 용어를 사용하며 구현 방법과 그 이점을 구체적으로 설명합니다.
📚 관련 자료
FastAPI
백그라운드 작업을 위한 `BackgroundTasks` 기능과 SSE를 지원하는 핵심 웹 프레임워크이므로, 이 글에서 설명하는 모든 기술의 기반이 되는 프로젝트입니다.
관련도: 95%
PocketFlow
복잡한 AI 워크플로우를 관리하고 단계별로 실행하는 데 사용되는 라이브러리로, 이 글에서 AI 기사 작성 과정을 구조화하는 데 핵심적인 역할을 합니다.
관련도: 90%
sseclient-py
Server-Sent Events를 클라이언트 측에서 처리하는 데 유용한 라이브러리이며, 글에서 설명하는 SSE 통신을 이해하고 구현하는 데 간접적인 도움을 줄 수 있습니다. (물론 글에서는 JavaScript 클라이언트를 예시로 들고 있습니다.)
관련도: 70%