Repository navigation
Sync System
Entry-Sync의 데이터 동기화 시스템과 전체적인 동기화 흐름을 설명합니다.
Entry-Sync는 Chrome Extension을 통해 Entry 환경에서 발생하는 데이터를 처리하고, 서버와의 실시간 통신을 이용하여 연결된 클라이언트 간 데이터를 동기화하는 것을 목표로 합니다.
전체적인 흐름은 다음과 같습니다.
┌─────────────────────┐
│ Entry Site │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Entry-Sync │
│ Chrome Extension │
└──────────┬──────────┘
│
│ WebSocket / HTTPS
▼
┌─────────────────────┐
│ Sync Server │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Connected Clients │
└─────────────────────┘
Entry-Sync Client는 Chrome Extension 형태로 동작합니다.
주요 역할:
- Entry 페이지와 상호작용
- 동기화할 데이터 확인
- 서버와 연결
- 데이터 송수신
- 동기화 상태 관리
관련 소스 코드는 extension/ 디렉터리에서 확인할 수 있습니다.
Entry-Sync는 서버와의 통신을 통해 클라이언트 간 데이터를 전달합니다.
일반적인 연결 흐름은 다음과 같습니다.
Extension
│
│ Connect
▼
Sync Server
│
│ Connection established
▼
Extension
실시간 통신이 필요한 경우 WebSocket 기반 연결을 사용할 수 있습니다.
보안이 필요한 통신에서는 HTTPS / WSS와 같은 암호화된 연결을 사용합니다.
데이터 변경이 발생하면 다음과 같은 과정을 거쳐 동기화가 이루어집니다.
1. Entry에서 데이터 변경
↓
2. Entry-Sync가 변경 사항 확인
↓
3. Sync Server로 데이터 전달
↓
4. 서버에서 연결된 클라이언트 확인
↓
5. 다른 클라이언트에 변경 사항 전달
↓
6. 각 클라이언트에서 데이터 반영
간단하게 표현하면:
Client A
│
│ Change
▼
Sync Server
│
├──────────────► Client B
│
└──────────────► Client C
여러 클라이언트가 동일한 동기화 환경에 연결되어 있을 수 있습니다.
예:
┌─────────────┐
│ Client A │
└──────┬──────┘
│
│
▼
┌─────────────┐
│ Sync Server │
└──────┬──────┘
│
├──────────────┐
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Client B │ │ Client C │
└─────────────┘ └─────────────┘
한 클라이언트에서 변경 사항이 발생하면 서버를 통해 다른 연결된 클라이언트에 전달될 수 있습니다.
동기화 데이터의 영구 저장 여부와 저장 방식은 Entry-Sync의 서버 구현에 따라 달라질 수 있습니다.
서버에서 별도의 저장소를 사용하는 경우:
Client
↓
Sync Server
↓
Persistent Storage
저장소를 사용하지 않는 실시간 데이터의 경우:
Client A
↓
Sync Server
↓
Client B
와 같이 실시간 전달만 수행할 수도 있습니다.
동기화 시스템에서는 다음과 같은 보안 사항을 고려해야 합니다.
가능한 경우 HTTPS / WSS를 사용하여 네트워크 통신을 암호화합니다.
다음과 같은 정보는 소스 코드나 공개 Repository에 포함하지 않습니다.
API Key
Access Token
Password
Secret
Private Key
Chrome Extension에 민감한 인증 정보가 불필요하게 노출되지 않도록 주의합니다.
보안 취약점은 공개 Issue나 Discussion에 작성하지 말고 Security Policy를 확인해주세요.
동기화가 정상적으로 이루어지지 않는 경우 다음 항목을 확인해주세요.
인터넷 연결 상태를 확인합니다.
Chrome Extension이 정상적으로 활성화되어 있는지 확인합니다.
chrome://extensions/
서버 연결이 정상적으로 이루어졌는지 확인합니다.
Chrome Developer Tools의 Console에서 관련 오류가 발생했는지 확인합니다.
Extension을 다시 로드한 후 문제가 해결되는지 확인합니다.
개발 중 동기화 문제를 확인할 때는 다음을 확인합니다.
Entry
↓
Extension
↓
Network
↓
Sync Server
↓
Other Client
각 단계에서 데이터가 정상적으로 전달되는지 확인하면 문제가 발생한 위치를 쉽게 찾을 수 있습니다.
Sync System과 관련된 주요 구성 요소:
Entry
│
├── Chrome Extension
│
├── Sync Server
│
├── WebSocket / HTTPS
│
└── Storage
각 구성 요소의 자세한 설명은 다음 문서를 참고해주세요.
Entry-Sync의 동기화 구조는 개발 과정에서 변경될 수 있습니다.
실제 구현과 문서의 내용이 다른 경우 최신 소스 코드를 기준으로 확인해주세요.