뒤로가기
도구를 추가할 때마다 생각이 느려진다

June 1, 2021

productivityessay

작년 가을, VS Code가 느려졌다. 파일을 열 때 2초, 자동완성이 뜨는 데 1초. 체감 속도가 눈에 띄게 떨어졌는데 원인을 찾지 못하고 있었다. 그러다 우연히 익스텐션 목록을 열어봤다. 38개. 언제 이렇게 됐는지 기억도 안 났다. 하나씩 확인해봤더니 절반 이상이 "이거 좋다더라" 하고 깔아놓고 한 번도 쓰지 않은 것들이었다. 테마만 4개, 깃 관련이 중복으로 3개, 린터가 2개. 쓸모없는 익스텐션이 에디터 시작 시간을 300ms씩 잡아먹고 있었다.

전부 끄고 하나씩 필요할 때만 다시 켰다. 12개가 남았다. 에디터가 다시 빨라졌다. 파일 여는 데 0.5초. 근데 문제는 속도가 아니었다. 진짜 문제는 38개의 익스텐션이 깔려 있을 때 내 머릿속에서 벌어지고 있던 일이었다.

모든 도구에는 인지 비용이 붙어 있다#

어떤 블로거가 디지털 미니멀리즘에 대해 이런 취지의 말을 한 적이 있다. 기술 도구를 평가할 때 "이걸 쓰면 뭘 얻는가"가 아니라 "이걸 쓰면 뭘 잃는가"를 먼저 봐야 한다고. 대부분의 사람은 전자만 본다. 이 앱을 깔면 편리해진다, 이 서비스에 가입하면 정보를 얻는다, 이 슬랙 워크스페이스에 들어가면 기회가 생긴다. 전부 맞는 말이다. 근데 그 편리함과 정보와 기회에는 보이지 않는 인지 비용이 청구서 없이 따라붙는다.

VS Code 익스텐션 38개는 각각 조그만 비용을 부과하고 있었다. 에디터가 느려지는 물리적 비용도 있었지만, 더 큰 건 인지적 비용이었다. 파일을 열 때마다 무의식적으로 사이드바에 뜨는 아이콘을 스캔한다. 커맨드 팔레트를 열면 안 쓰는 익스텐션의 명령어가 섞여 나온다. 자동완성 목록에 모르는 제안이 끼어든다. 각각은 0.1초짜리 작은 방해지만, 그게 하루에 몇 백 번 쌓이면 뇌가 처리해야 할 잡음의 총량이 어마어마해진다.

이건 에디터만의 문제가 아니다. 핸드폰에 깔린 앱, 가입한 서비스, 들어간 슬랙 채널, 팔로우한 뉴스레터, 브라우저에 열어둔 탭. 전부 인지 비용을 발생시킨다. 그리고 그 비용은 눈에 안 보이니까 청구서가 없다. 신용카드 명세서처럼 월말에 "이번 달 인지 비용 총액: 생산적인 시간 43시간"이라고 찍혀 나오지 않는다. 그래서 계속 추가만 하고 제거는 안 한다.

슬랙 워크스페이스 5개#

작년에 슬랙 워크스페이스가 5개였다. 회사 슬랙, 사이드 프로젝트 슬랙, 프론트엔드 커뮤니티 슬랙, 오픈소스 프로젝트 슬랙, 그리고 친구가 "일단 들어와봐" 해서 들어간 스타트업 커뮤니티 슬랙. 알림이 하루 종일 울렸다. 빨간 뱃지가 5개 워크스페이스에서 번갈아가며 떴다. 워크스페이스를 전환하는 것 자체가 컨텍스트 스위칭이었다.

프론트엔드 커뮤니티 슬랙에서 실질적으로 유용한 정보를 얻은 적이 얼마나 되는지 세어봤다. 3개월 동안 실제로 내 업무에 적용한 정보는 하나도 없었다. 가끔 흥미로운 대화가 올라오긴 했지만, 그건 "흥미로운" 것이지 "유용한" 것이 아니었다. 흥미로움과 유용함의 차이는 생각보다 크다. 흥미로운 건 머릿속 대역폭을 차지하면서 아무것도 바꾸지 않는다.

그 스타트업 커뮤니티 슬랙은 더 심했다. "혹시 나중에 기회가 있을 수도 있으니까"라는 이유로 남아 있었는데, 3개월 동안 읽은 메시지가 거의 없었고, 읽어도 내용이 내 상황과 관련이 없었다.

둘 다 나왔다. 회사 슬랙과 사이드 프로젝트 슬랙만 남겼다. 알림이 줄었고, 슬랙을 열 때마다 "어느 워크스페이스부터 확인하지"라는 미세한 의사결정이 사라졌다.

"혹시 모르니까"라는 함정#

도구를 쌓아두게 만드는 핵심 심리가 있다. "혹시 모르니까." 이 슬랙을 나가면 혹시 기회를 놓칠 수 있으니까. 이 뉴스레터를 구독 취소하면 혹시 중요한 정보를 놓칠 수 있으니까. 이 앱을 삭제하면 혹시 다시 깔아야 할 수 있으니까.

