Eli의 여백

바쁜 나날들 사이에서 생각났던 이런저런 것들을 적어봅니다.

IT/새로운 시도

Dropbox 장단점 정리 및 junction link 적용하기

Eli♪ 2020. 5. 1. 16:56

 

이미지 출처: https://www.dropbox.com/ko/branding

 

간단 소개

최근 몇 년간 연구실에서 백업 및 네트워크 관리자 역할을 하면서, 내부적으로 dropbox를 잘 활용하고 있다. Dropbox business advanced 계정을 하나 받아서 쓰고 있는데 용량도 무제한이고 (실제로는 유한으로 표기되는데 거의 꽉차갈때쯤 되면 dropbox 관계자가 용량을 계속 늘려준다. 참고로 최소 3인구성이다.) 수정내역이나 삭제내역까지 전부 추적이 가능해서 백업용도로는 최고인 것 같다.

 

다만 드롭박스의 경우 타 서비스들에 비해 가격이 좀 더 있다. 물론 무료로 쓰면서 그 좁은 용량에 어떻게든 채워넣는 극한의 효율추구를 할 수도 있겠지만, 그런 목적이라면 다른 더 좋은 솔루션들도 많이 있다. 어쨌거나 dropbox의 시스템 자체는 개인 사용자보다는 소규모 사업장에 더 적합하게 되어 있고, 수정이 완료된 특정 데이터를 보존하는 것이 아주 중요한 곳에서는 dropbox 비용이 절대 아깝지 않을 것이다.

 

내가 생각하는 dropbox 장단점 (PC 작업시)

장점

  1. 안정성
    업로드 속도는 많이 빠르진 않지만 누락되는거 없고 에러도 없이 어떻게든 동기화를 다 시켜버린다. 구글 드라이브나 MS 원드라이브 등 여타 서비스들이 따라올 수 없는 정도의 독보적인 안정성. 아주 중요한 데이터를 보관하는 경우 이것 하나만으로 다른 모든 단점들을 커버하고도 남는다.

  2. 실시간 동기화
    윈도우 10을 쓰면서 원노트같은 것에 원드라이브 동기화를 걸어봤지만 기기 왔다갔다하면서 작업할 때 수동으로 동기화를 눌러줘야 실시간 동기화 작업이 가능하고 가만 놔두면 약간 delay가 있다. 그런데 dropbox는 그런 거 없고 그냥 업로드되는 즉시 다른 기기에서 그대로 이어서 작업이 가능하다. 다만 이미 존재하는 파일을 수정할 때에는 상당히 지연이 있는 편이다. 신규 파일 생성에 대해서는 알림도 해주고 아주 빠르게 반응한다.

  3. 가용성
    NAS같은걸 쓰게 되면 아무래도 NAS에 연결된 인터넷 사정에 의해 1년 365일 가동이 유지되지 않을 수가 있다. 그리고 혹시나 NAS 자체의 OS에 문제가 생기면 데이터에 접근이 안되는경우가 발생하기도 한다. Dropbox의 경우 전세계 어딘가에 하나라도 연결이 되면 되기때문에 이런 문제는 거의 발생하지 않는다. 몇 년동안 썼지만 딱 한번 일주일 정도 내부 시스템 업데이트한다고 모든 동기화 안됐던 적을 제외하고는 인터넷만 되면 프로그램이든 웹브라우저든 언제든지 확인해볼 수 있었다.

  4. 데이터 보안성
    다른 회사들의 경우 여러 가지 부가기능을 붙여놓기도 하고 해서 내가 뭔가를 업로드하면 그 회사에서 내부적으로 다른 용도로 써먹을 수도 있겠다는 느낌을 지울 수가 없다. 특히 내가 뭔가 고생해서 얻은 결과물을 구글 드라이브같은데에 올리면 회사에서 관련 기술을 나중에 슬쩍 할수도 있겠다는 생각도 해 본다. 이게 대학원 가기 전까지 웹하드같은건 쳐다보지도 않았던 이유이기도 하다. 그런데 dropbox는 오직 저장이라는 목적만을 충실히 수행하고 다른 사업은 하고있지 않은 것 같아서 그럴 염려는 줄어든다. 그래도 비밀번호나 시리얼키같은건 난 절대 어딘가의 온라인상에 저장하지 않는다. dropbox도 예외는 아니다.

  5. 사용자가 변경하거나 지운 파일 복구기능 (백업)
    개인적으로 dropbox는 백업도구라기보단 동기화 도구라고 생각하고 사용 중이다. 그런데 지난 몇 년간 연구실에 있으면서 다른 사람들이 하드나 SSD가 뻑나서 데이터를 통으로 날려먹은 경우도 몇 번 보고, 실수로 삭제했는데 5분 전 버전의 파일이 dropbox에 저장되어 있어서 복구가 가능했던 경우도 몇 번 보다보니 이 기능도 중요하게 보일 수 있겠다고 생각했다. 나는 아직까지 저장장치가 뻑난 경험은 한 번도 없고, 애초에 이런 사태가 일어나지 않도록 철저하게 로컬에도 백업을 하는 편인데 남들은 그냥 막 쓰다보니 복구기능을 쓰는 것 같다. 실제로도 아주 잘 되기도 하고. 혹시나 이 기능으로 버전관리도 가능할까? 라는 생각도 해봤지만 결국엔 협업을 하다보면 파일명으로 버전구분을 하게 되어 제대로 써볼 수는 없었다.

 

