Skip to main content
이 기능은 ayaka-notes/ayakaleaf-pro에서 개발했습니다. v6.4.0 이상부터 도입되었으며 아직 베타 상태입니다. 문제가 있으면 피드백을 보내주세요.
Dropbox 동기화는 Overleaf Cloud에서처럼 사용자의 프로젝트를 Dropbox와 동기화된 상태로 유지합니다. 사용자가 Dropbox 계정을 연결하면 각 프로젝트가 Apps/<your Dropbox app>/에 폴더로 나타나고, Overleaf의 변경 사항은 Dropbox로 전송되며, Dropbox에서 변경한 내용은 Overleaf로 반영됩니다.

Dropbox 동기화 설정

먼저 git-bridge를 활성화해야 합니다. 활성화하지 않으면 계정 설정에서 프로젝트 동기화 섹션이 표시되지 않습니다.
config/overleaf.rc
앱을 소유할 Dropbox 계정으로 로그인한 상태에서 Dropbox App Console에서 앱을 만드세요.
  1. Create app을 클릭한 다음 페이지를 작성하세요.
    • 1. Choose an API: Scoped access를 선택합니다.
    • 2. Choose the type of access you need: Full Dropbox가 아닌 App folder를 선택합니다. Overleaf는 앱 폴더 안에서만 동기화합니다.
    • 3. Name your app: 이름을 입력합니다(예: Overleaf). 이 이름은 Dropbox에서 고유해야 합니다. 각 사용자의 프로젝트는 해당 사용자 Dropbox의 Apps/<name of your app>/에 나타나며, 이 이름이 아래의 DROPBOX_APP_NAME입니다.
    • Create app을 클릭합니다. 앱이 Settings 탭에서 열립니다.
  2. Permissions 탭의 Files and folders에서 files.metadata.write, files.content.write, files.content.read를 체크하세요. account_info.read와 files.metadata.read는 함께 체크되며 해제할 수 없습니다. 다른 권한은 체크하지 마세요.
  3. Permissions 탭 하단 표시줄에서 Submit을 클릭하세요. Submit을 클릭하지 않으면 권한이 저장되지 않으며, Dropbox는 계정을 연결한 사용자의 파일 동기화를 거부합니다.

