Stay Updated - 최신 데이터 유지하기

시스템 잡설  |   2013. 8. 6. 16:19

제는 한 사람이 여러 기기를 사용하기 때문에 다양한 플랫폼 (OS 등) 과 소프트웨어를 통해서 작업을 하게 되지만 해당 기기에 저장된 데이터를 다른 곳에 사용하기 위해서는 마지막으로 작업한 데이터 (파일) 를 본인 메일로 보내거나 USB 메모리에 저장을 하는 방법을 사용해야 했었다. 그러나 이제 파일 클라우드 서비스 (file cloud service) 가 보편화되면서 USB 메모리 없이도 자신의 온라인 계정에 올리고 이를 다른 곳에서 작업을 그대로 할 수 있도록 해준다. 



단순히 온라인에 작업한 파일을 올리는 서비스 뿐만 아니라 기본적인 오피스 작업을 웹 브라우저만으로도 작업할 수 있는 클라우드 오피스 (Google Drive, Microsoft Office 365 등) 의 환경에서는 소프트웨어를 설치할 필요도 없이 어디서나 웹 브라우저만 필요하다. 이처럼 클라우드 서비스가 보편화되면서 가장 큰 변화는 데이터를 관리하는 방식이 달라진 점이다. 온라인 저장 + 온라인 소프트웨어 (SaaS; Software as a Service) 은 분명 일반적인 작업을 다양한 사람들과 협업 작업 (collaborative works) 을 할 수 있도록 환경을 제공해주고 있다. 


런 클라우드 서비스 중에서 가장 인기있는 서비스가 있다. 바로 dropbox (이하 드랍박스) 인데 2008년에 처음 서비스를 시작해서 비슷한 기능의 서비스 업체들이 많지만 안정성 및 다양한 확장성 특히 iOS 와 안드로이드 기기와 같은 모바일 플랫폼에 궁합이 잘 맞아 인기는 급증하기 시작하였다. 특히 드랍박스의 인기몰이는 iOS 의 플랫폼 특징과도 관계가 있다고 생각한다. iOS 는 안드로이드 기기와 다르게 컴퓨터의 파일 관리를 지원하지 않는다. (별도 기기 OS에 대한 해킹을 하지 않은 상태) 즉, 자신이 작업한 파일을 iOS 의 내부 메모리에 직접 저장할 수 없다. 그렇기 때문에 애플은 iCloud 와 같은 플랫폼과 연결된 온라인 클라우드를 제공하지만 iCloud 가 제공되기 이전에 이런 역할을 충분히 해주던 서비스가 바로 드랍박스였다. 


드랍박스(dropbox)는 기본적으로 온라인 일정 용량을 마치 자신의 하드 디스크처럼 사용하는 개념이다. 드랍박스 클라이언트를 설치하면 (windows, linux, mac) dropbox 의 특정 폴더를 dropbox 온라인 공간과 동일하게 동기화 해준다. 즉, 특정 폴더가 드랍박스 공간과 동일하게 동기화 되는 것이다. (※ 참고: 백업, 동기화 & 클라우드 )


이런 동기화 기능을 이용하면 자신이 사용하는 여러 컴퓨터에서 별도의 수고없이 최신 데이터를 사용할 수 있게 된다. 예를 들어 집에서 사용하는 컴퓨터 A 와 회사에서 사용하는 컴퓨터 B 가 있을 때 A  B 모두에 드랍박스 클라이언트를 설치하면 A  B 컴퓨터 모두에 드랍박스가 사용하는 폴더를 만들고 해당 폴더는 자신의 드랍박스에 있는 파일들과 폴더들이 동일하게 동기화 된다. 



