피드로 돌아가기
Building a Public Guitar Gallery With 4 Users: Action Extension Pattern + Viral Design
Dev.toDev.to
Backend

Supabase Edge Function 쿼터 한계 극복을 위한 Action Extension 패턴 도입

Building a Public Guitar Gallery With 4 Users: Action Extension Pattern + Viral Design

kanta13jp12026년 4월 17일4intermediate

Context

Supabase Free tier의 Edge Functions 최대 배포 제한(94개)에 도달하여 신규 기능 추가가 불가능한 상황. 서비스 초기 단계에서 유저의 공유 동기를 유발하기 위한 Public Gallery 기능 구현이 시급한 기술적 병목 발생.

Technical Solution

  • 기존 guitar-recording-studio 함수 내에 public_gallery 액션을 추가하는 Action Extension 패턴 적용을 통한 배포 슬롯 소모 방지
  • adminClient를 활용한 서버 사이드 데이터 조회로 보안성을 확보한 listPublicRecordings 로직 구현
  • 유저 입력 기반의 sortBy 파라미터에 대해 Whitelist 검증을 수행하여 SQL Injection 취약점 원천 차단
  • 단일 요청으로 인한 Full-table Scan 및 리소스 과부하 방지를 위해 최대 조회 수를 50개로 Hard cap 설정
  • count: "exact" 옵션을 사용하여 데이터 페이징을 위한 전체 행 수를 단일 쿼리로 효율적으로 획득
  • User-generated Content의 실시간 업데이트를 통한 SEO 최적화를 위해 sitemap.xml에 갤러리 경로 추가

- 클라우드 서비스의 리소스 쿼터 제한 시, 유사 도메인 기능을 하나의 Entry point로 통합하는 Action 패턴 검토 - 외부 입력값 기반의 정렬/필터링 구현 시 반드시 Whitelist 기반의 Validation 레이어 구축 - API 응답 성능 저하 및 인프라 비용 상승 방지를 위한 하드 리밋(Hard Cap) 설정 필수 적용

원문 읽기