피드로 돌아가기
I Built a Social Media App Where Posts Self-Destruct (And Why That's the Future)
Dev.toDev.to
Database

Postgres Trigger 기반의 Self-destruct 메커니즘을 통한 커뮤니티 주도 콘텐츠 큐레이션 구현

I Built a Social Media App Where Posts Self-Destruct (And Why That's the Future)

Swapnil Nakate2026년 4월 20일6intermediate

Context

기존 소셜 플랫폼의 영구적 데이터 저장 방식과 알고리즘 중심의 피드 노출이 유발하는 콘텐츠 피로도 및 표현의 제약 문제 발생. 데이터의 영속성으로 인한 피드 오염과 블랙박스형 추천 엔진에 의한 정보 왜곡을 해결하기 위한 새로운 콘텐츠 생명주기 설계 필요.

Technical Solution

  • DB Layer 중심의 만료 로직 설계를 통한 Application Layer의 폴링 부하 제거
  • Postgres Trigger를 활용하여 interaction 발생 시 실시간으로 expires_at 컬럼을 갱신하는 extend_post_timer 로직 구현
  • pg_cron을 통한 15분 주기 배치 프로세스로 만료 콘텐츠의 Soft-delete 및 Archive 처리 자동화
  • Firebase Auth와 Supabase를 분리하여 인증은 OTP 기반으로 처리하고 데이터 저장 및 Realtime 동기화에 집중한 하이브리드 아키텍처 채택
  • Supabase Realtime 구독 모델을 적용하여 콘텐츠 수명 연장 상태를 모든 클라이언트에 즉시 전파하는 반응형 UI 구현
  • 계정 Tier별 Base Duration과 Hard Cap을 설정하여 비즈니스 모델과 기술적 제약 사항을 데이터베이스 스키마 수준에서 관리

- 상태 변경이 빈번한 타이머 로직은 Application이 아닌 DB Trigger로 처리하여 데이터 무결성 확보 및 서버 부하 감소 검토 - 대규모 배치 작업 대신 pg_cron과 같은 스케줄러를 활용하여 데이터 정리 작업을 분산 처리하는 구조 고려 - 실시간 상태 업데이트가 필요한 경우 WebSocket 기반의 Realtime Database 구독 모델을 통해 클라이언트 동기화 최적화

원문 읽기