최근 Notion 측의 DNS 문제로 전세계 Notion 서버가 한동안 다운되는 심각한 문제가 발생했습니다. 많은 사용자들이 Notion에 자료를 모아두기 때문에 이러한 장애로 불안함을 느끼고, 백업을 하고자 합니다. 이번 시간에는 GitLab과 Notion의 api를 활용해 Notion Workspace를 매일 자동으로 백업하는 방법을 살펴보겠습니다.
주의!
이 방법은 데이터만을 백업하기 위한 방법으로, 내보낸 파일을 재업로드하여 워크스페이스에 콘텐츠를 다시 생성할 수는 없습니다. Notion 워크스페이스를 이전하는 방법은 여기서 확인하세요. 또한, GitLab 무료 계정에는 용량 제한이 있기 때문에 다량의 대용량파일을 백업하기 위한 방법으로 적절하지 않을 수 있습니다.
1. GitLab 계정 등록하기
GitLab 계 정이 없는 경우 GitLab.com에서 GitLab 계정을 생성하세요. 무료 계정은 10GB까지 데이터를 백업할 수 있습니다. 계정에 추가적인 보안을 원하시면 2FA를 설정하세요.
2. Notion 계정 토큰과 워크스페이스 id 추출하기
가장 어렵고 복잡한 단계입니다. 현재 Notion은 공식 api를 제공하지 않기 때문에, 백업 스크립트에서 개념 동작을 흉내내야 합니다. 이를 위해서 우리는 token_v2
와 전체 워크스페이스 내보내기 리퀘스트의 spaceId
를 추출해야 합니다.
구글 크롬에서 다음과 같은 방법으로 추출할 수 있습니다.
- http://notion.so/에서 “설정과 멤버” → “설정”으로 이동하세요.
- Command+Option+J (Mac)나 Control+Shift+J (Windows, Linux, Chrome OS)를 눌러서 크롬 개발자도구를 여세요.
- 다음 스크린샷에서처럼 네트워크 탭으로 이동하세요.
- XHR filter (1)를 활성화하고, clear console (2)을 누른 뒤, Notion에서 전체 워크스페이스 콘텐츠 내보내기를 클릭하고 (3), enqueueTask를 선택하세요 (4).