Dropbox App Console: 체크할 권한, Submit으로 저장

  1. Settings 탭의 OAuth 2에서 Redirect URIs에 ${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback을 입력한 다음 Add를 클릭하세요. URI를 입력하는 것만으로는 충분하지 않습니다. 입력란 위의 목록에 표시되어야 저장된 것입니다.

Dropbox App Console: 리디렉션 URI를 입력한 다음 Add 클릭

  1. Settings 탭의 Webhooks에서 Webhook URIs에 ${OVERLEAF_SITE_URL}/dropbox/webhook을 입력한 다음 마찬가지로 Add를 클릭하세요. Dropbox는 즉시 이 주소를 호출하여 확인하므로, Overleaf가 아래 설정으로 이미 실행 중이어야 하며 인터넷에서 접근할 수 있어야 합니다(Webhook 참조). 확인을 통과하면 상태가 Enabled로 표시됩니다.
Settings 탭에서 App key와 App secret(Show 클릭)을 복사한 다음 overleaf 환경 변수 파일에 다음 설정을 추가하세요. 웹훅(5단계)은 Overleaf가 이 설정으로 실행된 후에 추가할 수 있습니다.
config/variables.env
  • 리디렉션 URI와 웹훅을 구성하기 전에 OVERLEAF_SITE_URL이 올바르게 설정되어 있는지 확인하세요.
  • Dropbox는 사용자가 계정을 연결할 때 토큰의 권한을 고정합니다. 권한을 제출해도 기존 토큰은 변경되지 않습니다. 권한을 제출하기 전에, 또는 권한을 변경하기 전에 연결한 사용자는 Dropbox 계정의 연결을 해제한 후 다시 연결해야 합니다.
  • 새 앱은 Development 상태입니다. Settings 탭의 Development users에 Only you가 표시되면 본인의 Dropbox 계정만 연결할 수 있습니다. 다른 사용자도 계정을 연결할 수 있도록 하려면 Enable additional users를 클릭하세요. 그러면 연결된 사용자 수가 표시됩니다(예: 1 / 500). Development 앱은 최대 500명의 사용자만 허용합니다. 더 많은 사용자가 필요하면 Apply for production을 클릭하세요. 그러면 Dropbox가 앱을 검토합니다.
네트워크 접근이 제한된 지역에 있는 경우 Dropbox에 접근하기 위해 프록시를 구성해야 할 수 있습니다. 다음 환경 변수를 설정하세요: DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. 표준 HTTP/HTTPS 포워드 프록시여야 하며 127.0.0.1을 사용해서는 안 됩니다.

Webhook

Dropbox는 웹훅을 통해 Dropbox의 변경 사항을 Overleaf에 알리므로, 변경 사항이 몇 초 안에 Overleaf에 나타납니다. 웹훅은 사이트 주소인 ${OVERLEAF_SITE_URL}/dropbox/webhook으로 전송되므로 추가 포트는 필요 없지만, Dropbox가 인터넷에서 이 주소에 접근할 수 있어야 합니다. App Console에서 웹훅을 추가하면 Dropbox가 즉시 확인합니다. 웹훅이 없는 경우(예: Dropbox가 접근할 수 없는 서버), Overleaf의 변경 사항은 여전히 Dropbox로 전송되지만, Dropbox의 변경 사항은 사용자가 편집기의 Dropbox 대화 상자에서 _sync this project now_를 클릭할 때만 반영됩니다.

동기화 방식

  • 연결: 사용자가 Dropbox 계정을 연결하면 사용자가 소유한 프로젝트가 Dropbox로 전송됩니다. 사용자와 공유된 프로젝트는 다음 변경 시 Dropbox에 나타납니다.
  • Overleaf에서 Dropbox로: 새 파일, 이름 변경, 이동, 삭제, 프로젝트 이름 변경은 즉시 전송됩니다. 편집기에서 수정한 내용은 모든 사용자가 프로젝트를 떠나고 몇 분 후 Overleaf가 저장소에 저장하면 전송됩니다. 더 빨리 전송하려면 편집기의 Dropbox 대화 상자에서 _sync this project now_를 클릭하세요(1분에 한 번).
  • Dropbox에서 Overleaf로: 프로젝트 폴더의 새 파일 및 변경된 파일, 새 폴더, 삭제가 프로젝트에 적용됩니다. 앱 폴더 최상위에 새 폴더를 만들면 새 프로젝트가 됩니다. Dropbox에서 프로젝트 폴더를 삭제하면 Overleaf에서 해당 프로젝트가 삭제된 것으로 표시됩니다.
  • 충돌: 같은 파일이 양쪽에서 동시에 변경되면 마지막 변경이 우선합니다. Dropbox는 다른 버전을 _conflicted copy_로 보관할 수 있습니다.
  • 공동 작업자: Dropbox를 연결한 공동 작업자는 자신과 공유된 프로젝트를 받습니다. 보기 전용 사용자와 검토자도 프로젝트를 받지만, Dropbox에서 변경한 내용은 Overleaf로 다시 동기화되지 않습니다.
  • 무시되는 파일: 빌드 출력(.aux, .log, …), .DS_Store, Python 가상 환경 등 Overleaf가 동기화하지 않는 파일은 Dropbox에만 남습니다.

Q&A

  • 프로젝트는 이름으로 Dropbox 폴더와 매칭되므로, 같은 이름의 프로젝트가 두 개 있는 사용자는 먼저 그중 하나의 이름을 변경하라는 안내를 받습니다.
  • 하나의 Dropbox 계정은 하나의 Overleaf 계정에만 연결할 수 있습니다.
답변: Overleaf는 Dropbox가 토큰을 거부하는 경우(예: 사용자가 Dropbox에서 앱을 제거한 후), Dropbox 용량이 가득 찬 경우, 또는 Dropbox가 계정을 정지한 경우 Dropbox 계정의 연결을 해제합니다. 문제가 해결되면 사용자는 다시 연결할 수 있습니다.
답변: 대신 Overleaf에서 프로젝트 이름을 변경하세요. Overleaf 입장에서 Dropbox에서 폴더 이름을 변경하는 것은 프로젝트 폴더를 삭제하고 새 폴더를 만드는 것과 같으므로, 기존 프로젝트는 삭제된 것으로 표시되고 해당 파일로 새 프로젝트가 생성됩니다.
마지막 수정일 2026년 10월 17일