InfoGrab DocsInfoGrab Docs

기능 개발을 위한 데이터 보존 가이드라인

GitLab 기능 개발 시 데이터 보존 정책을 계획하고 구현하는 방법을 설명합니다.

개요 # 데이터 보존은 GitLab의 기능 개발에서 중요한 측면입니다. 기능을 구축하고 유지 관리할 때, 수집하고 저장하는 데이터의 생명주기를 고려해야 합니다. 이 문서는 기능 개발 초기부터 데이터 보존 고려사항을 통합하기 위한 가이드라인을 설명합니다. 데이터 보존이 중요한 이유 # 시스템 성능 : 시간 기반 데이터 구성을 통해 더 나은 쿼리 최적화와 효율적인 데이터 접근 패턴이 가능해지며, 응답 시간 단축 및 시스템 확장성 향상으로 이어집니다. 인프라 비용 : 데이터 생명주기 정책을 통한 전략적 스토리지 관리는 기본 스토리지, 백업, 재해 복구 시스템에 대한 인프라 비용을 절감합니다. 엔지니어링 효율성 : 처음부터 데이터 보존을 고려하여 기능을 설계하면 명확한 데이터 생명주기를 확립하고, 기술적 부채를 줄이며, 데이터 마이그레이션을 빠르게 처리함으로써 개발이 더욱 빠르고 안정적으로 이루어집니다. 기능 개발 가이드라인 # 1. 초기 계획 # 새로운 기능을 설계할 때, 초기 계획 단계에서 데이터 보존 요구사항을 고려하세요: 저장되는 데이터의 유형을 문서화하세요. 이것이 사용자 대면 데이터인가요? 내부적으로 처리 효율성을 높이기 위해 생성된 데이터인가요? 파생/캐시 데이터인가요? 각 데이터 유형에 대한 비즈니스 목적과 필요한 보존 기간을 식별하세요. 오래된 데이터에 대한 제품 정당성과 고객 사용 패턴을 정의하세요. 사람들이 새로운 데이터와 비교하여 오래된 데이터와 어떻게 상호작용하나요? 시간이 지남에 따라 데이터의 가치는 어떻게 변화하나요? 데이터 보존에 영향을 줄 수 있는 규정 요구사항(예: 개인 식별 정보)을 고려하세요. 데이터 삭제 또는 보관 메커니즘을 계획하세요. 2. 데이터 생명주기를 고려한 설계 # 데이터가 영구적이지 않다는 이해를 바탕으로 기능을 설계해야 합니다: 데이터의 무한 가용성에 대한 가정을 피하세요. 누락되거나 보관된 데이터에 대한 점진적인 처리를 구현하세요. 데이터 가용 기간을 명확히 전달하도록 사용자 인터페이스를 설계하세요. 장기 컨텍스트에서 조회하도록 최적화된 장기 보관용 데이터 구조를 설계하세요. 특히 온디맨드로 재생성할 수 있는 파생/캐시 데이터에는 적절한 경우 "유효 기간(time to live, TTL)" 메커니즘 구현을 고려하세요. 3. 문서화 권장 사항 # 각 기능 구현에는 다음 내용이 포함되어야 합니다: 데이터 보존 기간(GitLab.com 기준 및 기본값이 있는 경우)과 비즈니스 논리/정당성에 대한 명확한 문서 데이터 삭제/보관 메커니즘에 대한 설명. 데이터 삭제가 종속 기능에 미치는 영향 분석. 구현 체크리스트 # 새로운 기능에 대한 머지 리퀘스트를 제출하기 전에: 데이터 보존 요구사항을 문서화하세요. 데이터 삭제를 고려하여 데이터 모델을 설계하세요. 데이터 삭제/보관 메커니즘을 구현하세요. 누락/보관 데이터에 대한 기능 동작을 테스트하세요. 사용자 문서에 보존 기간을 포함하세요. 종속 기능에 대한 영향을 고려하세요. 백업/복원 및 내보내기/가져오기에 대한 영향을 고려하세요. 복제(예: Geo)에