Lumelis Digital

Local-first 앱: 저장, 개인정보 보호와 오프라인 사용

보관할 작업을 앱에 맡기기 전에 어디에 저장되는지, 무엇이 다른 곳으로 전송되는지, 어떻게 복구할 수 있는지 물어보세요. Local-first는 유용한 설계 방식이지만 이름만으로 모든 질문에 답할 수는 없습니다.

Local-first의 의미

Ink & Switch의 2019년 local-first 논문은 데이터의 주된 사본을 사용자 자신의 기기에 둡니다. 다른 기기와 서버에도 동기화된 사본이 있을 수 있습니다. 이 방식은 설치형 소프트웨어와 웹 앱 모두에 적용할 수 있습니다. 브라우저에서 계산을 수행하는 것만으로 local-first 원칙을 모두 충족한다고 볼 수는 없습니다.

로컬 저장만으로 개인정보 보호가 결정되지는 않습니다

localStorage는 웹사이트가 환경설정 같은 데이터를 사용자 기기에 저장할 때 쓸 수 있는 브라우저의 저장 공간입니다. OWASP의 브라우저 저장 안내는 페이지에서 실행되는 악성 스크립트가 해당 페이지의 localStorage를 읽을 수 있다고 설명합니다. 기기에 데이터를 저장하는 것만으로 기밀성이 보장되지는 않습니다. 로컬 처리는 동기화, 이용 분석, 외부 서비스에서의 다운로드와 함께 이루어질 수도 있습니다. 선택적 공유나 동기화 기능을 포함해 앱이 무엇을 저장하고 전송한다고 설명하는지 확인하세요.

복구할 수 있는 사본 보관하기

localStorage를 포함해 브라우저에 저장한 데이터는 사이트 데이터를 지울 때나 브라우저의 저장 정책에 따라 손실될 수 있습니다 (WebKit). MDN의 브라우저 저장 문서에 따르면 비공개 탐색 데이터는 보통 비공개 세션이 끝날 때 삭제됩니다. 중요한 작업의 유일한 사본을 브라우저 저장소에 두지 마세요. 규칙은 브라우저, 기기, 앱의 저장 방식에 따라 다릅니다.

필요한 오프라인 기능 확인하기

MDN의 서비스 워커 안내는 캐싱이 오프라인 웹 앱을 지원하는 방법을 설명합니다. 이미 열린 탭에서 잘 작동한다고 해서 연결 없이 앱을 새로고침하거나 다시 열 수 있다는 뜻은 아닙니다. 실제로 필요한 작업에 대해 오프라인 지원을 확인해야 합니다.

  • 테스트 데이터 사용: 시험하기 전에 중요한 작업을 별도로 저장하세요. 없어져도 되는 예제를 만들고 페이지를 새로고침한 뒤 앱을 다시 열어 무엇이 남는지 확인하세요.
  • 복구 시험: 내보내기나 백업이 있다면 테스트 예제로 시도하고 저장한 데이터를 열거나 복구할 수 있는지 확인하세요. 복구하기 전에 앱의 현재 데이터가 교체되는지 확인하세요. 보관하려는 작업이 삭제될 수 있다면 중단하세요. 동기화만으로 이전 버전을 복구할 수 있다고 볼 수는 없습니다.
  • 오프라인 시험: 예제를 사용해 연결을 끊고 앱 다시 열기를 포함한 필요한 작업을 시험하세요. 나중에 다시 연결하고 동기화 결과도 확인하세요. 중요한 작업의 유일한 사본으로 이 시험을 하지 마세요.

Lumelis에서 확인하기

Lumelis Digital 언어 선택기는 저장소를 사용할 수 있을 때 명시적으로 선택한 언어를 이 브라우저에 저장할 수 있습니다. 이 설정은 도구에서 만든 작업의 백업이 아닙니다. Lumelis 도구 목록에서 평가할 기능을 선택하고, 사이트가 설명하는 데이터 처리는 개인정보 처리방침에서 확인하세요. 기능마다 따로 평가하세요. 설정이 저장된다는 사실만으로 오프라인 지원이나 이용 분석의 부재를 입증할 수는 없습니다.

시험한 앱 버전, 브라우저, 기기에서 무엇이 작동했는지 기록하세요. 이런 실용적인 확인은 기능이 필요에 맞는지 판단하는 데 도움이 되지만 서비스 전체의 보안을 인증하지는 않습니다.

출처 및 참고 자료