예를 들어 컴퓨터 A 에서 드랍박스 폴더 안에 있는 파일을 편집하거나, 혹은 작업한 파일을 드랍박스 폴더 안에 저장을 하게 되면 드랍박스 클라이언트는 몰래 몰래(?) 해당 파일을 드랍박스 서버에 동일한 파일을 복사가 되어 온라인에도 자신이 작업한 파일이 업데이트된다. 이렇게 업데이트 된 파일은 동일하게 연결된 컴퓨터 B 에도 동일한 파일이 저장이 된다. 실제로 물리적으로 컴퓨터 AB 드랍박스 온라인에 저장된 파일은 다르지만 항상 어느 쪽이 업데이트 되면 모두 동일하게 변경되도록 해주는 기능이 바로 온라인 동기화의 주요 기능이다. 


따라서 온라인 용량만 차지하고 있는 서비스가 아니라 자신이 작업하는 컴퓨터에도 일정 용량을 차지하게 된다. 다만 모바일 기기는 조금 다르다. 드랍박스에서 사용하고 있는 용량에 따라서 다르겠지만 예를 들어 8G 정도를 사용한다면 주로 16G / 32G 의 내부 메모리를 사용하고 있는 모바일 기기에서는 상당히 큰 비중을 차지하게 되고 컴퓨터처럼 모든 파일을 항상 동기화할 필요도 없기 때문에 필요할 때 온라인에서 다운 열어 사용하거나 안드로이드 기기의 경우에는 자신의 내부 메모리에 저장할 수 있거나 다른 서비스 (페이스북이나 트위터 등) 에 올릴 때 바로 사용할 수 있는 온라인 저장소로 역할을 한다. iOS 의 경우 앱에서 지원해준다면 자신의 작업한 내용을 드랍박스에 올릴 수 있고, 안드로이드의 경우에는 온라인 파일 저장소로 자유롭게 사용할 수 있다. 



이런 동기화 서비스를 제공하는 곳은 다수 있다. 가장 대표적인 곳이 Box, SugarSync, Huddle, Google Drive 이외에도 국내 포털 서비스에서도 해당 기능을 제공해주기 때문에 어떤 서비스를 사용해도 별 문제는 없다. 그러나 특별히 드랍박스를 통해 그 개념을 이해하고 사용하기를 바라기 때문에 대표적으로 드랍박스를 소개했고 개인적으로 사용하는 서비스이기 때문이다. 각 서비스의 장단점이 있지만 자신의 기호에 맞는 서비스를 찾는 것이 중요할 것이다. 서비스 초기 드랍박스의 문제점으로 ⓐ 용량 문제 (기본 용량이 적은 편이다.) ⓑ 느린 속도 ⓒ 온라인 서버에 업데이트 내역(history) 과 버젼(version)이 기록된다는 점의 문제가 제기되었다. 


그러나 실제로 드랍박스의 사용 용도를 생각하면 대용량 동영상을 올리지 않고 작업 문서와 자주 업데이트 되는 파일을 위주로 하기 때문에 속도 문제와도 별 문제가 되지 않는다. 또한 업데이트가 내가 확인하거나 어떤 별도의 조작 과정을 해야하는 것이 아닌 백그라운드로 진행되기 때문에 거의 신경쓰지 않는다는 점이 오히려 장점으로 작용했다. 파일을 실수로 지웠을 때 세번째 문제또한 오히려 장점으로 작용될 수 있다. 이 밖에도 온라인 서비스의 보안 정도 (2-step verification 및 공유, 보안 설정) 등을 고려해서 지금은 드랍박스만 사용하게 된다. 



§ 동기화 기능을 응용하기 


다양한 기기 모두에 항상 최신의 데이터가 유지된다는 것은 큰 장점이 될 수 있다. 모바일 기기에서 컴퓨터로 파일 하나 보내는 것은 의외로 번거로울 때가 많다. 메일로 보내는 것이나 메신저를 통해 보낼 수 있지만 모바일 기기에서 드랍박스 온라인에 올리면 해당 파일은 컴퓨터에도 적용되어 올린 파일이 바로 볼 수 있다. 


