Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 다른 도메인의 탭 간에 데이터를 동기화할 수 있나요?


다른 도메인의 탭 간에 데이터를 동기화할 수 있나요?


아니요, 브라우저에 내장된 저장소 이벤트 및 localStorage 또는 sessionStorage와 같은 메커니즘을 사용하여 서로 다른 도메인의 탭 간에 데이터를 직접 동기화할 수 없습니다. "storage" 이벤트와 브라우저의 저장소 API는 동일 출처 정책으로 제한됩니다. 즉, 동일한 도메인 내에서만 작동합니다.

주요 제한사항은 다음과 같습니다.

1. 동일 출처 정책: "storage" 이벤트와 브라우저의 스토리지 API(localStorage, sessionStorage)에는 동일 출처 정책이 적용됩니다. 즉, 이벤트는 다른 도메인이 아닌 동일한 도메인에 있는 다른 탭/창에서만 트리거됩니다.

2. 도메인 간 통신: 여러 도메인에 걸쳐 탭이나 창 간에 데이터 변경 사항을 직접 전달하는 기본 제공 브라우저 메커니즘이 없습니다. 동일 출처 정책은 보안상의 이유로 이러한 종류의 도메인 간 통신을 방지합니다.

서로 다른 도메인의 탭이나 창 간에 데이터를 동기화해야 하는 경우 중개자 역할을 할 수 있는 서버측 솔루션이나 타사 서비스를 사용해야 합니다. 일부 옵션은 다음과 같습니다.

1. 서버 측 동기화: 웹 소켓 연결이나 공유 데이터베이스와 같은 서버 측 메커니즘을 사용하여 여러 도메인 간에 데이터 변경 사항을 전파할 수 있습니다.

2. 타사 메시징 서비스: Firebase와 같은 타사 메시징 서비스를 사용하여 다양한 도메인에 걸쳐 데이터 변경 사항을 게시하고 구독할 수 있습니다.

3. 사용자 정의 도메인 간 통신: 중간 iframe 또는 창과 함께 HTML5 postMessage API를 사용하는 등 사용자 정의 도메인 간 통신 메커니즘을 구현할 수 있습니다.

그러나 이러한 솔루션은 더 복잡하며 추가 인프라 또는 타사 서비스가 필요합니다. 내장된 브라우저 저장소 및 이벤트는 동일 출처 통신으로만 제한됩니다.

요약하자면, 브라우저에 내장된 저장소와 이벤트를 사용하여 서로 다른 도메인의 탭 간에 데이터를 직접 동기화할 수는 없습니다. 도메인 간 데이터 동기화를 달성하려면 서버 측 또는 타사 솔루션을 사용해야 합니다.

인용:
[1] https://www.reddit.com/r/AZURE/comments/194hsdu/sync_files_with_customer_on_another_domain/
[2] https://www.sqlservercentral.com/forums/topic/set-up-database-sync-between-2-다른-도메인-서버
[3] https://torsten-muller.dev/javascript/communication-between-browser-tabs-synchronizing-state/
[4] https://nabeelvalley.co.za/blog/2024/07-03/localstorage-based-sync/
[5] https://community.cisco.com/t5/managing-users/user-identities-with-ad-sync-and-multiple-domains/td-p/4880178