"혹시 모르니까"는 두려움이다. 기회를 놓치는 두려움. 근데 기회를 놓치는 것보다 더 위험한 건, 모든 기회를 다 잡으려다가 정작 중요한 한 가지에 집중하지 못하는 거다. 주의력 연구자들이 말하는 "인지적 인내심"이라는 게 있다. 하나의 일에 오래 집중하는 능력. 스마트폰과 소셜 미디어가 이걸 깎아먹는다는 건 이제 상식이 됐지만, 생산성 도구도 같은 일을 한다는 건 잘 모른다. 슬랙 알림이 생산성 도구의 탈을 쓴 집중력 파괴자일 수 있다.

어떤 미니멀리즘 블로거가 의사결정에 대해 이런 말을 했다. "지금 이 결정에 대해 진심으로 흥분되지 않는다면, 거절하라." 도구 선택에도 똑같이 적용된다. 이 앱이 내 워크플로우에 진짜 필수적인가? "있으면 좋을 것 같다" 수준이면 없어도 된다.

도구 감사(audit)를 해봤다#

올해 초에 전체 도구 스택을 감사해봤다. 핸드폰 앱, 브라우저 북마크, 구독 서비스, 슬랙 채널, VS Code 익스텐션, npm 의존성까지. 기준은 단순했다. "지난 2주 동안 실제로 써서 가치를 얻은 적이 있는가."

결과가 참담했다.

핸드폰 앱 73개 중 매일 쓰는 건 9개. 가끔 쓰는 건 12개. 나머지 52개는 지난 2주간 한 번도 안 열었다. 전부 삭제했다.

뉴스레터 구독이 14개였다. 매주 금요일에 오는 기술 뉴스레터들. 실제로 열어서 읽는 건 3개뿐이었다. 나머지 11개는 받은편지함에 쌓이면서 "안 읽은 메일이 있다"는 미세한 죄책감만 유발했다. 전부 구독 취소했다.

브라우저 탭은 항상 20개 이상 열려 있었다. "나중에 볼 거"라고 열어둔 탭인데, 3일 이상 열려 있는 탭을 나중에 볼 확률은 거의 0이다. 퇴근 전에 탭을 5개 이하로 줄이는 규칙을 만들었다. 나중에 볼 건 Pocket에 저장하고 닫는다. Pocket에서 다시 여는 확률도 높지 않지만, "닫아도 잃어버리지 않는다"는 안전망이 있으면 닫기가 쉬워진다.

빈 에디터에서 시작하기#

도구 감사의 핵심 원칙은 "추가"가 아니라 "제거"다. 기본값을 "전부 설치"에서 "아무것도 없음"으로 바꾸는 거다. 코드 리팩토링과 같은 원리다. 기존 코드를 다 지우고, 진짜 필요한 것만 다시 작성한다. 도구도 마찬가지다. 전부 치우고, 하나씩 필요할 때만 다시 추가한다.

새 맥북을 셋업할 일이 있었다. 예전이었으면 기존 맥에서 앱과 설정을 전부 마이그레이션했을 거다. 이번에는 안 했다. 빈 상태에서 시작해서 일하다가 필요한 도구만 하나씩 설치했다. 첫 주가 좀 불편했다. "아 이것도 안 깔려 있네" 하면서 설치하는 일이 하루에 두세 번 있었다. 근데 둘째 주부터는 설치할 게 거의 없었다. 진짜 필요한 도구는 첫 주에 다 드러났다. 이전 맥에서 쓰던 앱의 절반 이상이 필요 없었다는 뜻이다.

이 실험에서 배운 건, 불편함이 꼭 나쁜 게 아니라는 거다. 도구가 없어서 불편한 순간이 진짜 필요한 도구를 알려주는 신호다. 불편함 없이 도구를 미리 깔아두면, 필요 없는 것과 필요한 것이 구분되지 않는다.

npm 의존성도 같은 논리다#

프론트엔드 개발자라면 node_modules 폴더의 크기를 한 번쯤 보고 놀란 적이 있을 거다. 프로젝트 하나에 패키지가 1,200개. 직접 설치한 건 30개 정도인데 나머지는 의존성의 의존성의 의존성이다.

사이드 프로젝트에서 package.json을 정리한 적이 있다. dependencies에 23개가 있었는데, 실제로 import해서 쓰는 건 14개였다. 나머지 9개는 한때 시도해보고 안 쓰게 된 라이브러리, 또는 이미 다른 라이브러리에 포함된 기능을 중복 설치한 것들이었다. 9개를 지웠더니 빌드 시간이 8초에서 5초로 줄었다. 번들 사이즈도 120KB 줄었다.

코드에서는 이걸 당연하게 한다. 안 쓰는 코드는 지운다. 안 쓰는 변수는 린터가 경고한다. 근데 도구에 대해서는 안 한다. 안 쓰는 앱, 안 읽는 뉴스레터, 안 보는 슬랙 채널은 린터가 경고해주지 않는다. 직접 감사해야 한다.