토렌트 (torrent) 의 폴더 기능 중 Automatically load .torrent from 기능을 통해서 드랍박스 폴더 밑에 특정 폴더를 지정하면 모바일 기기에서 해당 드랍박스 폴더에 .torrent 파일을 올리면 외부나 어디서나 특정 컴퓨터에서 자동으로 해당 토렌트를 실행하도록 설정할 수 있다. 



기본적으로 제공하는 모바일 기기에서 찍은 사진을 자동으로 드랍박스에 올리는 카메라 업로드 (Camera Upload) 기능을 통해서 별도로 모바일 기기의 사진을 백업하거나 복사하는 작업없이도 바로 찍은 사진들을 컴퓨터에서 보거나 편집할 수 있도록 해준다. 그리고 만약 컴퓨터에서 편집을 하면 편집된 파일을 드랍박스 온라인에 적용되어 변경된다. (모바일 기기는 동기화가 되지 않기 때문에 해당 편집한 내용은 별도의 작업 (export) 을 하지 않으면 변경되지 않는다.) 


항상 최신의 데이터를 유지해야 하는 소프트웨어를 생각해보면 드랍박스의 응용 범위는 넓어진다. 예를 들어 암호 관리 프로그램 (Keepass, 1password 등) 과 같이 아이디 / 암호를 관리하는 소프트웨어는 자신이 변경한 데이터가 다른 컴퓨터에도 적용되지 않으면 제대로 로그인조차 할 수 없을 것이다. 개인적으로 사용하고 있는 Keepass 소프트웨어의 경우 아이디 / 암호 및 여러 정보를 저장하고 있는 데이터 파일이 있다. 해당 데이터 파일의 저장 위치를 드랍박스의 폴더에 저장을 하게 되면 변경 내용은 자동으로 온라인과 동기화 되게 된다. 만약 A 컴퓨터에서 변경 저장하게 되었다면 드랍박스로 연결된 다른 컴퓨터 B에서도 변경된 내용을 그대로 동기화 되어 사용할 수 있게 될 것이다. 즉, 소프트웨어에서 사용하는 데이터 파일의 위치를 드랍박스의 폴더 아래 지정을 하게 되면 해당 데이터 파일은 어디에서 작업해도 항상 최신의 데이터를 사용할 수 있도록 된다. 




§ 폴더 모니터링 기능을 이용한 업데이트


일상의 기록을 위한 소프트웨어로 에버노트 (Evernote) 가 있다. 다양한 플랫폼을 지원해주고 특히 다양한 API Plugin 으로 많은 사람들이 많이 사용한다. 온라인 동기화를 서비스 자체에서 지원하지만 모바일 환경에서 노트를 만들거나 작성하는 것이 그리 쉽지 않은 경우가 많다. 이런 경우 모바일 기기에서 내려받은 PDF 화일이나 이미지 파일 등을 드랍박스의 특정 폴더에 올리고 에버노트에서는 이를 모니터링 하여 자동으로 등록하는 기능을 이용하면 노트를 작성하는데 수고를 덜 수 있다. 


도구 → 폴더 가져오기(I)... 에서 드랍박스에 놓인 폴더를 지정하면 모바일 기기에서 드랍박스에 올린 파일들을 자동으로 에버노트에 등록할 수 있다. 현재 이 기능은 원도우즈 클라이언트에서만 가능한 기능이다. 



이와 같은 원리로 사용할 수 있는 클라이언트 소프트웨어가 있다. 논문 참고문헌 관리에 사용하는 멘델레이 (Mendeley) 이다. (※ 참고: 정보의 가공 및 개인화 - 논문 작성을 중심으로) 멘델레이는 에버노트와 마찬가지로 특정 폴더 모니터링 기능이 있다. 동일하게 드랍박스에 놓인 폴더를 지정하면 논문에 관련된 PDF 문서들을 자동으로 멘델레이에서 등록하고 관리할 수 있도록 할 수 있으며, 해당 논문은 어떤 기기에서든 드랍박스를 통해 접근 가능하다. 



