피드로 돌아가기
Dev.toBackend
원문 읽기
RLS 기반 보안 강화 및 Async Task 안정성을 확보한 AI 플랫폼 백엔드 설계
"Backend Engineering for an AI Platform: The Infrastructure Decisions Nobody Talks About"
AI 요약
Context
EduRag 플랫폼의 빠른 배포와 운영 효율화를 위해 로컬 저장소 없는 Supabase PostgreSQL 기반 아키텍처 채택. 초기 설계 단계에서 다수의 테이블 구조와 권한 체계를 정의하여 런타임 마이그레이션 비용을 최소화함.
Technical Solution
- Row Level Security(RLS) 적용을 통한 데이터베이스 계층의 강제적 권한 제어 및 애플리케이션 버그로 인한 데이터 노출 원천 차단
- Vector 데이터 처리 시 Python 메모리 부하를 방지하기 위해 PostgreSQL Array Operation을 활용한 DB 내 Cosine Similarity 연산 수행
- asyncio.create_task()의 가비지 컬렉션으로 인한 Silent Failure 해결을 위해 동기식 처리 전환 및 202 Accepted 기반의 폴링 구조 설계
- 외부 메모리 서비스 Hindsight 연동 시 PII Redaction 함수를 쓰기 경로에 필수 배치하여 개인정보 유출 리스크 제거
- 외부 의존성 장애가 전체 시스템으로 전이되는 것을 방지하기 위한 Feature Flag 기반의 Graceful Degradation 전략 도입
실천 포인트
- 보장된 완료가 필요한 작업에 asyncio.create_task() 사용 지양 - 비동기 작업 상태 추적을 위해 DB 테이블 내 failed_at 및 error_message 컬럼 설계 - 외부 API 연동 시 핵심 기능과 분리하여 끄고 켤 수 있는 Feature Flag 구현 - 보안 정책을 애플리케이션 코드뿐만 아니라 DB 계층(RLS 등)에서 중복 검증