디지털 - 휴먼 API (2024)
제가 멀쩡한 사람과 비슷하게 행동하도록 하는데 여러 앱과 서비스를 사용하고 있습니다. 여러 카테고리에 걸쳐 사용하는 주요 앱과 도구를 소개하고 각각을 어떻게 사용하고 있는지 설명하겠습니다.

디지털 생존 키트 2024라는 글을 보았습니다. ‘App Defaults’라는 목록을 보고 영감을 얻은 글이라고 합니다. 이전에 웹 주소 뒤에 ‘uses’를 붙여 보면 각자가 사용하는 하드웨어나 소프트웨어를 나열해 놓은 페이지가 나오게 만들어 놓던 것과 비슷한 접근인 것 같습니다. 제가 이 세계를 살아가며 멀쩡한 하나의 사람으로써 동작할 수 있도록 도와주는 소프트웨어나 서비스를 소개하며 제가 무엇에 의존하고 있는지 돌아볼 수 있고 또 혹시 개선 가능한 점을 제 스스로 눈치 챌 수도 있고 또 절차에 대한 의사소통에 설명한 대로 문서 모양으로 공개되어 있으면 다른 사람들에 의해 개선의 여지를 찾을 가능성이 올라갑니다. 그렇게 제가 여러 가지 일에 사용하는 소프트웨어와 서비스를 소개하는 글을 만들기로 했는데 확실히 이름은 고민거리입니다.
‘App Defaults’라고 하기엔 제가 설명하려는 맥락과 잘 연결되지 않는 것 같고 또 제가 참고한 ‘디지털 생존 키트’ 역시 제 맥락과는 썩 어울리지 않는 느낌이 들었습니다. 제가 디지털 세계와 통신하기 위해 사용하는 소프트웨어와 서비스는 일종의 ‘디지털 - 휴먼 API’의 지위를 부여해도 괜찮지 않은가 싶은 느낌이 들어 전혀 직관적이지 않은 지금의 제목으로 결정했습니다. 이 글은 2024년 늦여름 현재 제가 세계를 살아가며 한 사람 역할을 아슬아슬하게 해낼 수 있도록 도움을 주는 여러 디지털 세계와 연결되는 API, 즉 소프트웨어와 서비스를 소개하는 내용입니다.
이메일: 구글 워크스페이스 웹 인터페이스
사실 현대에 가까워질수록 이메일의 중요성이 점차 줄어든다고 느낍니다. 여전히 온라인에서 저와 연락할 수 있는 가장 간단하고 또 가장 고전적인 방법이기는 하지만 개인 수준의 연락은 주로 여러 메신저들이 담당하고 업무 수준의 연락 대부분은 업무용 메신저가 담당하고 있어 이메일은 주로 이런 방법으로 연락이 어려운 한정된 범위 안에서만 어쩌다 한번 사용하는 수준으로 그 지위가 격하 되었습니다. 심지어 현대에는 보안 상의 이유로 여러 서비스에 가입할 때 아이클라우드에서 제공하는 ‘나의 이메일 가리기’를 사용해 생성한 이메일 주소를 사용하고 있어 더더욱 이메일의 사용 범위가 점점 더 줄어드는 중입니다. 이런 상황에서 핵심으로 사용하는 이메일 클라이언트는 웹 브라우저 기반의 구글 워크스페이스 메일인데 처음에는 지메일로 시작했다가 구글 워크스페이스가 생길 때 이 서비스의 무료 요금제를 통해 도메인 메일을 사용하기 시작했습니다. [email protected]
같은 제 도메인에 기반한 이메일 주소는 구글 워크스페이스 덕분에 사용할 수 있습니다. 최근 구글 워크스페이스에 무료 요금제가 완전히 사라졌지만 그 이전 오랜 세월에 걸쳐 사용해 온 사람들은 개인적 사용이라고 선언할 경우 계속해서 무료로 사용할 수 있는 상태입니다. 애플 기계들을 사용하며 아이클라우드에 요금을 지불하고 있어 원한다면 아이클라우드 기반으로도 도메인 메일을 사용할 수 있지만 굳이 그럴 필요가 없어 오래된 설정을 그대로 사용하고 있습니다.
이메일이 생활에 그리 중요하지 않기 때문에 이메일이 도착할 때 최대한 빨리 알림을 받을 필요가 없습니다. 애플 기계들에서는 기본 이메일 클라이언트를 사용하는데 기초적인 기능들이 그럭저럭 잘 정리된 모양으로 동작하는 것 자체에 불만이 있지는 않지만 그럴 필요가 없으면서도 이메일의 최신 상태가 빠릿하게 반영되지 않는 것은 썩 마음에 들지 않습니다. 때문에 웹 브라우저로 구글 워크스페이스 메일 인터페이스를 직접 사용하는 쪽을 더 선호합니다. 최소한 이 쪽은 메일이 도착할 때 서버로부터 메일을 가져오기 위한 딜레이가 거의 없고 웹 인터페이스와 서버와 비동기 통신을 하는 그 짧은 순간 조차 기다리기 싫다면 그냥 웹 인터페이스 전체를 새로고침 해서 새 메일이 표시되도록 만들 수도 있습니다. 사실 페이지가 새로고침 되는 시간을 생각하면 새로고침을 안 하는 쪽이 오히려 더 빨리 새 메일이 화면에 표시되도록 만들기에 더 적합할 것 같지만 마치 현대적인 자동변속기의 동작을 아직도 완전히 신뢰하지 못해 수동으로 변속하려는 시도를 하는 낡아 빠진 운전자처럼 굳이 그 순간에 개입해 메일을 가져오는데 개입하려는 의도를 받아 주는 환경이라는 점에서 애플 환경의 기본 메일 앱들에 비해 더 마음에 듭니다.
생각: 컨플루언스 프리미엄
‘생각’이라고 하니 뭔가 이상할 수도 있는데 글을 읽으시는 분들께 좀 더 익숙한 표현으로 바꾸면 ‘메모’라고 표현하는 쪽이 더 적합할 것 같습니다. 하지만 제 기준에서 제가 키보드를 타이핑 하며 텍스트를 만드는 행동은 단순히 기억을 보조하는 메모 차원을 넘어 신체적인 한계에도 불구하고 생각을 계속해 나갈 수 있도록 해 주는 생각, 또는 사고의 과정 그 자체를 의미하는 수준의 훨씬 더 큰 의미가 있습니다. 생각의 멱살에서 처음으로 제가 제 신체적 특징에도 불구하고 다른 머릿속으로 생각을 지속할 수 있는 멀쩡한 사람과 비슷한 수준으로 생각하고 그에 따라 세계를 살아갈 수 있는지 설명한 적 있는데 이런 상황에서 저에게 메모 도구는 단순한 기록을 넘어 생각을 지속할 수 있게 해 주고 제 두뇌의 사고와 기억 능력, 그리고 기억과 기억을 연결해 나가는 능력을 보통 사람들과 비슷한 수준으로 유지하게 해 주는 사실상의 보조 두뇌에 가까운 위상입니다. 제가 개인적으로 이런 제 신체적 한계에 대응하는 몇몇 요령을 ADHD 태그에 기록해 놓았으니 그 쪽을 참고해 보시면 어쩌면 저와 비슷한 분들은 공감하거나 도움이 되실 수도 있습니다.
자. 그래서 제가 기억과 사고를 지탱하기 위한 기록에 사용하는 핵심 도구는 컨플루언스 위키입니다. 주로 규모가 큰 기업을 대상으로 하는 정보시스템의 일종으로 알려져 있지만 근본적으로 위키위키 모양으로 정보를 관리하고 회사 단위의 규모가 큰 환경에서도 아주 멀쩡하게 동작할 뿐 아니라 계층 구조나 권한 설정과 같이 전통적인 위키위키의 관점과는 상당히 다른 요구사항 역시 원활하게 제공하는 도구입니다. 아주 빨리 메모해야 하는 상황일 때 윈도우에서는 notepad.exe
, 애플 환경에서는 Note
앱을 사용하지만 그런 소수의 상황을 제외한 나머지 모든 기록은 컨플루언스 위키를 통하고 있으며 다른 수단으로 메모한 내용 역시 최대한 빨리 컨플루언스로 옮겨 관리하고 있습니다. 컨플루언스 위키를 개인이 사용하려면 한 달에 만 얼마를 지불해야 하는데 일단 이 돈을 내고 나면 스토리지 사용량에 제한이 없어져 거대한 게임 스크린샷이나 영상 따위를 마음 편하게 기록에 마구 포함할 수 있어 스토리지를 별도로 관리해야 하는 걱정을 근본적으로 지워 버리고 저는 오직 기록 그 자체에만 집중할 수 있습니다.
제가 사용하는 컨플루언스 클라우드 제품은 SLA를 제공하기는 하지만 한 달에 한 번 정도는 자잘한 장애를 일으키곤 합니다. 가령 갑자기 검색이 느려진다든지 글 편집이 안 된다든지 화이트보드 기능에 접근할 수 없다든지 하는 식으로 전체 컨플루언스를 구성하는 여러 단위 기능들이 조금씩 고장나곤 하는데 완전관리되는 서비스의 특성 상 제가 이 상황에 개입할 방법은 없습니다. 그저 전 세계에 흩어져 있을 아틀라시안 개발자들이 빨리 문제를 해결해 주기를 기다릴 뿐입니다.
할 일 관리: 지라 소프트웨어
오래 전 Remember the Milk
나 Pocket Informent
같은 할 일 관리 도구들이 있던 시대부터 제 요구사항을 수용할 만한 할 일 관리 도구를 찾아 다녔는데 어느 것 하나 제 관점에서 멀쩡한 것이 없었습니다. 어떤 도구는 너무 가볍게 만들어진 나머지 그저 할 일 목록을 만들고 하나씩 지워 가며 각각의 할 일에 날짜를 부여할 수 있는 것 말고는 아무 기능도 없는 경우도 있었고 또 어떤 앱은 애플 환경에서 너무나 아름답게 동작했지만 애플 환경 바깥에서는 아무 것도 할 수 없어 좌절한 적도 있습니다. 심지어 그 앱은 아이폰, 아이패드, 맥 버전을 제각기 판매했는데 이 환경을 떠나는 순간 꽤 큰 지출에도 불구하고 아무것도 할 수 없다는 사실을 깨달았을 때 이 앱이 아무리 아름답게 동작하더라도 이 앱을 통해 장기적으로 할 일을 관리할 수 없으리라는 현실을 깨닫습니다. 윈도우에서 동작할 뿐 아니라 웹을 통해 사용할 수 있어 환경을 거의 가리지 않는 마이크로소프트 투두 앱을 사용해보기도 했지만 여러 할 일 사이에 관계를 부여하고 태그를 달고 이런 부가 정보 단위로 검색해 전체적인 진행을 살펴보고 또 할 일 사이에 맥락을 부여하고 싶은 제 요구사항을 만족할 수 없었습니다. 그나마 개인용으로 사용할 만한 도구 중에는 트렐로가 그나마 괜찮을 수 있겠다고 생각했는데 이 역시 여러 할 일 사이에 관계를 부여해 맥락을 파악하고 전체적인 진행 상황을 파악하고 싶은 용도에는 개인적인 수준에서조차 부족하다는 사실을 깨달았습니다.
문득 제가 할 일 관리 앱 또는 서비스에 기대하는 모든 요구사항은 결국 회사에서 사용하던 지라의 동작에 기반하고 있다는 생각을 문득 하기 시작합니다. 프로젝트 단위로 할 일을 빠르게 생성할 수 있고 각각의 할 일에는 마감 날짜, 할 일의 구체적인 내용을 입력할 수 있고 여러 할 일 사이에 관계를 명시적으로 입력할 수 있을 뿐 아니라 이 관계에 따라 여러 가지 할 일에 걸친 더 큰 맥락을 살펴볼 수도 있습니다. 또한 컨플루언스 클라우드에서는 이런 지라 태스크 사이에 명시적인 관계를 시각적으로 표현하고 이 과정에서 새로운 연결 관계를 시각적으로 정의하면 이를 실제 태스크에 반영하는 화이트보드 기능을 제공해 할 일 사이의 관계를 시각화 해 그 전까지는 발견할 수 없었던 할 일 사이의 관계와 전체적인 맥락 안에서 각각의 할 일이 가지는 의미를 더 잘 발견할 수 있게 해 줍니다. 컨플루언스에 비해 지라는 유료로 사용하려고 할 경우 같은 수준의 컨플루언스 제품에 비해 거의 두 배 가까운 이용 요금을 지불해야 하지만 이들의 요금제는 파일 스토리지 제공에 초점을 맞추고 있기 때문에 첨부하고 싶은 파일을 이미 제한 없는 스토리지를 제공하는 컨플루언스를 통해 보관한다면 지라에는 파일을 올릴 필요가 없어져 지라를 무료로 사용할 수 있습니다. 현대에 가까워질 수록 지라 역시 이 서비스를 개인적인 수준에서 사용하는 사람들이 늘고 있다는 사실을 눈치 챈 아틀라시안이 개인들이 사용하는데 적당한 프로젝트 템플릿을 제공해 거창한 프로젝트에서나 사용할 것 같은 지라를 트렐로와 비슷한 인터페이스로 아주 쉽게 시작할 수 있는 방법을 제공하고 있습니다.
개인 할 일 관리에 지라를 사용할 때 강력한 장점 두 가지가 있습니다. 먼저 개인 수준에서 지라에 대단히 익숙해지면서 어지간히 규모가 있는 프로젝트에 거의 표준으로 사용되는 지라를 회사에서만 지라를 사용하는 여느 사람들에 비해 훨씬 더 잘 이해하고 훨씬 더 잘 사용할 수 있게 된다는 점입니다. 지라에는 사실 온갖 자잘한 기능들이 있고 이들은 전체 프로젝트에서 제가 지금 담당하고 있는 일을 파악하고 이 일을 둘러싼 맥락을 파악하는데 도움을 주지만 회사에서 그저 저에게 할당된 태스크를 처리하는데만 집중하다 보면 지라에 여러 가지 다양한 기능을 통해 프로젝트가 처한 상황을 정보화하고 이를 발견할 수 있게 만들어 준다는 사실을 잘 느끼지 못할 수 있습니다. 하지만 개인 수준에서 지라의 온갖 기능을 살펴보며 여러 가지 기능을 이해하고 익숙하게 다룰 수 있게 되면 회사에서 똑같은 지라를 사용할 때 훨씬 효율적인 접근을 할 수 있습니다.
다른 한 가지 장점은 인디비주얼 컨트리뷰터 입장에서 지라 프로젝트를 구성하고 워크플로우를 설계할 일을 겪을 일이 별로 없을 텐데 이를 개인 수준에서 해볼 수 있다는 점입니다. 종종 사람들은 지라가 정확히 어떤 도구인지 잘 이해하지 못하고 훨씬 단순한 다른 할 일 관리 도구에 비해 나은 점이 없다고 주장하기도 합니다. 그런데 지라의 근본적인 힘은 프로젝트 별, 태스크 타입 별, 사용자 별로 정의할 수 있는 워크플로우와 이에 따른 자동화에 있습니다. 여러 사람이 순서대로 일해야 하는 파이프라인에 포함되어 일할 때 내 이전 사람이 자신의 업무를 마치면 그 다음 업무가 저에게 전달 되어야 하지만 지라를 사용할 뿐 지라라는 서비스의 목적과 기능을 제대로 알지 못하는 사람들이 관리하는 지라 프로젝트는 이 과정에 인간이 개입해 다음 작업자를 지정하고 그 사람이 집중할 태스크를 생성하는 등 지독하게 비효율적이고 노동집약적인 방법으로 관리하곤 합니다. 하지만 지라의 근본적인 목표는 파이프라인 모양으로 정의할 수 있는 목표를 달성하는데 필요한 워크플로우를 정의해 비슷한 일을 처리할 때 그저 워크플로우를 실행하고 이 워크플로우에 따라 태스크가 동작하게 놔두면 알아서 다음 사람에게 일이 전달되고 각 시점에 필요한 사람들에게 필요한 태스크가 전달되어 결국 빌드에 알아서 포함되도록 만들 수 있습니다. 만약 프로젝트 매니지먼트를 담당하지 않는다면 이런 과정을 직접 구축해볼 기회가 거의 없을 겁니다. 하지만 지라를 개인 수준에서 사용한다면 마음껏 워크플로우를 구축해 보고 이를 수정해 가는 과정에서 회사에서 사용하는 지라라는 도구가 실제로 어떤 의미를 가지고 동작하도록 만들어진 도구인지를 더 깊이 이해할 수 있으며 이는 그저 지라를 태스크 발급 도구로 생각하는 다른 사람들에 비해 커다란 강점으로 작용할 겁니다.
캘린더: 컨플루언스 팀 캘린더
지메일을 사용하던 시대부터 캘린더 서비스는 당연히 구글 캘린더를 사용해 왔습니다. 가족과 일정을 공유하고 친구들과 술 약속을 잡을 때도 구글 캘린더는 거의 완벽하게 동작합니다. 또 회사 일정을 관리할 때도 비록 회사가 마이크로소프트 익스체인지 기반의 일정을 사용하더라도 보안 부서가 저를 가로막지 않는 이상 구글 캘린더가 익스체인지 서버에 접근해 일정을 가져오도록 해 개인 일정과 회사 일정을 한 캘린더를 통해 관리해 왔습니다. 캘린더는 메일보다도 더 실시간성이 낮아도 상관 없었는데 한동안은 할 일 관리와 캘린더를 한 가지 앱으로 관리하도록 해 주는 여러 앱들을 전전했지만 근본적으로 이들을 한 화면에서 확인하고 보다 실시간에 가깝게 대응할 이유가 별로 없다는 쪽으로 생각이 바뀝니다. 이전 같았으면 할 일, 메일, 캘린더를 모두 한 자리에서 관리할 수 있는 아웃룩을 핵심으로 사용했겠지만 어느 순간 더 이상 그럴 필요가 없음을 깨달았고 애플 환경에서는 기본 캘린더 앱, 윈도우에서는 구글 캘린더 웹 인터페이스를 주로 사용합니다.
그러다가 컨플루언스 위키를 적극적으로 사용하기 시작하면서 컨플루언스 프리미엄 서브스크립션에 함께 제공되는 컨플루언스 팀 캘린더를 사용하기 시작했는데 사실 이는 컨플루언스 위키를 여러 사람이 사용하는 환경에서 의미 있는 기능입니다. 하지만 컨플루언스를 두뇌의 보조 기능 수준으로 활용하기 시작하고 또 캘린더 서비스가 실시간으로 반응해야 할 이유가 별로 없음을 깨달은 다음부터는 컨플루언스 팀 캘린더에 나머지 캘린더를 연동하고 저는 컨플루언스 웹 페이지를 통해 일정을 처리하는 쪽으로 굳어졌습니다.
파일 저장소: 퍼포스
오래 전부터 하드웨어 실패로 파일을 날리는 일을 겪는 것이 너무나 이상하다고 생각해 왔는데 이 생각을 뒷받침하는 가장 큰 믿을 구석이 바로 오프사이트 백업을 확보하고 있다는 것입니다. 수많은 에셋을 생산해 이를 기반으로 생계를 꾸려 나가는 많은 분들이 그저 이 에셋들을 하드디스크 하나에 저장했다가 어느 날 하드디스크가 실패하면 그 모든 에셋을 잃으며 다시는 같은 회사의 하드디스크를 구입하지 않겠다는 말씀을 하시는 모습을 볼 때마다 과연 미래에 저 분이 구입할 수 있는 하드디스크 회사가 세계에 남아 있기는 할 지 의심스러웠습니다. 우리들이 디지털 세계에 남기는 모든 데이터는 기계적으로 실패할 가능성이 너무 높은 스토리지 기계에 의지해 저장하고 있으며 이들은 어느 순간 하드웨어 실패, 개인의 실수, 천재지변 등 온갖 이유로 한 순간에 영원히 사라져 버릴 수 있습니다. 우리들이 만드는 모든 데이터는 가치 있으며 ‘그냥 사라져도 상관 없는’ 데이터란 없습니다. 우리들이 생성해 낸 그 어떤 데이터도 지금 당장은 의미 없을지 모르지만 그 데이터가 일정 수준 이상 쌓이면 그 순간부터 갑자기 커다란 의미를 가지게 될 수도 있는데 그저 없어져도 될 파일이라는 식으로 접근하다 보면 그런 커다란 의미에 영원히 도달하지 못할 겁니다.
오랜 세월에 걸쳐 드랍박스를 사용해 왔고 마이크로소프트가 오피스 구독에 원드라이브를 포함한 다음부터는 또 꽤 긴 기간에 걸쳐 원드라이브를 사용해 왔습니다. 드랍박스가 처음 벤처캐피탈로부터 투자를 받기 위한 피칭에서 여러 기계에 걸친 파일 동기화 같은 뻔한 기능조차 똑바로 구현해 내는 플레이어가 시장에 존재하지 않는다는 말을 한 대로 원드라이브 이전 마이크로소프트 라이브 메시 같은 어처구니 없는 클라우드 스토리지 및 동기화 서비스는 그 간단한 수많은 파일의 동기화를 똑바로 해내지 못해 영원히 동기화가 끝나지 않거나 잘못된 동기화로 파일을 날리기 일쑤였습니다. 한동안은 사실상 원드라이브 같은 실시간 파일 동기화 도구가 현대적인 방식의 백업이라고 생각한 적도 있는데 근본적으로 이들은 파일을 동기화 할 뿐 파일을 보호하지 않아 백업으로 고려하기에는 위험합니다. 또 시간이 지남에 따라 저는 단순히 파일을 동기화하는 서비스를 넘어 동기화 기록을 남기고 싶었는데 이런 요구사항을 만족하는 동기화 서비스는 없었습니다. 파일 동기화에 대한 제 요구사항은 파일을 여러 기계에 걸쳐 동기화하고 파일의 각 리비전에 메모를 남길 수 있으며 특정 기계에서 일어난 변경사항을 다른 기계 또는 다른 브랜치에는 적용하거나 적용하지 않거나를 선택할 수 있어야 하며 아무리 오래 전에 삭제된 파일이나 아무리 오래 전에 일어난 변경사항이라도 ‘영원히’ 보관하는 것입니다. 그리고 이 요구사항은 앞서 할 일 관리 도구를 선택할 때와 마찬가지로 회사에서 사용하던 도구로부터 비롯된 것이라는 사실을 깨달았습니다.
개인용 퍼포스 사용기 및 영업에서 소개한 대로 퍼포스 역시 주로 기업에서 사용하는 형상관리 도구인데 현대적인 여러 개발팀에서는 이런 오래되고 또 거추장스러운 형상관리 도구 대신 엔지니어들의 현대적인 형상관리 요구사항을 거의 다 충족하는 깃을 사용한다는 사실을 잘 알고 있습니다. 그런데 인터넷에 주로 보이는 웹 기반의 프론트엔드 엔지니어나 백엔드 엔지니어들과 달리 제가 일하는 필드에서는 바이너리 모양으로 된 에셋을 엄청나게 많이 다뤄야 합니다. 저는 비디오 게임을 개발하는 소프트웨어 개발 업계에서 일하는데 이 곳에서는 엔지니어들이 작성한 코드 뿐 아니라 나머지 비 엔지니어 부서에서 생산한 온갖 에셋 파일들이 형상관리도구를 통해 관리되어야만 합니다. 아티스트들이 생산한 모델링 에셋과 애니메이션 에셋은 아무렇지도 않게 수 백 메가에 달하고 게임디자이너들이 문서를 생산하기 위해 작성한 와이어프레임은 여러 게임의 스크린샷을 포함하다 보면 이 역시 순식간에 수 백 메가에 달하기 쉽습니다. 또 경영진을 대상으로 한 아름다운 보고용 프리젠테이션 파일은 동작하는 게임 영상을 포함하다 보면 순식간에 수 기가에 달하는데 현대에 가장 널리 사용되는 것처럼 보이는 형상관리도구인 깃으로는 이런 요구사항을 전혀 처리할 수 없습니다. 이전에 저는 깃으로부터 저주받았습니다를 포함한 여러 글에서 언리얼 개발과 깃은 전혀 어울리는 것 같지 않다는 이야기를 해 왔는데 이전에 잘못된 조직에서 언리얼 개발환경을 깃 기반으로 지탱해 보려다가 경험한 파멸적인 상황들은 깃이 어떤 필드에는 적합하지만 또 다른 필드에는 전혀 적합하지 않다는 사실을 깨닫게 해 줍니다.
파일 저장소 이야기를 하다가 좀 멀리 돌아왔는데 제가 파일 저장소에 가진 여러 요구사항들은 결국 회사에서 사용하던 퍼포스의 동작으로부터 비롯된 거라는 사실을 깨달았고 그냥 개인적으로도 파일을 관리하는데 퍼포스를 쓰면 되겠다는 간단한 결론에 어렵지 않게 도달합니다. 깃을 완전히 포기하고 본격적으로 퍼포스 환경을 구축한 것은 2024년 2월 경으로 이후 파일 보유, 버전 관리, 브랜치, 여러 기계에 동기화, 백업 등 그 모든 요구사항을 한 번에 해결했습니다. 일단 퍼포스는 파일을 한 번 서브밋 - 깃에서 커밋이라고 부르는 동작 - 하면 이 파일은 서버 상에서 영원히 사라지지 않습니다. 관리자 명령으로 파일을 실제로 삭제할 방법이 있기는 하지만 스토리지가 충분한 이상 굳이 파일을 실제로 삭제할 이유가 없습니다. 이는 퍼포스 클라이언트 상에서 파일을 삭제하더라도 이 파일은 서버에 영원히 남아 있으며 히스토리를 통해 파일에 영원히 접근할 수 있다는 의미이기도 합니다. 퍼포스를 사용하는 이상 어떤 실수를 하더라도 반드시 실수 이전 상태로 돌아갈 수 있으며 이는 파일 뿐 아니라 디렉토리 구조에도 마찬가지라 만약 어떤 이유로 로컬 기계에 관리하던 디렉토리 구조를 변경했다가 이 구조가 마음에 들지 않으면 다시 이전 구조로 돌아갈 수도 있습니다. 이런 특징은 여러 가지 디렉토리를 통한 파일 관리 방식을 실험해볼 수 있게 해 주어 파일 관리에 대한 이해를 안전하게 더 깊게 만들어 줍니다.
오프사이트 백업: 크래시플랜
하지만 퍼포스는 형상관리도구로써 파일을 관리해 주지만 근본적으로 백업이라고 간주할 수 없습니다. 깃이 모든 리비전을 로컬 데이터베이스에 기록해 아무 기계나 한 대만 살아 남으면 그 기계로부터 모든 기록을 복원해낼 수 있는 것과 달리 퍼포스는 서버 기반으로 동작하는 형상관리도구이기 때문에 각각의 클라이언트는 클라이언트가 마지막으로 업데이트 한 최신 버전이 남아 있을 뿐 서버가 사라지면 그 동안의 모든 히스토리를 잃게 됩니다. 이 시나리오에서 다행인 점은 퍼포스가 중앙화된 모양으로 동작하기 때문에 그 중앙에 있는 서버 한 대를 잘 백업하면 다른 모든 기계의 백업을 고려할 필요가 없다는 점입니다. 일단 저는 퍼포스를 통해 한 번 서브밋 된 파일을 영원히 보관하면서도 감당할 수 있는 수준으로 비용을 통제하기 위해 원래 AWS 라이트세일에 있던 퍼포스 서버를 장기적으로 비용을 낮추기 위한 온프레미스 전환해 집 안으로 가져왔고 여기에 커다란 외장 하드디스크를 붙여 퍼포스 스토리지로 사용하기 시작합니다. 하지만 하드디스크는 안전한 보관 방법이 아니며 이를 보완하는 레이드 역시 백업으로 간주할 수 없기에 아무리 많은 하드디스크와 아무리 안전한 레이드 레벨을 사용하더라도 이는 백업이 없는 상태와 마찬가지입니다. 그래서 크래시플랜이라는 별도의 오프사이트 백업 서비스를 통해 퍼포스 서버 전체를 매 15분마다 백업하고 있습니다.
크래시플랜을 선택한 가장 큰 이유는 이전까지 사용하던 백블레이즈 B2는 용량의 증가에 따라 비용이 증가하기에 개인 수준의 이용에 한계가 있었고 백블레이즈 백업은 서버를 백업하기에 현재 사용 중인 파일을 백업하지 않아 적절하지 않았습니다. 반면 크래시플랜은 온프레미스 서버로 사용하는 맥에서 안정적으로 동작하고 사용 중인 파일도 백업 대상으로 삼을 뿐 아니라 고정된 요금을 지불하면 스토리지에 제한 없이 사용할 수 있습니다. 물론 그들이 완전히 무한한 스토리지를 제공할 가능성은 없지만 적어도 1테라마다 매달 6달러씩 추가되는 요금에 비해 수 십 테라를 백업하더라도 같은 비용을 유지할 수 있기에 개인이 사용하기에 굉장히 적당한 방법이라고 생각합니다. 또한 저는 파일 관리에 퍼포스를 사용하고 퍼포스는 일단 서브밋 된 어떤 파일도 임의로 삭제하지 않기에 백업 서비스마다 조금씩 다른 버전 리텐션 정책이나 삭제된 파일의 리텐션 정책으로부터 완전히 자유롭습니다.
만약 제가 퍼포스 없이 파일을 삭제했다면 오프사이트 백업 서비스에 따라 이후 30일 동안만 유지되다가 완전히 삭제될 수 있지만 퍼포스에 파일을 올린 다음 퍼포스를 통해 파일을 삭제하더라도 이 파일은 여전히 서버에 남아 있고 히스토리를 통해 언제든지 복원할 수 있는 상태이기에 오프사이트 백업 서비스 관점에서는 그 어떤 파일도 삭제되지 않고 또 그 어떤 파일도 버전이 바뀌지 않은 채 계속해서 전체 파일 수가 증가하기만 하는 이상한 고객처럼 보일 겁니다. 어쨌든 크래시플랜을 통해 퍼포스로 관리하는 여러 기계에 걸친 스토리지를 고정 비용으로 안전하게 백업하고 있습니다.
사진: 아이클라우드, 구글포토, 퍼포스(뭐??!)
크게 세 가지 방법을 사용하고 있습니다. 어떤 목적이 있어서 이렇게 되었다기 보다는 하다 보니 이렇게 되고 말았는데 사용하는 서비스가 여럿이지만 각각이 서로의 워크플로우를 침범하지는 않습니다. 먼저 저는 아이폰 사용자여서 아이클라우드와 애플 사진 앱을 통해 사진을 보관하고 또 살펴보고 있습니다. 애플 사진 앱은 한때 맥에서 사진을 관리하는데 사용되던 애퍼처 앱의 하위 호환 같은 느낌이지만 시간이 흐름에 따라 보다 현대적으로 사진을 관리할 수 있게 변해 오고 있습니다. 한때 별도의 카메라를 사용해 사진을 만들던 시대도 있었지만 이제 사진을 만드는 거의 유일한 기계는 아이폰 뿐이어서 그냥 아이폰에서 잘 동작하는 사진 관리 워크플로우에 손을 댈 필요는 없다고 생각합니다. 다만 검색, 분류 같은 몇몇 기능은 애플에 비해 구글이 압도적으로 잘 하기 때문에 구글 포토에 원본을 저장하지 않는 모드를 사용해 비용 없이 구글 포토의 사진 검색과 분류 기능을 함께 사용하고 있습니다. 애플 사진 앱의 검색 기능은 기복이 있어 되는 것처럼 보이다가도 또 결정적인 순간에는 잘 동작하지 않거나 분명 지난 검색 시나리오는 동작했는데 이번 시나리오는 동작하지 않는 등 문제가 많고 애플이 이를 단시간 안에 개선할 수 있으리라 생각하지 않습니다. 반면 구글 포토는 이 모든 기능들이 안정적으로 동작하기에 구글 포토를 사용하지 않을 수가 없었습니다. 다행히 지금까지 제 규모에서 구글 포토는 구글 워크스페이스 계정에 묶여 무료로 사용할 수 있는 범위에 있습니다.
세 가지 방법 중 애플 사진 앱, 그리고 구글 포토를 설명했는데 나머지 하나는 기승전 돌고 돌아 퍼포스입니다. 이미 사진은 아이클라우드에 원본과 제가 수정한 각각의 버전이 메타데이터에 기반해 저장되어 있으므로 별도로 파일을 저장할 필요는 전혀 없습니다. 또한 분류, 검색, 중복 제거는 구글 포토에 의해 일어나므로 더 이상 사진에 대해 아무 작업도 할 필요가 없습니다. 현재 제가 아이클라우드에 많은 기능을 의존하고 있는 것이 사실이기는 하지만 지난 오랜 세월 동안 여러 서비스가 나타났다 사라지기를 반복하고 또 애플이 지난 몇 년 사이에 시장의 최신 기술 트렌드를 잘 따라가지 못하는 모습으로 미루어 언제까지나 아이클라우드에 모든 것을 의존할 수는 없다고 생각합니다. 마치 오프사이트 백업 서비스 별로 다른 리텐션 정책을 무시하기 위해 퍼포스를 사용하는 것처럼 사진 역시 언젠가 일어날 수 있는 큰 규모의 서비스 변경에 대비해야 한다고 생각합니다. 그래서 구글 포토에 일종의 사진 인덱스가 보관되어 있고 아이클라우드에 원본 사진이 보관되어 있지만 퍼포스에 매 달마다 사진 파일을 서브밋 해 두고 있습니다. 이 파일들은 크래시플랜을 통해 아이클라우드가 의존하는 AWS 데이터센터 뿐 아니라 크래시플랜이 자체적으로 운용하는 미국 어딘가의 데이터센터에 한번 더 복제된 상태로 유지됩니다.
웹 브라우저: 마이크로소프트 엣지
앞서 이메일 클라이언트로 구글 워크스페이스의 웹 인터페이스를 사용한다고 말했을 때, 그리고 제 핵심 기록 도구와 핵심 할 일 관리 도구로 각각 컨플루언스와 지라를 말했을 때 예상하셨겠지만 제 작업의 아주 많은 부분은 웹 브라우저를 통해 이루어집니다. 한때 세계에는 여러 가지 브라우저가 있었던 것 같지만 현대에는 크로미움에 기반한 브라우저 소수와 그렇지 않은 브라우저 소수 정도로 선택이 제한되어 있고 이 상황에서 할 수 있는 선택의 여지는 사실상 없습니다. 윈도우 기계에서는 마이크로소프트 엣지 브라우저를, 애플 기계에서는 마이크로소프트 엣지 브라우저와 사파리 브라우저를 함께 사용합니다. 같은 크로미움 기반인 구글 크롬을 사용하지 않는 이유는 윈도우 환경에서 동작하는 마이크로소프트 엣지 브라우저는 ‘O&O ShutUp10++’라는 앱을 사용해 그 ㅂ신같은 동작을 일부 통제할 수 있기 때문입니다. 한때 운영체제와 웹 브라우저는 이들이 다른 작업을 수행하기 위한 기반으로써 동작한다는 사실을 이해하고 다른 작업이 원활하게 동작할 수 있도록 주로 뒤에서 돌아가고 전면에 나서지 않는 모양으로 동작해 왔습니다. 하지만 어느 순간부터 이들이 자신의 역할을 망각하고 전면에 나서기 시작하면서 그 위에서 동작하는 여러 작업에 아주 큰 방해를 받기 시작합니다. 윈도우 운영체제는 아무때나 알림을 보이기 시작하고 웹 브라우저는 아주 조금이라도 잘못된 장소를 클릭하면 그 자리에 우연찮게 존재하던 온갖 원하지 않는 새로운 기능을 실행하는 버튼을 클릭하게 만들어 원하지 않는 화면으로 제 주의력을 분산시키곤 했습니다.
이는 마이크로소프트 엣지 브라우저 뿐 아니라 구글 크롬 브라우저도 마찬가지였는데 그나마 마이크로소프트 엣지 브라우저는 앞서 소개한 ‘O&O ShutUp10++’를 통해 말 그대로 좀 닥치게 만들 수 있습니다. 쉴 새 없이 마이크로소프트 서버로 제 모든 동작을 전송하는 윈도우 텔레메트리 서비스를 좀 닥치게 만들고 쉴 새 없이 튀어나와 저를 당혹스럽게 만드는 코파일럿 버튼을 좀 닥치게 만들 수 있을 뿐 아니라 조그만 오타에도 저를 예상하지 않은 웹사이트로 보내곤 하는 지역 기반 추천, 검색어 기반 추천 같은 제 기준에서는 제 주의력을 분산 시킬 뿐 어떤 유의미한 생산성의 향상에도 기여하지 못하는 쓰레기 기능들을 좀 닥치게 만들 수 있습니다. 안타깝게도 구글 크롬은 이 소프트웨어의 커버리지가 아니어서 좀 닥치게 만들 수가 없었고 윈도우에 기본으로 탑재된 브라우자가 적어도 구글 크롬과 아주 비슷한 모양으로 동작하면서 굳이 구글 크롬을 사용할 필요가 없으면서도 서드파티 소프트웨어를 통해 이 모든 쓰레기 같은 동작들을 좀 닥치게 만들 수 있다는 점에서 마이크로소프트 엣지 브라우저를 사용하고 있습니다. 맥에서는 한참 기능이 부족하기는 하지만 사파리 브라우저를 사용하는데 기능이 부족한 만큼 가볍게 동작하기에 나쁘지 않은 선택입니다. 하지만 몇몇 웹사이트가 온전히 동작하지 않아 이럴 때 사용할 목적으로 마이크로소프트 엣지의 맥 버전을 함께 사용할 수밖에 없었습니다.
북마크 및 읽기 목록: 컨플루언스 및 퍼포스(뭐?!)
일단 저는 개인적으로 웹 브라우저의 북마크 기능을 거의; 사용하지 않는데 어지간한 웹사이트는 모두 주소를 직접 타이핑 하고 있다는 이유 하나와 어지간한 기록은 이미 컨플루언스에 남아 있다는 이유가 있습니다. 언제부터 이렇게 되었는지는 잘 기억나지 않지만 물리적인 키보드를 사용할 수 있는 환경에서 제가 방문하는 웹사이트는 아주 많지 않아 이들의 주소를 기억하고 항상 북마크 없이 각각의 웹사이트로 이동할 때 웹사이트의 주소를 입력하는 행동이 너무나 자연스럽습니다. 또 기억할 수 없는 주소, 가령 특정 유튜브 영상의 주소나 어떤 글의 긴 주소 같은 것들은 컨플루언스 위키에 이미 잘 정리되어 있기에 일단 머릿속에 있는 주소에 기반해 제 컨플루언스 웹사이트에 도착하고 나면 그 다음은 이미 거기 기록된 주소나 이미 거기 기록된 정보를 사용하기만 하면 되므로 북마크를 사용할 필요가 없습니다.
읽기 목록은 좀 황당해 보일 수 있다는 사실을 이해하지만 개인용 퍼포스 사용기 및 영업에 소개한 대로 주로 아이폰에서 페이지를 PDF 포멧으로 내보내면 이 파일이 퍼포스에 의해 한 디렉토리에 모이도록 만들어 놓았습니다. 문서를 읽은 다음에는 아카이브 디렉토리로 옮겨 두는데 만약 이 문서를 스크랩 할 필요가 있을 것 같으면 컨플루언스 위키를 사용하고 이 때 컨플루언스 위키가 제공하는 현대적인 LLM 기반의 기능 전체를 적용할 수 있게 됩니다. 키워드 검색, 요약, 자연어 질문 검색 등 온갖 방법으로 문서에 접근할 수 있어 굳이 다른 서비스를 사용할 이유를 잘 느끼지 못합니다. 또한 모바일 기계에서 페이지를 PDF 모양으로 스크랩 했다가 퍼포스를 통해 이 파일들에 접근해 직접 살펴보고 컨플루언스로 보내거나 퍼포스 아카이브로 보내는 곳곳에 수동 조작이 섞여 있는 워크플로우는 이 행동을 통해 제가 몇몇 기억할 필요가 있는 문서 내용을 기억할 수 있도록 도와주고 있어 좀 이상한 방법이라는 사실을 이해하지만 이런 좀 이상한 방법을 유지하고 있습니다.
문서 도구: 마이크로소프트 365, EmEditor
별로 특이할 것도 없이 전통적인 마이크로소프트 오피스 스위트를 사용하고 있습니다. 워드, 엑셀, 파워포인트로 시작되는 마이크로소프트 오피스 스위트는 이전이나 지금이나 딱히 이들을 대신할 수 있는 도구를 찾기도 어렵고 굳이 그럴 필요도 없다고 생각합니다. 물론 현대에는 워드, 파워포인트 정도는 다른 도구로 대체할 여지가 없지는 않습니다. 한국어 사용자 입장에서 한글 워드프로세서가 한글을 사용할 때 좀 더 나은 환경을 제공한다는 사실을 알고 있고 또 예쁘게 보여야 하는 문서를 만드는데는 워드보다 더 나은 환경을 제공하는 소프트웨어들이 있다는 사실 역시 알고 있습니다. 그런데 오피스 스위트를 구독하면 어차피 사용할 수 있는 워드프로세서가 있는데 굳이 다른 소프트웨어를 찾아야 할 필요는 적어 보입니다. 현대에는 거의 모든 문서를 컨플루언스 위키에 작성하고 있어 워드프로세서를 사용해 문서를 만들 일이 거의 일어나지 않기는 하지만 몇몇 상황에 제출용 문서를 만들 때는 컨플루언스에 작성한 문서 내용을 워드로 가져와 제출할 수 있는 예쁜 모양으로 만드는 정도로 활용하고 있습니다. 파워포인트 역시 함께 제공되는 이상 딱히 다른 소프트웨어를 찾을 필요가 적을 뿐 아니라 회사에서 보고 문서를 만들 때 거대한 게임 동작 영상을 포함해 파일 크기가 수 기가를 넘기는 상황에서도 매우 멀쩡하게 동작해 굳이 이런 상황에서 쉽게 얼어붙는 다른 도구를 찾을 필요가 없습니다.
또한 마이크로소프트 엑셀은 근본적으로 이를 대체할 수 있는 도구가 없습니다. 물론 엑셀도 만능은 아니어서 개인적으로 대규모 CSV 파일을 다룰 때는 EmEditor라는 거대한 CSV 파일을 너무나도 아름답게 잘 다루는 도구를 사용하고 또 이보다 더 복잡한 요구사항은 그냥 데이터를 MySQL 데이터베이스에 넣은 다음 SQL을 사용해 데이터를 다루고 있습니다. 그런데 어지간한 상황은 이 정도 시나리오까지 가지 않아도 되고 이런 요구사항 거의 모두를 엑셀을 통해 처리할 수 있습니다. 또한 엑셀은 시간이 흐르며 점점 더 인라인 함수 기능이 강력해지고 있는데 엑셀 개발팀 스스로가 깊은 고민에 빠진 것처럼 보일 때가 있습니다. 고객들의 좀 더 복잡한 요구사항에 대응하기 위해서는 전통적인 엑셀의 인라인 함수 기능이 흔한 고수준 프로그래밍 언어의 함수 개념에 가까워져야 한다는 사실을 이들도 이해하고 있는 것 같습니다. 최근 최신 엑셀에 추가된 몇몇 함수들로부터 이런 고민을 엿볼 수 있습니다. 하지만 여전히 엑셀에서 셀에 직접 입력하는 인라인 함수는 고수준 프로그래밍 언어라기 보다는 훨씬 더 단순한 전통적인 함수의 집합 모양을 유지하는 수준에서 엑셀 파일의 복잡도를 관리하는 편이 여러 시나리오에서 더 나은 작업 방식일 가능성이 높다고 생각합니다. 그리고 이런 배부른 고민은 여러 스프레드시트 얼터너티브 중 오직 엑셀에서만 할 수 있습니다.
음악: 유튜브 뮤직
한동안 애플뮤직을 사용했지만 애플뮤직을 사용해야만 할 이유를 스스로 설명할 수 없다는 사실을 깨닫고 유튜브 뮤직에 정착했습니다. 일단 제가 좋아하는 여러 곡들이 애플뮤직에 없을 때가 많았는데 유튜브로부터는 이들을 찾을 수 있었습니다. 이들이 합법적인 테두리에 있지 않을 가능성이 높다는 사실을 이해하지만 어쨌든 유튜브 및 유튜브 뮤직을 통해서는 그 곡들을 들을 수 있고 애플뮤직을 통해서는 들을 수 없다는 사실이 달라지지는 않습니다. 한동안 유튜브 뮤직은 이런 합법적인 테두리 바깥에 있을 가능성이 높은 음악들을 딱히 신경 쓰지 않다가 어느 순간 이들을 ‘커뮤니티 뮤직’으로 정의해 유튜브 뮤직 앱의 테두리 안으로 가져왔고 이를 통해 여전히 애플뮤직에서 찾을 수 없을 가능성이 높은 훨씬 더 많은 범위의 곡들을 들을 수 있습니다. 한때 음원의 음질에 꽤 민감하게 반응하던 적도 있지만 제가 오디오 엔지니어링을 하지 않는 이상 음질이 썩 좋지 않다고 알려진 유튜브 뮤직의 음원이라도 제 뇌가 좋지 않은 음원의 빈 공간들을 자동으로 채워 준다는 사실을 이해하기에 음질은 제 입장에서 그리 큰 고려 사항이 아니라는 사실을 인정하게 되었습니다.
유튜브 뮤직 서비스는 곡을 추천하는 기능이 있긴 하지만 거의 없는 것이나 다름 없는데 애플뮤직이 꽤 빠른 시점에 처음 들어보지만 꽤 나쁘지 않은 음악을 찾아주던 것에 비해 유튜브 뮤직은 이 자들이 과연 사용자들에게 음악을 추천할 의사가 있는지조차 의심스럽습니다. 그런데 앞서 설명한 대로 저는 주요 웹사이트로 이동하기 위해 주소를 직접 타이핑 하고 있고 제가 듣고 싶은 음악을 듣기 위해 직접 엘범 이름을 입력하는 종류의 사람이라는 사실을 깨달았고 이는 제가 제 스스로 원하지 않는 뭔가가 재생되는데 굉장히 민감하다는 사실로 연결됩니다. 가령 저는 전통적인 TV를 전혀 보지 않고 또 이런 TV가 켜져 있는 공간을 가능한 피하는데 이유는 제가 의도하지 않은 미디어가 제멋대로 저에게 전달되는 그 상황 자체가 마음에 들지 않기 때문입니다. 같은 이유로 계속해서 아무 영상을 재생할 수 있는 숏폼 컨텐츠 역시 거의 접근하지 않는데 이들의 속성 역시 공중파 TV와 비슷하게 제가 원하지 않는 컨텐츠를 아무 맥락 없이 재생하도록 동작하기 때문입니다. 숏폼 컨텐츠에 접근하더라도 제가 의도한 컨텐츠를 재생하는 시나리오는 아무 문제 없지만 그 다음에 이어지는 제가 의도하지 않은 컨텐츠가 재생되기를 결코 원하지 않습니다. 이런 관점에서 유튜브 뮤직 앱의 없는 것과 마찬가지인 음악 추천 기능은 제 관점에서 문제가 아니었습니다.
보안
패스워드는 원패스워드 앱을 사용
이들은 한때 로컬에 패스워드를 저장할 수 있도록 했지만 수 년 전부터 마치 아틀라시안이 그랬던 것처럼 온전히 클라우드 기반의 서비스로 변했습니다. 그에 따라 개인적으로 ‘브라우저 껍데기’라고 낮춰 부르던 일렉트론 기반 앱으로 변경되어 스크린샷을 찍으면 예뻐 보이지만 실제로 만져보면 원활하게 동작하지 않는 바보같은 앱으로 바뀌었습니다. 하지만 그럼에도 여전히 이들은 수없이 많은 서비스와 웹사이트에 사용하는 서로 다른 계정 이름과 서로 다른 패스워드, 서로 다른 원타임패스워드, 서로 다른 패스키를 안전하게 저장하고 서로 다른 기계에서 이 정보에 접근할 수 있게 해 줍니다. 원패스워드가 없었다면 어지간한 서비스마다 완전히 다른 계정 이름과 완전히 랜덤으로 생성된 패스워드를 사용할 생각 자체를 하지 않았을 겁니다. 이런 서비스들은 그저 최저임금을 받는 그저 그런 개발자들에 의해 아슬아슬하게 완성되어 굳이 그럴 필요 까지는 없는 섬세하지 못하게 선택된 필요보다 훨씬 강력한 클라우드 인프라 상에서 동작하고 있고 이들의 보안 문제는 너무 쉽게 발견되어 악용되지만 이런 문제는 결코 해결되지 않을 가능성이 높습니다. 때문에 계정과 패스워드, 여타 인증수단을 완전히 개별적으로 사용하면 어떤 서비스에 보안 사고가 일어났을 때 아무 조치를 취하지 않아도 보안 문제가 다른 영역으로 확산되지 않습니다.
개인 윈도우 기계의 보안을 위해 카스퍼스키 안티바이러스 앱을 사용
현대에 윈도우 디펜더가 그 역할을 충실히 해낸다고 알려져 있지만 때때로 좀 더 강한 보안 규칙이 적용되기를 원합니다. 가령 랜섬웨어가 명백히 허가 받지 않은 광범위한 파일에 접근해 이들을 변경하고 있음에도 이를 눈치 채지 못하거나 멀웨어가 명백히 허가 받지 않은 영역에 접근해 자신을 윈도우 서비스에 등록하고 아무렇지도 않게 행동하는 상황은 분명 기술적으로 탐지할 수 있는 영역입니다. 가장 이상적인 시나리오는 이미 알려진 멀웨어 목록에 기반해 멀웨어를 차단하는 윈도우 디펜더가 아주 빠른 업데이트 간격을 통해 동작하는 것이지만 아무리 윈도우 디펜더가 잘 동작한다 하더라도 인터넷에 연결되지 않는 환경에서는 기능 대부분이 무력화 되는 현실을 감안해 행동 기반의 보안 소프트웨어를 사용하지 않을 수 없다고 생각합니다. 또한 카스퍼스키 안티바이러스 앱은 브라우저 익스텐션 모양으로 상주하며 제가 접근하려는 웹사이트의 알려진 보안 문제를 미리 확인하고 브라우저의 기본 설정보다 더 강한 보안 규칙을 제안해 의도하지 않은 잘못된 웹사이트에 방문할 가능성을 현격히 줄여 줍니다.
VPN 서비스로 터널베어를 사용
여러 VPN 서비스들이 그들의 핵심 기능을 인터넷 상의 위치를 바꾸기 위한 것으로 소개하곤 하지만 근본적으로 VPN은 인터넷 인프라 상에 보이는 제 패킷을 VPN 패킷 모양으로 바꾸는 것이 핵심 기능이라고 생각합니다. 신뢰할 수 있는 네트워크에서는 굳이 패킷 모양을 VPN 패킷 모양으로 바꾸지 않더라도 현대적인 보안 환경에서는 별다른 문제가 일어나지 않지만 제가 구축하지 않은 신뢰할 수 없는 네트워크나 호시탐탐 제 모든 행동을 모니터링 하기 위해 혈안이 되어 있는 몇몇 적대적인 네트워크를 사용해야만 할 때는 제 패킷 모양을 VPN 패킷 모양으로 바꾸지 않을 수 없습니다. 터널베어는 아주 훌륭하거나 아주 편리한 것 같지는 않지만 적당한 시점마다 화이트페이퍼를 발간해 적당한 신뢰 수준을 유지하고 있고 가격이 낮은 편이어서 긴 기간에 걸쳐 결제해 놓고 편안하게 사용하기에 나쁘지 않습니다. 아마도 다른 VPN 앱에서도 지원하는 기능이겠지만 필요에 따라 모든 패킷을 VPN 모양으로 보내는 대신 일부 패킷만 VPN을 통하게 만들어 VPN을 차단하는 환경에서도 기본적인 프라이버시를 유지하게 해 주는 기능을 함께 제공하고 있어 앞서 언급한 적대적인 네트워크에서도 사용 가능합니다.
금전 관리: whooing.com
가계부 기록은 후잉이라는 서비스를 사용하고 있습니다. 얼마 전 후잉 가계부를 두 사람이 사용하기에도 소개한 적 있는 이 서비스는 꽤 오래된 가계부 서비스입니다. 직접 카드 회사나 은행과 연동되어 자동으로 가계부를 기록해 주는 서비스나 대형 포탈 사업자가 함께 서비스 하던 가계부 서비스도 있었지만 이들은 가계부 서비스 자체를 핵심 비즈니스로 삼지 않기에 각각이 짧지는 않은 기간에 걸쳐 서비스했지만 결국 사라졌습니다. 하지만 후잉은 그들보다는 더 단순하고 또 모든 기록을 수동으로 해야 하지만 가계부 서비스를 핵심 비즈니스로 삼고 있어 낮은 비용으로 서비스를 계속해서 유지해 왔고 다른 가계부들이 모두 사라지는 동안 계속해서 안정적으로 서비스 되고 있습니다.
가계부 서비스를 유료로 사용한다고 하면 고개를 갸웃 거릴 분들이 많이 계실 것임은 잘 알고 있습니다. 하지만 한국에 이 정도 수준의 가계부 서비스를 지금까지 오랜 세월에 걸쳐 안정적으로 제공해 온 곳이 후잉 말고 얼마나 더 있는지 알기 어렵고 또 후잉 만큼 가계부 기록을 계정에서 계정으로 돈이 이동하는 방식으로 기록하는 이른바 복식부기 방법을 깔끔하게 제공하는 서비스를 찾기는 어려울 겁니다. 개인적으로는 가계부를 완벽하게 작성하려고 노력하기 보다는 느슨하게 어지간하면 빼먹지 않고 기록하는 수준으로 기록하며 일정 기간마다 수입, 지출, 이들의 더 긴 기간에 걸친 변화를 추적하는데 주목하고 있습니다. 후잉 웹사이트의 커뮤니티 게시판을 보면 종종 자잘한 포인트 하나하나를 완벽하게 기록하려는 분들을 보고 '그렇게 까지 할 일인가' 싶은 생각이 들었고 굳이 빠뜨린 항목을 채우기 위해 머리 속을 쥐어 짜는 대신 분기마다 한번쯤 각 계정의 장부 상 잔액과 실제 잔액을 살펴보고 그 차이를 적당히 메우는 방식으로 느슨하게 기록하며 추세를 보는데 집중하고 있습니다.
자동화: 애플 숏컷 앱, n8n, AutoIt
몇몇 워크플로우는 반복적이어서 이들을 자동화 하면 여러 모로 큰 도움이 됩니다. 이 계열에서 가장 오래 사용해온 앱은 아주 오래된 AutoIt이라는 윈도우용 인터페이스 자동화 및 스크립팅 앱입니다. 여러 앱들이 API나 애플 숏컷처럼 운영체제 수준에서 자동화에 접근할 수 있는 인터페이스를 제공하면 좋겠지만 운영체제의 규칙을 애플에 비해 훨씬 느슨하게 유지해 온 윈도우의 역사적 특성 상 온갖 소프트웨어들은 저마다의 인터페이스로 제작되고 또 저마다의 인터페이스 프레임워크를 사용하는 등 일괄적인 자동화를 하기 아주 어려운 환경으로 발전해 왔습니다. 그래서 윈도우 환경에서 여러 앱에 걸친 워크플로우를 자동화 하기 위한 가장 무난한 방법은 직접 앱 인터페이스를 조작하는 방식의 자동화라고 생각합니다. AutoIt은 이 분야의 오랜 강자로 앱을 실행 시키고 마우스 커서를 움직여 메뉴를 클릭해 기능을 실행하고 키보드를 통해 직접 문자열을 입력하는 등 사람이 행동하는 것과 비슷하게 워크플로우를 자동화할 수 있을 뿐 아니라 이런 동작을 하는 스크립트를 작성한 다음 실행파일로 만들어 스케줄러에 넣고 돌리거나 윈도우 서비스에 등록해 돌리는 방식으로 아주 다양하게 확장할 수 있습니다.
한동안 애플 숏컷 - 단축어 - 앱을 사용해 여러 워크플로우를 자동화 해 왔습니다. 특히 애플 숏컷 앱을 사용해 여러 서비스의 API에 직접 접근해 제어하고 데이터베이스에 직접 쿼리를 날리도록 하면서 애플 숏컷을 활용해 온갖 종류의 바보같은 관리 규칙을 무력화 하는 자동화 규칙을 만들 수 있었습니다. 특히 아이폰을 사용해 숏컷을 작성하다 보면 지하철로 이동하는 도중에도 코딩할 수 있어 출퇴근 시간에 집중해 자동화를 만들어낼 수 있기도 했습니다. 하지만 근본적으로 애플 숏컷은 테스트와 디버깅 환경이 극도로 열악해 노드의 나열이 조금만 길어져도 원하는 부분을 찾아 수정하기 너무나 힘들었고 조건이나 반복 같은 제어 구문이 너무 옛날 방식의 형태만 지원해 원하는 로직을 쉽게 만들기 어려웠습니다. 또한 숏컷의 버전 관리 기능을 아무것도 제공하지 않아 수정하다가 이를 취소하려고 마음먹으면 그 과정이 너무나 고통스러웠고 한 숏컷에 노드 수가 고작 100여개만 되어도 디버깅이 너무나 어려웠습니다. 그래서 애플 숏컷은 아이폰에 기반해 이벤트를 감지하는데 주로 사용하고 실제 자동화는 웹훅을 통해 n8n으로 구축한 별도 자동화를 호출하는 역할만 하는 수준으로 사용하게 되었습니다.
n8n은 여러 서비스에 걸친 자동화를 여러 기능을 하는 노드를 연결하는 방식으로 정의할 수 있는 자동화 도구입니다. 비슷한 역할을 하는 IFTTT, Zaiper 같은 도구가 있지만 이들은 무료 사용 범위가 너무 좁아 이 도구로 무엇을 할 수 있는지 탐색하기조차 어렵습니다. n8n 역시 완전관리되는 서비스는 가격이 높은 편이지만 직접 인프라를 구축해 구동한다면 무료로 사용할 수 있습니다. 앞서 장기적으로 비용을 낮추기 위한 온프레미스 전환에서 소개한 맥미니 서버에 도커 기반으로 n8n을 돌리기 시작했고 n8n은 무료로 아주 많은 워크플로우를 자동화 할 수 있게 해 주었습니다. 간단하게는 제가 글을 달력에 등록해 놓으면 아침마다 달력을 읽어 오늘 공유할 글을 여러 소셜 네트워크 서비스에 걸쳐 공유해 주기도 하고 컨플루언스 위키의 특정 위치에 새 글을 작성하면 이를 블로그에 드래프트 모양으로 가져와 게시 준비를 마쳐 주기도 합니다. 널리 알려진 어지간한 서비스들의 API에 접근해 이들과 연결되어 같은 글을 여러 곳에 올리거나 조건에 따라 서로 다른 규칙적인 행동을 해야 하는 온갖 상황을 아주 편안하게 관리할 수 있게 해 줍니다. 특히 아이폰에서 애플 숏컷 앱을 통해 아이폰으로만 생성할 수 있을 여러 가지 이벤트에 의해 실행된 숏컷이 실제 로직은 웹훅을 통해 n8n을 통해 실행하면 애플 숏컷을 최소한으로만 사용하고 나머지 동작은 비교적 쉽게 테스트 및 디버깅 할 수 있는 n8n 환경에서 처리해 좀 더 복잡한 워크플로우를 만드는데 주저하지 않을 수 있게 해 줍니다.
결론
지금까지 디지털 생존 키트 2024를 참고해 이를 제 마음대로 ‘디지털 - 휴먼 API’라고 정의하고 몇몇 카테고리에서 주로 사용하는 앱과 서비스를 소개해 보았습니다. 이 목록에는 일반적으로 개인이 잘 사용하지 않는 서비스나 앱이 포함되어 있다는 사실을 알고 있지만 개인이라고 해서 엔터프라이즈 수준의 앱과 서비스를 사용해서는 안된다는 법은 없습니다. 개인 수준의 앱과 서비스에 비해 이들은 훨씬 오랜 세월에 걸쳐 기업들의 온갖 요구에 대응해 온 덕분에 개인 수준에서 사용하기에도 훨씬 넓은 사용 범위와 다양한 기능을 제공합니다. 특히 이들 중 상당수는 꽤 관대한 무료 사용 범위를 제공해 기업 수준에서 사용할 때는 꽤 큰 비용을 지불해야만 하지만 개인 수준의 사용은 대체로 무료이며 이런 관대한 무료 범위는 이를 통해 개인들이 이 서비스에 더 익숙해지게 만들어 결국 회사에서 의사결정을 할 때 이 서비스를 사용할 의사결정을 내리도록 유인하기 위함일 거라고 생각합니다. 그런 의미에서 몇몇 엔터프라이즈 대상 소프트웨어들은 개인이 사용하기에도 정말 훌륭하며 이들을 사용할 때 업무 측면에서도 더 깊은 이해 수준을 가질 수 있어 이들을 추천합니다.