§ 심볼릭 링크(link)를 이용한 동기화 응용 


심볼릭 링크에 대해서는 이미 외장하드를 이용한 iTunes Library 관리를 통해서 소개했다. 초기 드랍박스의 경쟁 서비스였던 슈가싱크 (SugarSync) 의 장점으로 여러 곳의 폴더를 지정하는 것이 장점으로 소개된 적이 있었다. 그러나 새로 운영체제를 설치하거나 새 시스템에 설정할 때는 여러 곳에 분산된 폴더를 지정하는 것이 더 관리하기 어렵다는 것을 느끼게 된다. (개인적인 느낌이지만...) 그러나 Keepass 와 같은 소프트웨어의 데이터를 최신으로 유지해야 할 때 저장하는 폴더를 지정할 수 있으면 다행이지만, 소프트웨어가 사용하는 기본 폴더 (default folder) 가 고정되거나 변경하면 복잡한 문제가 발생하는 경우가 있다. 이런 경우 슈가싱크의 경우 어렵지 않게 설정하지만 드랍박스는 방법이 없는 것처럼 보인다. 


이때 사용할 수 있는 방법이 바로 심볼릭 링크 (symbolic link) 를 사용하는 것이다. 시스템의 특징으로 Windows XP/2000 은 기본적으로 제공하지 않기 때문에 Junction 이라는 별도의 툴을 받아 사용해야 한다. Windows Vista 이후 시스템은 별도의 툴 없이 내부적인 명령어로 가능하다. 


심볼릭 링크를 이용하기 위해서는 링크의 기본적인 개념을 이해할 필요가 있다. 링크는 파일에 대한 링크, 폴더에 대한 링크가 존재하고, 파일 시스템의 접근 방식에 따라서 소프트 링크와 하드 링크[각주:1]로 구별된다. 자세한 내용은 별도의 검색을 통해서 쉽게 찾아 볼 수 있기 때문에 여기에서 다루려고 하는 것은 '폴더에 대한 하드 링크 (Junction)' 방법을 이용하는 것이다. 앞서 살펴본 에버노트나 멘델레이에는 관리하는 대상 데이터가 중요하기 때문에 데이터만 항상 동기화하여 사용해도 별 불편이 없지만 컴퓨터에 저장된 사용자 설정이나 검색 기록 등은 동기화 되지 않는 경우가 많다. 


이런 경우 서비스 자체에서 동기화를 지원해주어도 각 기기마다 모두 동기화하는 과정을 거쳐야 하고 일정 시간이 지나 최적화된 데이터를 그대로 사용할 수 없는 경우도 생긴다. 이 경우 로컬 컴퓨터에서 사용하고 있는 데이터 파일들을 드랍박스와 연결하여 항상 데이터 파일이 동기화 되도록 만들어 주고 다른 작업 컴퓨터에도 동일한 설정을 해주면 각 컴퓨터마다 최적화 작업을 수행하지 않아도 된다. 또한 자동으로 데이터 파일이 백업이 되기도 한다. 에버노트를 통해 한번 살펴보면, 


에버노트 클라이언트를 설치하고 데이터를 동기화하면 컴퓨터의 특정 폴더에 에버노트 동기화된 데이터가 저장이 된다. .exb 확장자 파일들 및 백업파일이 생성된다. 원도우즈의 경우, 


C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Evernote\Evernote\Databases\.exb (XP, 2000) 

C:\Users\%USERNAME%\AppData\Local\Evernote\Evernote\Databases\.exb (Vista or higher) 


으로 설정이 된다. (시스템에 따라서 폴더 설정 위치는 조금씩 상이할 수 있다.) 이처럼 에버노트가 저장된 폴더를 찾은다음 에버노트가 사용하는 데이타 파일을 포함하는 Databases 폴더를 드랍박스로 심볼릭 링크 (Symbolic Link) 를 이용해서 드랍박스에서 데이터 파일을 직접 동기화할 수 있도록 설정한다. 


