The Challenges of Soft Delete
Author: atlas9 | Source: atlas9 blog | Published: 2026-01-19
한 줄 요약
소프트 삭제는 데이터 복구와 컴플라이언스를 지원하지만, 축적되는 “죽은 데이터”로 인한 쿼리 복잡성, 운영 부담, 복원 난이도 문제를 야기하며 트리거 기반 아카이빙이 최적 대안이다.
핵심 주장/내용
- 소프트 삭제의 핵심 문제는 “아카이빙된 레코드는 대부분 다시 읽히지 않음”에도 불구하고 테이블에 무기한 존재하는 것이다
- 모든 쿼리에서 삭제된 레코드를 필터링해야 하므로 코드 복잡성이 증가하고 데이터 누출 위험이 생긴다
- 복원은 단순한 null 할당이 아닌, 외부 API 연동 시 중복 생성 로직이 필요한 복잡한 작업이다
- 4가지 대안 제시: 앱 레벨 아카이빙, 트리거 기반 아카이빙, WAL 기반 CDC(Debezium), 삭제 무시 레플리카
- 신규 프로젝트에는 트리거 기반 아카이빙을 추천 — 프로덕션 테이블을 깨끗하게 유지하면서 조회 가능한 아카이브를 제공한다
주요 수치 / 사실
- 데이터베이스 백업이 죽은 데이터로 인해 비대해짐
- WAL 기반 CDC는 소비자가 지연될 경우 프라이머리 DB 안정성에 위험
- 트리거 기반 아카이빙은 삭제된 행을 JSON으로 별도 아카이브 테이블에 복사
관련 위키
Source: 원문 보기