음...앱에서 파일을 온라인으로 동기화 시키는데요

파일을 주고받는 알고리즘이 궁금합니다.


A앱:

file1

file2

file3



B온라인:

file2

file3

file4


요렇게 있을때,


당연히 A에 있는 file1을 B로 백업해야할것 같지만


꼭 그렇지가 않습니다.

B온라인에서(사용자가 웹에서) file1을 삭제한 경우라면

A에 file1을 삭제해야 맞는 동기화겠죠.


또한 B에 있는 file4를 A로 전송 해줘야할것 같지만

A에 있는 file4를 삭제한 경우라면

B에있는 file4를 같이 삭제해줘야겠죠.



극단적인 경우를 생각하자면


B온라인에 file 1, 2,3,4,5 가 있다고 가정했습니다.

사용자가 어플을 삭제하고 다시 설치했을때

폰 내부에는 파일이 하나도 없는 상태이기 때문에

동기화를 할겁니다.


그런데 B온라인에 있는 파일을 가져와야하는데

사용자가 A앱에 있는 파일을 모두 삭제한걸로 착각하고

B온라인에 있는 파일을 모두 삭제할 수도 있다는겁니다.


요 알고리즘을 어떻게 만들어야 할지 도저히 모르겠습니다. ㅠㅠ