심볼릭 링크 명령어는 mklink 인데 이 명령어를 사용하기 위해서는 관리자 권한을 가져야 한다. 간단하게 관리자 권한으로 명령어 화면을 실행하는 방법은 시작을 누르고 명령어 창에 'cmd' 를 입력하고 Shift-Ctrl-Enter 를 눌러 실행하면 간편하게 실행할 수 있다. 


이렇게 실행하고 나서 드랍박스 폴더에 임의의 폴더 예를 들어 evernote 란 폴더를 만들었다면, 해당 폴더로 이동하여 다음의 명령어를 실행하면 된다. 


mklink /J "임의의이름" C:\ .... \evernote\evernote\Databases\  


이렇게 실행하면 드랍박스 밑에 만든 폴더에는 "임의의이름" 을 가지는 폴더가 생성된다. 해당 임의의 폴더에 들어가면 앞서 보았던 에버노트의 데이터 파일 폴더 내용이 보이게 된다. 즉, 데이터 파일 폴더가 그대로 동일하게 드랍박스 하위 폴더에도 생성된 것이다. 이렇게 생성된 폴더는 드랍박스에서 폴더로 인식해서 해당 에버노트의 폴더를 동기화하게 된다. 만약 드랍박스 하위의 폴더에서 특정 파일을 만들거나 삭제하면 그대로 동일하게 원본 위치에도 적용된다. 원도우즈의 바로가기는 특정 폴더 위치에 대한 정보만 가지고 있는 단순한 파일이지만 심볼릭 링크 ─ Junction 기능은 일반 폴더로 인식된다. 


파일에 대한 SYMLINK 와 폴더에 대한 소프트링크 [SYMLINKD] 그리고 폴더에 대한 하드링크 [JUNCTION] 의 예를 보여준다.


이처럼 로컬 컴퓨터에서만 사용되는 설정이나 데이터 내용을 다른 컴퓨터에서도 동일하게 사용하기 위해서 드랍박스와 심볼릭 링크를 이용하면 아주 간단하게 구현할 수 있다. 이런 원리로 자주 사용하는 작업 폴더 (e.g.: downloads , documents 등) 를 드랍박스와 심볼릭 링크로 연결하면 별 신경 쓰지 않고 최신의 작업한 데이터를 사용할 수 있다. 예를 들어 논문 작업을 위해 만든 Project 란 폴더가 있는데 이를 드랍박스에 심볼릭 링크로 연결하면 편리하게 동기화하여 최신의 데이터를 어디서든 유지할 수 있다. 



§ 좀 더 생각해 볼 내용 


심볼릭 링크, 특히 폴더에 대한 하드 링크인 Junction 으로 연결된 두 폴더는 파일 시스템 상으로는 완벽하게 동일한 내용이지만 사용자에게 보여지는 위치는 다르기 때문에 드랍박스가 업데이트 되는데 조금 신경쓸 내용이 있다. 예를 들어, 


원본 폴더 & 연결된 폴더 in 드랍박스 : JUNCTION 폴더가 드랍박스에 존재 

원본 폴더 in 드랍박스 & 연결된 폴더 : 원본 폴더가 드랍박스에 존재 


는 전혀 다르지 않지만 드랍박스에 원본 폴더가 존재하는 경우는 드랍박스에 동기화되는 반응이 빠르게 적용된다. 정확한 이유는 알 수 없지만 현재는 그런 현상이 보인다. 즉, 위에서 예를 든 에버노트의 데이터 폴더를 동기화하기 위해서 


