데이터 보존 및 삭제 정책 통합
ADR-120 데이터 보존 및 삭제 정책 통합
1. Metadata
- ADR ID: ADR-120
- Status: draft
- Date: 2026-03-09
- Owner: YSY
2. Domain Decision
- 예약/결제/검증 기록의 보존 기간을 구분한다.
- 개인정보는 만료 시 익명화 또는 삭제한다.
- 감사 목적 데이터는 최소 필드만 장기 보존한다.
- 삭제 요청 처리 결과는 사용자에게 완료 상태로 통지한다.
- 기본 보존 파라미터는 정책 버전으로 관리한다. (
location=30d, event_log=90d, reservation/penalty=1y 시작값) - 법적 의무 보존 대상은 일반 삭제 파이프라인과 분리한다.
- 삭제와 익명화 작업은 재실행 가능해야 하며 감사 이벤트를 필수 기록한다.
3. Product Decision
- 개인정보/거래기록의 보존 기준을 분리한다.
- 삭제 요청 처리 SLA를 정의한다.
- 법적 의무 보존 항목을 별도로 관리한다.
- 보존/삭제 정책 변경 시 사전 공지를 원칙으로 한다.
4. UX Decision
- 삭제 요청 절차와 영향 범위를 단계별로 안내한다.
- 보존 의무 데이터는 삭제 불가 사유를 명시한다.
- 처리 진행 상태를 사용자에게 제공한다.
- 처리 완료/반려 결과를 명확한 사유와 함께 표시한다.
5. Tech Decision
- 삭제와 익명화 작업을 분리된 배치로 운영한다.
- 법적 보존 데이터는 키 분리 방식으로 보호한다.
- 삭제 작업은 재실행 가능하도록 설계한다.
- 삭제/익명화 배치는 감사 이벤트를 필수로 기록한다.
6. Ops Decision
- 삭제 요청 접수/검증/완료 절차를 정의한다.
- 법적 보존 예외 케이스를 운영에서 분리 관리한다.
- 삭제 완료 증빙을 사용자에게 제공한다.
- 처리 지연 시 지연 사유와 예상 완료 시점을 안내한다.
7. Implementation Contract (Optional)
7.1 API Contract
- 삭제 요청 API는
request_id와 현재 처리상태를 반환한다. - 처리 상태 조회 API는
received|in_progress|completed|rejected를 표준값으로 사용한다.
7.2 Data Contract
- 보존 정책은 데이터군별(
personal, transaction, audit)로 분리 저장한다. - 삭제 작업 로그와 익명화 작업 로그를 분리 저장한다.
7.3 Error/Observability Contract
- 법적 보존 대상 삭제 시
DELETE_NOT_ALLOWED_LEGAL_RETENTION을 반환한다. - 삭제/익명화 배치 실패는 재시도 큐와 알람을 통해 추적한다.
7.4 Test/Acceptance Contract
- 동일 삭제 요청 재실행 시 결과가 멱등해야 한다.
- 법적 보존 데이터와 일반 개인정보가 혼재된 케이스에서도 정책이 정확히 분기되어야 한다.
8. Validation