동기화, 구글 캘린더, 저장공간, 폴더 문제에 대한 진행방향
저는 요즘 동기화에 대한 고민이 많습니다. 사용자분들이 당혹스러운 경험을 종종하시는데, 바로 화면이 초기화되는 일입니다. 에어데스크에 사용되는 저장방식은 '동기화'입니다. 어떤 크롬이나 웨일을 쓰시던 로그인하시고, 동기화를 하면 알아서 정보를 가져옵니다. 그런데 문제는 이 편리한 동기화 때문에 데이터가 지워지곤 합니다.
브라우저가 이렇게 로그인이 안되어있다면 설정해둔 정보(링크아이콘, todolist 등)는 사라질 수 있습니다. 물론 로그인을 안하거나, 동기화를 사용하지 않고 계속 사용하시면 문제가 되지 않습니다. 이럴 경우 로컬에 저장하기 때문입니다. 그런데 로그인을 해도 정보가 손실될 수 있습니다. 설정에서 동기화를 하지 않는 경우, 로컬에 저장된 데이터는 쉽게 손실될 수 있기 때문입니다.
가장 안전한 방법은 아래와 같이 설정 - 사용자 에 들어가 로그인을 진행합니다.
위와 같이 동기화가 진행되면 1~2분간 특별한 창이 뜨지 않습니다. 아래의 창이 뜨고 확인을 눌러주어야 동기화가 완전히 진행됩니다.
만약 여러분이 로그인을 하지 않고 에어데스크를 사용하시다가 동기화를 하시면 기존의 화면이 아닌 기본화면이 나타납니다. 에어데스크에서 새 사용자를 만나게 되었으므로, 새 사용자에 맞게 기본화면을 보여주기 때문입니다. 동기화가 되지 않은 유저분들을 위해 이 점을 쉽게 해결하기 위해 답을 찾고 있는데 쉽지는 않습니다.
저번 글에서도 적었고, 유저분들이 요청하신 것중에 구글 캘린더와 연결을 했으면 좋겠다는게 가장 많았습니다. 구글 캘린더는 두가지 이유에서 지연되고 있습니다.
첫번째는 저는 군대에서 개발하고 있습니다. 사이버 지식 정보방에서 진행하고 있는데, 구글 개발자 대시보드는 들어갈 수 있으나 API & Key에 접속이 되지 않습니다. 이게 해결되지 않으면 휴가때 하던지 설령 해결하더라도 테스트를 진행하기 쉽지 않을 것 같습니다.
두번째는 구글 API와의 동기화 문제입니다. 이번 글이 동기화와의 싸움인데, 여기에 구글 API까지 더해진 상황이 됩니다. 구글 캘린더를 연결하려면 구글 계정과 이어주어야 합니다. 이건 로그인 장치가 늘어나는 셈입니다. 크롬에 로그인된 사용자와 구글 API의 사용자가 다를 경우를 고려해야하며, 이때의 동기화 문제도 생깁니다. 혹은 로그인 안된 사용자가 구글 캘린더와 연동하면서 기존 데이터가 손실되는 상황도 생깁니다. 이런 이유에서 구글 캘린더 연동은 장기적으로 해결할 계획을 가지고 있습니다.
에어데스크의 설치 직후 로그인과 동기화를 하도록 창을 만드는 방법입니다. 이후 구글 캘린더와도 연결 권한을 획득하면 사용자는 쉽게 동기화된 에어데스크를 사용할 수 있습니다. 그러기 위해선 첫 접속에 대한 여러 이벤트를 추가해야하고, 로그아웃 상황, 구글 캘린더와의 연결만 끊는 경우 등을 모두 준비해야합니다.
이제 저장 정보를 볼 수 있습니다. 크롬의 내장 저장 공간과 사용한 아이템들을 간단히 표현해봤습니다. Todolist나 메모를 많이 써도 100개의 아이템이 사용되진 않기 때문에 512개의 저장공간은 굉장히 넓게 보입니다. 그 뿐 아니라 아직까진 링크 아이콘 하나당 하나의 데이터 튜브를 사용했는데 이것도 배열 형태로 변환해 처리할 예정입니다. 그렇게 되면 최소 10개 정도의 데이터 튜브로 수 십개의 아이템을 넣을 수 있게 됩니다. 이렇게 되면 폴더를 구현해도 아무런 문제가 없을 겁니다.
데스크탑 UI를 지향하는데 폴더가 빠지면 안될 겁니다. 다만 개발하는 입장에선 꽤나 복잡한 친구입니다. 일단 폴더에 아이콘을 넣으려면 여러 아이콘을 한꺼번에 드래그할 수 있어야 합니다. 드래그된 녀석들은 선택됬다는 표시도 해주어야하고, 위치가 수정되거나 삭제되는 이벤트도 처리해야합니다. 동시다발적으로 여러 아이템이 이동하게 되면서 생기는 I/O문제도 있을 수 있구요. 크롬 내부 저장 방식의 I/O 한계값이 그다지 높지 않다는 점도 여러 고민을 줍니다.
I/O는 입출력을 뜻합니다. 에어데스크의 모든 커스터마이징 요소는 데이터를 가져야 하므로 입력되거나 삭제되거나 해야하는데 무한대로 할 수 없습니다. 분당 한계도 있고, 용량의 한계도 있습니다. 이 문제는 모든 수정에 대해 I/O를 발생시키지 않는 방식으로 해결할 수 있습니다. 구글 DOCS나 여러 웹 생산성 프로그램에서 사용하는 방식과 동일합니다. 다만 기존의 처리방법을 더 복잡하게 수정해야 하니 장기적으로 해결해야할 문제가 되었습니다.
에어데스크를 웹서비스와 연결할 계획입니다. 커스텀 화면 자체를 제공하는건 현 시점에선 어렵고, 간단하게 여러분과 소통하는 창구를 만들 계획입니다. 단순히 기능에 대한 건의부터 해서 버그리포트, 개발 방향이나 디자인 컨셉, 테마 등도 소통하고자 합니다.
에어데스크를 오픈소스로 하게 된다면 기존의 틀을 유지하면서 재밌는 플러그인을 각자 만들 수 있고, 올릴 수 커스터마이징 할 수 있게 하고 싶습니다. 단순히 자신만의 에어데스크를 만드는게 아니라 에어데스크 웹서비스를 통해 다른 사람들과 공유할 수 있다면 정말 재밌을 겁니다. 차후에 에어데스크 기능 자체를 제공하는 웹서비스를 만들게 된다면, 만든 플러그인을 마켓에 판매할 수도 있을겁니다.
이외에도 여러가지를 진행하고 있습니다. 오늘은 1500명의 주간 사용자를 돌파했습니다. 기쁜 일이지만 한편으론 아쉬운 점이 있습니다. 바로 삭제 비율인데, 높은 설치 당 삭제 비율은 "마음에 들지 않았다." 라는 메세지이기 때문입니다. 하지만 계속해서 꾸준히 발전시켜나가고, 좋은 제품을 만들게 된다면 only one인 제품이 될 수 있을거라 믿고 있습니다. 계속 지켜봐주세요. 감사합니다.