에버노트 데이터 폴더 & 연결된 폴더 in 드랍박스 로 설정이 되면 드랍박스에 있는 폴더는 JUNCTION 으로 표시가 된다. 이 경우 연결하려는 에버노트 데이터 폴더를 드랍박스에 이동하기 (MOVE) 하여 원 위치에 제거한 다음 원본 위치를 드랍박스에 놓고 이를 반대로 에버노트 폴더 위치에 심볼릭 링크를 만드는 것이 동기화에 유리하다는 것이다. 즉, 드랍박스에서 동기화하려는 폴더의 내용을 원본 폴더로 옮기고 원래 있어야 하는 위치에 심볼릭 링크 (JUNCTION) 폴더를 만들어서 동일하게 만들어주는 것이 경험상 더 좋다는 것이다. 


드랍박스에 원본폴더를 만들고 작업 폴더를 별도로 JUNCTION 으로 연결해서 사용하면 사용자 작업 데이터들은 자동으로 동기화되어 최신 데이터로 업데이트 된다. 폴더의 형식도 일반 FOLDER 가 아닌 JUNCTION 으로 표시되는 것을 볼 수 있다.


맥 (OSX) 에서는 레오파드 (Leopard) 이후에는 폴더에 대한 JUNCTION 기능에 해당하는 심볼릭 링크를 기본적으로 지원하지 않는다. 사실 조금 생각해보면 하드 링크를 이용하여 무한히 확장되는 폴더를 만들 수 있다. 하위 폴더로 상위 폴더에 대한 심볼릭 링크를 만들면 계속 반복해서 순환되기 때문이다. 이런 이유에서 여러가지 시스템 백업을 비롯한 몇가지 보안 문제를 발생시킬 수 있다. 물론 요즘의 대부분 시스템 백업 소프트웨어 (노턴 고스트나 Acronis TrueImage 등) 는 이런 심볼릭 링크에 대한 문제도 잘 해결해주고 있기 때문에 별 걱정할 필요는 없다. 


OSX 의 심볼릭 링크에 대한 내용은 다음의 링크를 참조하여도 좋다. -  How to Create and Use Symlinks on a Mac. ─ GIGAOM



마무리 하며... 


랍박스와 동일한 기능을 하는 서비스를 이용한다면 동일한 결과를 얻을 수 있다. 자신의 기호에 맞게 적절한 동기화 가능한 서비스를 사용한다면 동일한 효과를 기대할 수 있을 것이다. 중요한 것은 다 기기 동기화 기능을 통해서 자신이 작업한 데이터를 항상 최신으로 유지할 수 있는 방법, 그리고 심볼릭 링크를 통해서 자신의 작업 환경과 데이터를 동기화할 수 있는 방법을 통해 자신의 소중한 데이터와 익숙한 작업 환경을 잃어버리지 않는다면 작업의 효율성을 높일 수 있을 것이다.



몇년전까지만 해도 동기화는 상당히 복잡하고 오류도 많은 기능이었다. 그래서 자신의 자료가 사라질까 걱정하여 몇번의 백업과 불편한 작업을 수행해야 했지만 이제는 온라인 클라우드 서비스와 동기화 기능을 통해서 이런 걱정에서 벗어날 수 있었다. 결론적으로 심볼릭 링크는 로컬 컴퓨터와 동기화 서비스를 연결해주고 중앙 집중적 데이터 관리를 가능하게 해주는 작은 기능이고, 드랍박스는 로컬 컴퓨터가 인터넷으로 연결할 수 있도록 해주는 서비스이다. 둘의 적절한 조합으로 갑자기 컴퓨터를 사용할 수 없는 상황에서도 데이터에 대한 불안을 해소시킬 수 있다. 아울러 SSD 가 대중화 되어 로컬의 데이터 저장 공간이 오히려 예전보다 줄어들었다. 이런 상황에서 심볼릭 링크를 잘 이용한다면 SSD 용량을 적게 사용하며 효율적으로 데이터를 관리할 수 있는 방법도 찾을 수 있을 것이다. 



  1. 일반적으로 symbolic link 는 soft link 를 지칭하지만 여기에서는 파일 시스템에서 사용되는 모든 링크를 편의상 심볼릭 링크로 설명하였다. [본문으로]