문제 해결형 도구 vs 행동 생성형 도구#

모든 도구가 나쁜 건 아니다. 도구를 두 종류로 구분하면 판단이 쉬워진다.

문제 해결형 도구는 기존에 있던 문제를 해결한다. 구글 맵은 길을 찾는 문제를 해결한다. VS Code는 코드를 작성하는 문제를 해결한다. 깃은 버전 관리 문제를 해결한다. 이런 도구는 내가 하던 행동을 더 효율적으로 만들어준다.

행동 생성형 도구는 새로운 행동을 만들어낸다. 인스타그램을 깔기 전에는 다른 사람의 점심 사진을 스크롤하는 행동이 없었다. 특정 소셜 앱을 깔기 전에는 140자 의견을 읽고 감정적으로 반응하는 행동이 없었다. 이런 도구는 문제를 해결하는 게 아니라, 존재하지 않던 습관을 만들어내서 시간을 먹는다.

도구를 추가하기 전에 "이 도구는 내가 이미 하던 일을 더 잘하게 해주는가, 아니면 안 하던 일을 하게 만드는가"를 물어보면 된다. 후자라면 정말 그 새로운 행동이 내 가치관에 부합하는지 한 번 더 생각할 필요가 있다.

정보를 줄여야 생각이 시작된다#

도구를 줄이면서 가장 의외였던 변화가 있다. 머릿속이 조용해졌다.

예전에는 항상 뭔가를 소비하고 있었다. 출근길에 팟캐스트, 점심에 유튜브, 퇴근길에 뉴스레터, 저녁에 트위터. 뇌에 입력되는 정보가 쉬는 시간이 없었다. 그러다 도구를 줄이니까 빈 시간이 생겼다. 지하철에서 아무것도 안 하는 시간, 커피를 기다리면서 멍하니 서 있는 시간, 저녁에 소파에 앉아서 천장을 보는 시간.

그 빈 시간에 생각이 올라오기 시작했다. "오늘 짠 그 코드, 이렇게 바꾸면 더 깔끔하지 않을까." "저번에 읽은 리팩토링 패턴, 이번 프로젝트에 적용해볼 수 있겠다." "프로젝트 구조를 이런 식으로 바꾸면 확장성이 좋아지겠다."

신경과학에서 디폴트 모드 네트워크라고 부르는 게 있다. 뇌가 외부 자극 없이 유휴 상태에 있을 때 활성화되는 영역인데, 이 상태에서 창의적인 연결이 일어난다. 샤워 중에 좋은 아이디어가 떠오르는 이유가 이거다. 근데 항상 콘텐츠를 소비하고 있으면 이 네트워크가 작동할 틈이 없다. 도구를 줄이는 건 단순히 시간을 아끼는 게 아니라, 뇌에게 생각할 공간을 돌려주는 거다.

불편한 진실 하나#

디지털 미니멀리즘에 대해 글을 쓰면 반드시 나오는 반론이 있다. "실시간 정보에서 뒤처지면 어떡하냐." 프론트엔드 개발자로서 이 불안은 특히 크다. 새 프레임워크가 매달 나오고, 라이브러리 생태계가 빠르게 바뀌니까.

근데 솔직하게 돌아보면, 실시간으로 따라가야 하는 정보의 99%는 내 일과 직접적인 관련이 없다. 새로운 자바스크립트 런타임이 나왔다는 뉴스, 어떤 프레임워크가 새 버전을 냈다는 소식, 어떤 라이브러리가 뭘 발표했다는 트윗. 이 중에서 내가 다음 주에 실제로 쓸 정보가 있는가? 거의 없다.

진짜 중요한 건 어차피 걸러져서 온다. 팀 슬랙에서, 기술 뉴스레터에서, 동료와의 대화에서. 나머지는 소음이다. 소음을 소음으로 인식하는 게 첫 번째 단계다.

6개월 후#

도구를 줄인 지 6개월이 됐다. 핸드폰 앱은 21개, 슬랙 워크스페이스는 2개, VS Code 익스텐션은 11개, 뉴스레터 구독은 3개다. 이전과 비교하면 전부 절반 이하로 줄었다.

생산성이 얼마나 올랐는지 수치로 말하기는 어렵다. 근데 확실한 건 하루가 끝날 때 "오늘 뭐 했지?"라는 자괴감이 줄었다는 거다. 예전에는 하루 종일 바빴는데 한 건 없는 느낌이 자주 있었다. 정보를 소비하느라 바빴던 거지 뭔가를 만들어서 바빴던 게 아니었다.

도구를 줄이는 건 "금욕적으로 살자"는 게 아니다. 기술이 내 가치를 위해 존재해야지, 내가 기술을 위해 존재하면 안 된다는 거다. 모든 도구에 인지 비용이 있다는 걸 인식하고, 그 비용을 감당할 가치가 있는 도구만 남기는 거다. 나머지는 과감하게 치운다.

치우고 나면 처음에는 불안하다. "이거 없으면 어쩌지?" 2주 지나면 안다. 아무 일도 안 일어난다.