단점

  1. 동기화되는 최상위 Dropbox 폴더가 단 하나만 존재할 수 있는 점
    다른 서비스들의 경우 여러 폴더에 각각 동기화를 걸어서 클라우드에 저장할 수 있으나, dropbox의 경우 딱 하나의 경로를 지정하여 그 하위 폴더들만 동기화할 수 있다. 뭐 여러 물리 드라이브를 사용하는 경우에 비해서는 이쪽이 안정성은 훨씬 높겠지만 솔직히 불편한 건 어쩔 수가 없다. 그리고 최상위 폴더의 이름을 일반적인 방법으로 바꿀 수 없는 것도 문제 중 하나.

  2. 동기화하고 싶은 파일들을 모두 dropbox 하위폴더에 넣어야만 하는 점
    위의 1번 단점때문에 생겨난 문제인데, 여러 카테고리를 각각 백업하고 싶어도 결국은 dropbox 폴더 안에 넣어야 해서 나같이 용도별로 하드디스크를 따로 쓰는 사람들한테는 쥐약이다.

  3. 저장장치 용량을 넘어가는 양은 동기화 불가능 (스마트 동기화 없는 개인 계정인 경우)
    지금이야 비즈니스 어드밴스드 계정을 쓰고 있어서 스마트 동기화를 쓰면 물리적으로 용량을 잡아먹지 않게 할 수 있는데, 이게 없을경우 하드디스크 최대용량을 넘어서는 폴더는 동기화가 불가능하다. 특히나 용량도 얼마 없는 윈도우 태블릿같은거에서 사용하게되면 엄청난 단점으로 다가온다. 스마트폰은 이런 문제가 있을까봐 해보진 않았다.

  4. 바로가기가 제대로 백업이 안되는 점
    이전에 여러 곳을 돌아다닌 바로는 이것 때문에 피해를 보는 사람이 적지 않다고 들었다. 나는 처음부터 자료구조를 고려해서 바로가기 안쓰고도 찾을 수 있도록 폴더정리를 해 두었는데 만약 dropbox 폴더 안에 바로가기가 있는 경우 문제가 생긴다고 한다. 윈도우에서 일반적인 바로가기는 symbolic link인데 이걸 넣어두면 온라인상에는 처음 넣은 시점에서의 원본파일을 복제해서 저장하고 그 이후에는 업데이트가 안된다고 한다. 바로가기 원리랑 dropbox 파일 변경 감지 원리를 생각해보면 당연한 부분이다. 어쨌거나 나에게는 별 문제되지 않는 내용이었지만 바로가기를 쓰는 사람들은 유의해서 봐야할 것 같다.

  5. 메모용 플랫폼으로는 적합하지 않음
    인터넷을 돌아다니다 보면 에버노트나 원노트같은걸 쓰다가 dropbox로 넘어오는 사람들이 보인다. 개인적으로도 둘다 써보긴 했고 현재 dropbox를 쓰고 있지만 언제 어디에서나 기록하거나 열어볼 수 있는 메모 라는 컨셉에 드롭박스는 맞지 않는다. 내 경험상으로 간단한 메모를 원한다면 구글 킵이 최고다. 그리고 좀 체계적인 정리들은 MS 원노트를 사용중인데 문제없이 잘 쓰고 있다. 에버노트는 보안이슈가 있고, 내가 언급한것들은 보안은 확실하다. 그렇더라도 비밀번호같은 걸 평서문으로 올리는 멍청한 짓은 하지 말자. 메모용에 관해서는 나중에 따로 정리할 기회가 오면 정리해보면 좋을 것 같긴 하다.

 

그 외에도 뭐 dropbox가 파일 핸들을 계속 잡고있어서 Protools같은 프로그램 사용시 저장이 제대로 안되는 문제가 있을 수도 있는걸로 파악을 했다. 일단 나는 지금까지 사용하면서 유사한 문제를 겪어보진 못했다. 그리고 혹시나 파일이 지워질까봐 로컬에서 지워도 온라인에서 안지우게 세팅을 해두었는데 (기본값은 로컬에서 지우면 온라인에서도 지워진다. 파일 히스토리로 복구가능.) 나중에 웹에서 저장된 파일들에 들어가보면 임시로 만들었다가 지운 파일까지 다 남아있어서 약간 난잡? 해진 부분은 있었다. 그래도 실수로 지웠는데 영원히 없어지는거보단 나은 것 같다.

 

