컴플라이언스 변화에 따른 휴면 데이터 격리 아키텍처 제로베이스 구축 및 대규모 역마이그레이션(통합)

🏢 Project under 주식회사 바이브컴퍼니 (VAIV): B2C 소셜 데이터 분석 플랫폼(Sometrend) 개발/운영

법적 컴플라이언스 변화에 대응하여, 대규모 휴면 데이터의 격리(일 단위 배치 및 실시간 복구) 아키텍처를 제로베이스에서 구축하고, 규제 완화 시 전체 데이터 역마이그레이션(재통합)을 통해 시스템을 최적화한 프로젝트입니다.

By 유민호

💡 컴플라이언스 변화에 따른 휴면 데이터 격리 아키텍처 제로베이스 구축 및 대규모 역마이그레이션(통합)

[한 줄 요약] 개인정보보호법 강화에 맞춰 일 단위 배치 및 휴면 해제 플로우를 제로베이스에서 설계하고, 이후 규제 완화 시점에 맞춰 단 한 건의 유실 없이 전체 휴면 데이터를 일괄 재통합(역마이그레이션)하여 아키텍처를 유연하게 전환한 프로젝트입니다.

📌 배경 및 문제 상황 (Problem)
강화된 개인정보보호법 컴플라이언스 준수를 위해, 기존 시스템에 전혀 존재하지 않던 '1년 이상 미접속 휴면 회원 데이터 격리' 프로세스를 무에서 유로(제로베이스) 설계해야 했습니다. 수백만 건의 데이터를 실시간 트래픽 간섭 없이 분리해 내는 것이 1차 과제였습니다. 이후 관련 법률이 완화됨에 따라, 분리된 아카이브(Archive) 시스템을 계속 유지하는 것이 오히려 시스템 복잡도와 인프라 비용 낭비를 초래하게 되었습니다. 이에 따라 실서비스 장애나 데이터 유실 없이 분리된 '전체' 휴면 데이터를 다시 활성 DB로 일괄 병합(역마이그레이션)하고, 불필요해진 인프라를 안전하게 청산해야 하는 새로운 기술적 과제에 직면했습니다.

🛠️ 해결 과정 및 역할 (Action)

1. 일 배치(Daily Batch) 기반 대용량 마이그레이션 파이프라인 설계

  • 기존에 없던 정책을 구현하기 위해 OOM과 DB Deadlock을 방지하는 Chunk 지향 처리 기반의 Spring Batch 아키텍처를 밑바닥부터 설계했습니다.
  • 매일 동작하는 일 단위 배치(Daily Batch)를 통해 사용자의 미접속 기간을 산정하고, 조건이 충족된 대상자를 식별하여 실서비스 트래픽 영향 없이 격리된 DB로 데이터를 안전하게 이동시키는 자동화 파이프라인을 구축했습니다.

2. 사용자 로그인 기반 실시간 휴면 해제(원복) 플로우 개발

  • 휴면 처리된 사용자가 다시 서비스에 접근할 때의 사용자 경험(UX)을 고려하여, 로그인 시 휴면 해제를 인증하고 즉각적으로 데이터를 원복(Restore)하는 복구 플로우를 새롭게 기획 및 개발했습니다.
  • 데이터 이동 및 복구 과정에서 중복 생성이나 누락이 발생하지 않도록, API와 트랜잭션 전반에 걸쳐 멱등성(Idempotency)이 보장되는 상태 머신 설계를 적용했습니다.

3. 법률 완화에 따른 전체 휴면 회원 대상 대규모 역마이그레이션

  • 법적 규제 완화 결정 직후, 시스템 복잡도를 낮추기 위해 격리되어 있던 '전체' 휴면 회원의 데이터를 활성 DB로 일괄 복원하는 대규모 역마이그레이션(Reverse-migration) 작업 스크립트 및 배치를 실행했습니다.
  • 데이터 무결성 검증을 마친 후, 휴면 격리용 인프라 자원과 연관된 일 단위 배치 스케줄러를 실서비스 장애 없이 안전하게 철거(Decommissioning)하여 시스템 구조를 다시 가볍게 재조정했습니다.

📈 업무 성과 (Result)
  • 규제 강화 시점에는 법적 요구사항을 충족하는 휴면 전환/해제 아키텍처를 신속히 도입하여 회사의 컴플라이언스 리스크를 해소했습니다.
  • 규제 완화 시점에는 전체 휴면 데이터 대상의 역마이그레이션을 통해 불필요해진 인프라 유지 비용과 아키텍처 복잡도를 덜어내 시스템 유지보수성을 개선했습니다.
  • 단순 기능 개발을 넘어, 비즈니스 및 법률 환경 변화에 따라 배치 시스템을 새롭게 구축하고 또 안전하게 철거하는 소프트웨어 전체 생명주기(Lifecycle)를 다룬 경험을 쌓았습니다.