데이터 보존 및 삭제 정책 통합

데이터 보존 및 삭제 정책 통합

ADR-120 데이터 보존 및 삭제 정책 통합

1. Metadata

  • ADR ID: ADR-120
  • Status: draft
  • Date: 2026-03-09
  • Owner: YSY

2. Domain Decision

  1. 예약/결제/검증 기록의 보존 기간을 구분한다.
  2. 개인정보는 만료 시 익명화 또는 삭제한다.
  3. 감사 목적 데이터는 최소 필드만 장기 보존한다.
  4. 삭제 요청 처리 결과는 사용자에게 완료 상태로 통지한다.
  5. 기본 보존 파라미터는 정책 버전으로 관리한다. (location=30d, event_log=90d, reservation/penalty=1y 시작값)
  6. 법적 의무 보존 대상은 일반 삭제 파이프라인과 분리한다.
  7. 삭제와 익명화 작업은 재실행 가능해야 하며 감사 이벤트를 필수 기록한다.

3. Product Decision

  1. 개인정보/거래기록의 보존 기준을 분리한다.
  2. 삭제 요청 처리 SLA를 정의한다.
  3. 법적 의무 보존 항목을 별도로 관리한다.
  4. 보존/삭제 정책 변경 시 사전 공지를 원칙으로 한다.

4. UX Decision

  1. 삭제 요청 절차와 영향 범위를 단계별로 안내한다.
  2. 보존 의무 데이터는 삭제 불가 사유를 명시한다.
  3. 처리 진행 상태를 사용자에게 제공한다.
  4. 처리 완료/반려 결과를 명확한 사유와 함께 표시한다.

5. Tech Decision

  1. 삭제와 익명화 작업을 분리된 배치로 운영한다.
  2. 법적 보존 데이터는 키 분리 방식으로 보호한다.
  3. 삭제 작업은 재실행 가능하도록 설계한다.
  4. 삭제/익명화 배치는 감사 이벤트를 필수로 기록한다.

6. Ops Decision

  1. 삭제 요청 접수/검증/완료 절차를 정의한다.
  2. 법적 보존 예외 케이스를 운영에서 분리 관리한다.
  3. 삭제 완료 증빙을 사용자에게 제공한다.
  4. 처리 지연 시 지연 사유와 예상 완료 시점을 안내한다.

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

  • Domain/Product/UX/Tech/Ops 결정이 충돌하지 않는다.
  • 구현 기준은 SPEC과 정합성을 유지한다.
  • 운영 절차는 RUNBOOK으로 연결된다.