Junction link 적용배경

그동안 동기화만의 목적으로 dropbox를 사용했기 때문에 다른 사람들과 공유할 일이 있는 파일들만 dropbox에 업로드하고 내 개인 연구자료들은 dropbox에 동기화시키지 않았다. 여러 모로 수정이 잦기도 하고 특히 나의 경우에는 뭔가 작업을 할 때 저장 버튼을 시도때도 없이 누르는 편인데 이때 생성되는 자동저장용 임시파일들이 dropbox에 동기화된다고 계속 하드를 갈구게 되면 하드 수명이 빨리 줄어들 것 같았다. 또 위의 장단점 항목에서 언급했듯이 연구, 작곡, 취미 등의 용도별로 하드디스크를 따로 쓰는 나에게는 다른사람과 공유되는 폴더와 내 연구내용이 섞이는 게 싫었다.

 

그럼에도 불구하고 dropbox의 최대 강점인 안정적인 데이터 보존이라는 혜택을 누려 보고 싶었다. 그런데 연구 관련 파일이 파일 갯수도 수만 개, 용량은 수백 GB나 됐기 때문에 그동안 엄두도 못 내고 있었다. 특히 많은 파일을 동기화할 때의 dropbox 인덱싱 속도는 그야말로 극악이다. 그래서 거의 1년에 걸쳐 점진적으로 이것저것 시도를 해본 끝에 내 연구 폴더와 dropbox 폴더를 같은 HDD안에 넣는 것까진 했다. 이게 안되면 다른 드라이브로 데이터를 복사하는 과정도 만만치 않게 오래 걸린다.

 

모든 준비가 완료되었으나, 역시 가장 큰 문제는 dropbox 폴더 경로였다. 내가 짠 코드중에 불가피하게 절대경로로 참조해야 하는 코드가 딱 한 줄 있는데, 그 코드를 사용해서 만든 수많은 MATLAB 파일을 만들었고 혹시라도 나중에 다시 코드를 돌릴 일이 있을때 문제가 생기면 업무에 지장이 있기 때문에 원본 파일의 경로가 변화되면 곤란했다. 이 때 떠오른 게 이전에 NAS 세팅할 때 사용했던 junction link였다. 자세한 내용은 다 적기에는 이 글의 범위를 넘어설 것 같아서 관련 링크 만 남긴다. 어쨌거나 핵심은 junction link를 쓰면 경로명이 바뀌는 문제를 해결할 수 있을 것 같았다는 것이다.

 

Junction link 적용방법

일단 dropbox 안에 바로가기를 넣으면 동기화가 안된다는 점은 위의 단점에서도 언급했지만 인터넷에 조금만 검색해봐도 금방 알 수 있다. 따라서 원본 파일은 어찌되었건 dropbox 폴더 안에 들어가야 한다. 그런데 이렇게 되면 파일 경로가 변경된다. 이를 해결하기 위해 원본 파일이 있던 곳에 junction link를 만들어주면 된다. 예를 들면 다음과 같다.

 

1. 준비

원본: D:\연구

Dropbox: D:\Dropbox(계정 이름)

 

2. 원본 이동

다음 폴더를 생성 후 모든 원본 데이터를 dropbox로 옮겨 준다. 

D:\Dropbox(계정 이름)\연구

이러면 Dropbox가 동기화를 시작한다. 파일이 많을 경우 동기화하는데에는 꽤 걸리므로 시간여유가 많을 때 하자.

 

3. 껍데기 삭제

위의 과정을 통해 옮기면 D:\연구 라는 빈 폴더가 남을텐데 이것을 지워 준다.

 

4. Junction link 생성

powershell을 켜서 cmd를 입력하거나 실행창에서 cmd를 입력하여 켠 후 다음의 mklink 명령어를 통해 junction link를 생성한다.

 

mklink /j "D:\연구" "D:\Dropbox(계정 이름)\연구"

 

  • 이 과정은 D:\Dropbox(계정 이름)\연구 라는 폴더에 들어있는 원본을 D:\연구 라는 폴더명으로 접근할 수 있게 해 준다. 혹시나 폴더 앞뒤 순서가 바뀌지 않았는지 잘 생각하면서 하자. 명령어를 실행하기 전에 D:\연구 라는 폴더가 존재하면 안된다. 
  • /j는 junction link (MS 공식 용어로는 dirctory junction) 을 의미한다.
  • 큰따옴표를 쓴 이유는 경로명에 띄어쓰기가 있을 때 실행에 오류가 없게 하기 위함이다.

이 과정을 마치면 기존과 동일하게 폴더창에 주소를 쳐도 dropbox 안에 옮겨놓은 파일이 있는 폴더로 링크가 된다. 이 방법으로 위에서 언급한 단점 1, 2를 극복할 수 있었다. 끝.