Firebase를 사용한 개인 정보 보호 설정 저장

Firebase를 사용하면 데이터 수집 및 처리에 대한 사용자 환경설정을 간단하게 수집하고 추적할 수 있습니다.

  1. 개인 정보 보호 설정의 설정
  2. 개인 정보 보호 설정 사용을 위한 앱 업데이트
  3. 개인 정보 보호 설정의 변경사항 추적

개인 정보 보호 설정의 설정

개인 정보 보호 설정을 수집하고 저장하려면 사용자에게 개인 정보 보호 설정 메시지를 표시할 UI와 이 설정을 저장할 방법이 필요합니다.

개인 정보 보호 설정 UI 만들기

개인 정보 보호 설정 UI의 형식에는 제한이 없습니다. UI 제작 시 고려해야 할 사항은 다음과 같습니다.

수집할 데이터의 이해

시간을 투자해 앱에서 저장하거나 처리할 사용자 데이터를 카탈로그로 정리하세요. 앱에서 직접 수집하는 데이터는 물론 앱이 사용하는 서비스에서 수집하는 데이터도 포함시켜야 합니다. Firebase 서비스의 경우 Firebase에서 처리되는 최종 사용자 데이터의 예를 살펴보면 도움이 될 것입니다.

사용자에게 유용한 UI 설계

수집된 데이터가 앱에 어떤 도움을 주는지 또는 어떻게 사용되는지 등 수집되는 데이터 유형을 사용자에게 익숙한 용어로 간결하게 설명해 보세요.

앱의 정상적인 작동을 위해 필요한 특정 데이터가 있는 경우 사용자가 앱 작동에 필요한 옵션을 선택하기 전까지 UI의 제출 버튼을 사용 중지하면 오류를 피할 수 있습니다. 특정 유형의 데이터만 수집할 수 있는 앱 사용 흐름에 대해 고민해 보세요.

사용자가 개인정보처리방침에 동의하기 전까지 사용 중지 상태인 제출 버튼 사용자가 개인정보처리방침에 동의하기 전까지 사용 중지 상태인 제출 버튼

개인 정보 보호 설정 저장

사용자의 개인 정보 보호 설정을 저장하는 위치와 방법에도 제한이 없습니다. 개인 정보 보호 설정 UI에서 사용자가 선택한 사항과 사용자를 연결할 수 있는 안정적인 식별자를 사용하면 됩니다.

한 가지 일반적인 방법은 식별자를 키로 사용하여 앱에서 사용하는 데이터 저장소에 환경설정을 저장하는 것입니다. 예를 들어 Firebase 인증 UID를 실시간 데이터베이스 인스턴스의 키로 사용하거나 Firebase 인스턴스 ID를 사용하여 Firestore 문서 컬렉션을 정리할 수 있습니다.

예: 인증 UID 및 실시간 데이터베이스를 사용한 사용자 환경설정 저장

Firebase 인증 UID 및 Firebase 실시간 데이터베이스를 사용해 사용자 환경설정을 저장하는 소셜 미디어 앱이 있다고 가정해 보겠습니다.

사용자 데이터를 안전하게 비공개로 유지하기 위해 이 앱에서는 사용자의 읽기 또는 쓰기만 허용하는 제한적인 보안 규칙이 적용되는 별도의 데이터베이스에 환경설정을 저장합니다. 또한 예상 값이 모두 부울 값이며 예상되지 않는 값을 수락하지 않는지도 확인합니다.

"privacy": {
  "$uid": {
    ".write": "auth.uid === $uid",
    ".read": "auth.uid === $uid",
    "data_processing": {
      ".validate": "newData.isBoolean()"
    },
    "content": {
      ".validate": "newData.isBoolean()"
    },
    "social": {
      ".validate": "newData.isBoolean()"
    },
    "$other": {
      ".validate": "false"
    }
  }
}

개인 정보 보호 설정 사용을 위한 앱 업데이트

앱에서 사용자의 개인 정보 보호 설정을 사용할 수 있게 되면 특정 설정을 활성화한 사용자를 위한 특정 기능을 사용 설정할 수 있습니다. 데이터를 수집하거나 수집된 데이터를 사용하는 기능을 로드하기 전에 앱에서 이 설정을 확인하도록 해야 합니다. 이 기능이 사용되지 않을 경우 어떤 환경이 가장 적합한지에 대해서도 생각해 보세요. 예를 들어 마이크로블로그 플랫폼에 해당하는 앱에서 사용자가 앱의 게시물 저장을 사용 중지한 경우 최고의 사용자 환경은 게시물 작성 옵션을 삭제하는 것일 수 있습니다.

개인 정보 보호 설정의 변경사항 추적

데이터 수집 권한을 부여한 사용자가 이후 결정을 번복할 수도 있으므로 개인 정보 보호 설정을 업데이트할 수 있는 프로필 또는 설정 화면으로 연결되는 버튼이나 링크를 추가하세요.

사용자가 설정을 업데이트할 수 있는 설정 대화상자로 연결되는 '개인 정보 보호 설정' 링크 사용자가 설정을 업데이트할 수 있는 설정 대화상자로 연결되는 '개인 정보 보호 설정' 링크

사용자가 데이터 수집의 사용 중지를 결심한 경우 앱에서 이를 어떻게 처리할지도 결정할 수 있습니다. 예를 들어 수집된 데이터를 삭제하는 옵션을 사용자에게 제공하거나 이를 자동으로 삭제할 수 있습니다. 데이터를 삭제할 때 Firebase용 Cloud 함수를 사용해 보세요. 삭제해야 할 데이터의 양에 따라 다르지만 몇 분이면 삭제가 완료됩니다. 자세한 내용은 사용자 데이터 삭제 및 내보내기 가이드를 참조하세요.

사용자 개인 정보 보호 설정에 대한 감사 로그 별도 저장

개인 정보 보호 설정의 변경사항을 기록해야 하는 앱 개발자도 있습니다. 이러한 경우 실시간 데이터베이스 또는 Firestore를 사용해 개인 정보 보호 설정의 변경사항에 대한 감사 로그로 사용할 데이터베이스 섹션을 새로 만들고 새 개인 정보 보호 설정 및 타임스탬프를 포함하면 됩니다. 사용자가 개인 정보 보호 설정을 업데이트하면 사용자 개인 정보 보호 설정 및 감사 로그에 각각 하나씩 총 2개의 쓰기 작업이 이루어집니다. 이를 별도의 섹션으로 만들어야 보다 제한적인 보안 규칙을 만들 수 있습니다. Firestore 사용자인 경우 더욱 자세한 규칙을 사용해 감사 로그의 문서를 수정할 수 없도록 적용합니다.

match /audit_log/{uid} {
   allow create: if uid = request.auth.uid;
   allow update: if false;
   allow delete: if false;
 }

데이터 이해, 환경설정 수집, 환경설정 저장, 변경사항 추적의 네 단계를 거치면 앱에서 사용자 개인 정보를 보호하도록 간단하게 조치를 취할 수 있습니다.