40 여러분이라는 운영 체제
인간의 “하드웨어”는 크게 다르지 않습니다. 우리는 대체로 같은 몸을 가지고 있습니다. 우리는 같은 양의 에너지를 소비하고 사용합니다. 우리 중 70%는 IQ가 85에서 115 사이입니다. 고작 30점 차이입니다.
따라서 우리가 관찰하는 인간 성과의 엄청난 차이는 우리가 실행하는 “소프트웨어”에서 비롯된 것임이 틀림없습니다.
그런데 핵심은 이것입니다. 소프트웨어는 업그레이드할 수 있습니다.
“인간은 자신이 완성되었다고 착각하는, 아직 진행 중인 작품입니다.” - Dan Gilbert
저자 노트: 이 장의 내용은 더 많은 예시를 곁들여 CascadiaJS 2020에서 강연으로 발표한 바 있습니다.
40.1 당신의 “애플리케이션”
이 책 전반에 걸쳐 저는 여러분이 성공하는 데 필요한 지식을 전하고자 애썼지만, 의도적으로 비선형적인 방식으로 구성했습니다. 4~8년에 걸친 초기 개발자 경력 동안, 이 책의 여러 부분이 필요해질 때마다 다시 찾아볼 수 있도록 하자는 것이 그 의도입니다.
다시 말해, 저는 여러분의 기억 속에 필요할 때마다 부팅하여 실행할 수 있는 35개의 새로운 애플리케이션을 설치해 두었습니다. 이것들을 잘 활용하시기를 진심으로 바랍니다.
전술은 유틸리티와 같습니다. 필요할 때 잠깐 참고하려고 꺼내 쓰고, 다 쓰고 나면 다시 내려놓습니다.
전략은 대형 앱과 같습니다. 거의 항상 실행해 두게 되고 모든 데이터가 그 안에 담기므로, 시간을 들여 신중하게 고릅니다. Slack입니까, Discord입니까? Notion입니까, OneNote입니까? Figma입니까, Sketch입니까? Visual Studio입니까, IntelliJ입니까?
원칙은 데몬과 같습니다(또는 서비스라고도 하는데, 같은 것을 가리키는 Windows의 훨씬 덜 흥미로운 용어입니다). 원칙은 항상 켜 두어야 합니다. 원칙은 여러분을 멀웨어로부터 보호하고, 행동을 취하도록 촉구하며, 여러분이 매일 내리는 수천 가지의 결정과 선택을 처리하도록 도와줍니다.
이 앱들에서 버그를 발견하시면 저에게 버그 리포트를 보내 주십시오!
하지만 그 바탕이 되는 운영 체제 자체는 어떻습니까? 그것은 누가 관리하고 있습니까? 바로 여기서 밑바탕의 습관이 등장합니다. 원칙, 전략, 전술이 의식 수준에서 작동한다면, 습관은 잠재의식에 작용합니다.
“저는 위대한 프로그래머가 아닙니다. 그저 훌륭한 습관을 지닌 괜찮은 프로그래머일 뿐입니다.” - 켄트 벡

40.2 코딩 커리어 습관
습관은 자동적이고 규칙적이기 때문에 좋은 쪽으로든 나쁜 쪽으로든 엄청난 복리 효과를 냅니다. 이 주제의 권위 있는 책으로는 James Clear의 아주 작은 습관의 힘(Atomic Habits), Charles Duhigg의 습관의 힘(The Power of Habit), Stephen Covey의 성공하는 사람들의 7가지 습관(7 Habits of Highly Effective People)이 있습니다. 이 책들은 제가 여기서 충분히 다룰 수 있는 것보다 훨씬 자세한 내용을 담고 있으니 꼭 읽어 보시기를 권합니다.
“여러분의 결과는 습관의 후행 지표입니다. 여러분의 순자산은 재정 습관의 후행 지표입니다. 여러분의 체중은 식습관의 후행 지표입니다. 여러분의 지식은 학습 습관의 후행 지표입니다. 어지러운 물건은 청소 습관의 후행 지표입니다. 반복하는 것이 곧 결과가 됩니다.” - James Clear
하지만 “운영 체제” 비유를 더 확장해 볼 수도 있습니다. 반세기에 걸쳐 운영 체제를 프로그래밍하며 배운 구체적인 개념들을 가져와, 커리어와 삶을 꾸려 나간다는 다소 모호한 목표에 어떻게 적용할 수 있을지 생각해 볼 수 있습니다.
40.2.1 당신의 “펌웨어”
가장 먼저 다스려야 할 습관의 범주는 여러분의 “하드웨어”를 직접 운영하는 습관, 즉 신체적·정신적 건강입니다. 가족, 신앙, 취미, 체력, 수면입니다. 이러한 습관을 잘 유지하지 않으면, 여러분 자신에게 진단하기 어려운 시스템 장애를 일으킬 수 있습니다.
수면은 중요합니다. 무엇보다 우리는 하루의 3분의 1을 잠자는 데 보내기 때문입니다. 우리는 왜 잠을 자야 할까를 알아 두어야 합니다.
“수면은 다양한 방식으로 우리의 뇌를 개선하는 복잡한 신경화학적 목욕을 만들어 냅니다. 그리고 수면은”우리 면역 체계의 무기고를 다시 채워 악성 종양과 싸우고, 감염을 예방하며, 온갖 종류의 질병을 막아 줍니다.” 다시 말해, 수면은 우리의 진화적 적합도를 크게 높여 줍니다—단지 우리 눈에 보이지 않는 방식으로 그럴 뿐입니다.” - 빌 게이츠
인체공학에도 신경 쓰는 것을 잊지 마십시오. Pieter Levels가 제시한 다음의 기본 4단계 체크리스트를 참고하십시오.
- 화면이 팔을 뻗은 거리만큼 떨어져 있습니까?
- 화면 상단이 눈높이와 같은 위치에 있습니까?
- 책상 위에 올린 팔꿈치가 90° 직각을 이루고 있습니까?
- 발이 바닥에 닿아 있습니까?
“자기 자신을 잘 돌보십시오. 이 일은 손, 허리, 어깨를 망가뜨릴 수 있습니다. 걷든, 대화하든, 서 있든, 쪼그려 앉든, 무엇이든 하십시오. 손과 허리와 뇌가 곧 여러분의 돈입니다. 지금부터 잘 관리하면 30~50년은 버텨 줄 것입니다.”
반복 사용 긴장성 손상(RSI)은 예기치 않게 여러분의 코딩 커리어를 끝낼 수 있습니다. 처음에는 심각하게 느껴지지 않지만, 수년간 누적된 손상은 심각해지기 시작할 때쯤이면 되돌리기에 너무 늦을 수 있습니다. 더 많은 내용은 제가 정리한 RSI 자료 모음을 확인하십시오.
40.2.2 여러분의 “외부 장치”
두 번째 종류의 습관은 여러분과 직접 연결되어 있지만 실제로 여러분 자신은 아닌 모든 것과의 상호작용을 다룹니다. 고려해야 할 측면은 많지만, 여기서는 저장소, 네트워킹, 가상화를 예로 들겠습니다.
현대 CPU에는 L1부터 RAM에 이르기까지 일련의 캐시가 있습니다. 멀리 갈수록 불러오는 속도는 느려집니다. 이는 인간의 망각 곡선과 대략 비슷합니다. 하지만 진정으로 지속적이고 영구적인 저장을 위해서는 정보를 하드 디스크에 저장해야 합니다.
인간에게 가장 효율적인 저장 형태는 글쓰기입니다. 따라서 많이 쓰는 습관은 미래의 자신과 바깥 세상에 전달하는 모든 것의 대역폭을 늘리는 데 도움이 됩니다. 시간 면에서 비용이 많이 드는 것처럼 보이지만, 대부분의 알고리즘은 약간의 메모이제이션과 신중하게 저장한 자료 구조만으로도 속도가 극적으로 향상된다는 점을 기억하십시오. 컨텍스트 스위칭조차 훨씬 저렴해집니다!
지금의 뇌도 훌륭하지만, 첫 번째 뇌가 잘하지 못하는 모든 일을 해 주는 “세컨드 브레인”을 만들면 어떤 일이 일어나는지 확인해 보십시오!
컴퓨터는 다른 컴퓨터와 대화하기 시작하면서 훨씬 더 흥미로워졌습니다. 사실 얼마나 더 흥미로워지는지에 대한 법칙도 있습니다. 멧커프의 법칙에 따르면 네트워크의 가치는 제곱으로 증가합니다! 그렇기 때문에 현재 회사 밖까지 포함해서 네트워크를 쌓는 데 시간을 들이는 것은 충분히 가치 있는 일입니다. 지식을 오픈 소스로 공개하기, 콘퍼런스에서 발표하기, 자신을 마케팅하기 등 무엇을 선택하든 도움이 될 것입니다.
공개적으로 배우기가 그토록 강력한 이유는 바로 저장과 네트워킹을 동시에 할 수 있게 해 주고, 무한한 피드백 루프가 내장되어 있기 때문입니다.
마지막으로, 많은 앱은 가상화된 컨테이너 안에서 실행하는 편이 더 낫고 더 쉽습니다. 제약된 환경이 더 나은 신뢰성과 확장성을 제공하는 데 도움이 되기 때문입니다. 마찬가지로, 여러분의 환경도 생산성에 도움이 되도록 만들 수 있습니다. 심리학에 대한 실용적인 이해를 활용해 스스로를 방해받지 않는 사람(Indistractable)으로 만들고, 현대 관심 경제(Attention Economy)의 온갖 주의 분산 요소로부터 어느 정도 프로세스 격리를 확보하십시오. 업무 의식을 지나치게 복잡하게 만들지 마십시오. 뽀모도로 기법 같은 간단한 요령부터 시작해 점차 단계를 높여 가십시오. 업무 환경이 여러분 자신의 생산성과 만족도에 미치는 영향을 알아 두십시오. 원격 근무자들은 일하는 곳과 잠자는 곳이 명확히 분리되어 있을 때 생산성이 훨씬 높아진다고 한결같이 이야기합니다. “홈 컨테이너”에서 “업무용 앱”을 실행하지 말고, 개인적인 일과 업무를 뒤섞지 마십시오!
40.2.3 당신의 “스케줄러”
습관의 세 번째 범주는 여러분의 스케줄러(프로세스 관리자라고도 합니다)에 관한 것입니다. 작업을 누락합니까? 우선순위가 높은 작업보다 낮은 작업을 우선시합니까? 작업 전환이나 명백히 멈춘 앱을 종료하는 데 서툽니까? 그렇다면 버그가 있을 수 있습니다. 일정을 통제하십시오. (범주별로) 단일 진실 공급원을 만들고, 모든 것을 그곳에 넣고, 중요한 일을 위해 시간을 내십시오.
참고: 끊임없이 배경 불안을 느끼고 좀 더 구체적인 지침이 필요하다면, 이를 다루는 고전적인 책은 Getting Things Done입니다. 그것이 지나치다 싶고 개발자에게 더 와닿는 것을 원한다면, Marc Andreesen의 Guide to Personal Productivity를 참고하십시오(그의 2020년 업데이트로 균형을 맞추십시오).
어떤 일이 중요한지 판단하려면 실행을 최대한 미루십시오. 자신의 충동과 다른 사람의 요청에 “아니요”라고 더 자주 말하십시오. 어떤 API에든 기대하는 동작과 마찬가지로, 작업을 수락해 놓고 끝내 하지 않는 것보다는 거절하는 편이 낫습니다. “아니요”라고 잘 말하는 법을 알면 설렘을 줍니다.
아이젠하워 매트릭스에서 드러나는 우리의 편향을 기억하십시오. 우리는 긴급하지만 중요하지 않은 일 때문에 긴급하지는 않지만 중요한 일을 소홀히 하는 경우가 많습니다:

오래도록 지속되는 장기적 가치를 지닌 일은 거의 모두 긴급하지는 않지만 중요한 일입니다. 시간이 돈보다 더 가치 있다면, 시간을 만들어 내는 기술은 돈을 버는 기술보다 더 가치 있습니다. 시간을 만드는 법을 배우십시오.
참고: NASA는 이 매트릭스를 발전시킨 형태로 위험을 평가합니다: “[조건]이 주어졌을 때, [이탈]이 [자산]에 악영향을 미쳐 [결과]로 이어질 가능성이 있습니다.” 여기서는 긴급성과 중요성 대신 가능성과 결과를 고려합니다.
전략이 중요합니다. 인생의 큰 전략적 결정을 내릴 시간을 마련하십시오. 시간은 고르지 않습니다. 어떤 해는 하루처럼 지나가지만, 어떤 날은 한 해처럼 느껴질 것입니다. 커리어의 큰 기회가 언제 찾아올지는 통제할 수 없지만, 주기적으로 한발 물러서서 비즈니스 전략부터 업계의 메가트렌드, 그리고 커리어 사다리에서 얼마나 나아가고 있는지까지 큰 그림 전체를 다시 평가할 수는 있습니다. 행운은 준비된 사람에게 찾아옵니다.
언제 일하는지도 중요합니다. 집중력과 에너지는 하루 중 어느 때나 일정하게 유지되지 않습니다. 크로노타입에 관한 과학은 널리 받아들여지고 있으며, 자신이 어떤 유형인지 알아낼 가치가 있습니다. 이를 알면 정신이 가장 맑은 시간대에 집중이 필요한 일을 몰아서 하고, 행정 잡무는 오후의 처지는 시간대로 미룰 수 있습니다. 제가 접한 것 중 이 주제를 가장 잘 다룬 것은 Dan Pink의 When: The Scientific Secrets of Perfect Timing입니다.
최적의 일괄 처리라는 개념은 하루 주기의 리듬에만 적용되는 것이 아니라 한 주의 업무에도 적용됩니다. 예를 들어, Sarah Drasner는 한 주의 초반을 회의에 할애하고, 주 후반에는 방해받지 않고 코딩할 수 있도록 큰 시간 덩어리를 비워 둡니다. Paul Graham은 이를 메이커의 일정, 매니저의 일정이라고 부릅니다. 두 가지를 모두 해야 한다면 끊임없이 뒤섞기보다는 모드를 번갈아 전환하도록 하십시오. 번아웃으로 가는 길은 컨텍스트 스위칭으로 포장되어 있습니다.
40.2.4 당신의 “커널”
마지막 종류의 습관은 제가 여러분에게 명확히 설명해 드릴 수 없는 것입니다. 여러분 스스로 자기 안에서 찾아야 합니다. 이것에는 여러 이름이 있습니다.
- 목적
- 비전
- 미션
- 소명
- 내재적 동기
하지만 저는 Drive라는 단어를 좋아합니다. 그것을 잃으면 결국 번아웃에 빠지게 됩니다. 여러분의 드라이브를 살아 있게 유지하십시오. 이 주제에 관한 Dan Pink의 책에서 그는 이렇게 말합니다:
“어린 시절 우리는 배우고, 발견하고, 다른 사람을 돕고자 하는 내면의 욕구에 이끌려 움직입니다. 하지만 자라면서 우리는 사회에 의해 외재적 동기를 필요로 하도록 길들여집니다. 쓰레기를 내다 버리고, 열심히 공부하고, 지칠 줄 모르고 일하면 다정한 칭찬과 높은 성적, 두둑한 급여로 보상받게 된다는 것입니다. 우리는 서서히 내재적 동기를 점점 더 많이 잃어 갑니다. 외재적 약속은 내재적 동기를 파괴합니다.”
당신이 운영 체제라면, 이것은 당신에게 pid 0에 해당하는 것입니다. 시스템 전체를 돌아가게 하는 “시스템 프로세스”입니다. 다른 모든 프로세스를 실행하는 프로세스입니다. 다만 이것을 프로세스라고 부르는 대신, 원칙이라고 부를 수 있을 것입니다. 방향을 잃었을 때, 달리 할 일이 없을 때, 할 일이 너무 많을 때, 혹은 모든 것이 끔찍하게 잘못되어 갈 때, 이것이 바로 여러분이 기댈 단 하나의 원칙입니다. 이 책에서 몇 가지를 다루었지만, 여러분에게 맞을 만한 원칙은 그 밖에도 훨씬 많습니다. 하나를 골라 내면화하고, 여러분을 이끄는 등불로 삼고, 다른 사람들에게도 전하십시오.
저는 제 것을 찾는 데 30년 >이 걸렸지만, 여러분도 가질 수 있습니다: 평생 공개적으로 배우기입니다.
“당신이 할 수 있는 최악의 일은 자신이 충분히 안다고 생각하는 것입니다. 배움을 절대 멈추지 마십시오. 절대로.” - 아널드 슈워제네거
40.2.5 요약
인간을 컴퓨터에 비유하는 것은 제가 처음이 아닙니다. 우리가 기계의 성능을 극대화하기 위해 사용하는 알고리즘이 아마도 훌륭한 삶의 알고리즘(Algorithms to Live By)이기도 하다는 것은 일리가 있습니다. 하지만 우리의 맥락에서는 네 가지 범주의 습관에만 집중했습니다.
- 펌웨어: 정신 건강과 신체 건강
- 외부 장치: 글쓰기, 네트워킹, 환경
- 스케줄러: 우선순위 정하기와 일정 관리
- 커널: 추진력
이 모든 것을 완벽하게 해내는 사람은 아무도 없습니다. 그러니 스스로에게 완벽을 기대하지 마십시오. 하지만 기본 습관을 개선하기 위해 할 수 있는 작은 노력 하나하나가 모두 도움이 됩니다. 어느 날, 어느 주, 어느 달, 어느 해에든 다시 예전으로 돌아갈 수 있습니다. 괜찮습니다. 그저 다시 일어나 시작하면 됩니다.
“당신이 하는 모든 행동은 당신이 되고 싶은 유형의 사람에게 던지는 한 표입니다. 단 한 번의 행동으로 신념이 바뀌지는 않지만, 표가 쌓여 갈수록 당신의 정체성을 뒷받침하는 증거도 쌓여 갑니다. 바로 이것이 습관이 중요한 이유입니다. 습관은 어떤 유형의 사람이 되는 쪽에 거듭해서 표를 던집니다.” - James Clear
40.3 코딩 커리어의 감정 여정
당신의 “운영 체제”에 대한 궁극적인 “상태 점검”은 당신이 어떻게 느끼는가입니다. 여러분의 감정과 정신 건강입니다. 이 책에서는 그에 대해 많이 이야기하지 않았지만, 여러분이 느끼는 감정은 타당하며 중요합니다. 정신 건강을 위해 휴가를 내도 괜찮고, 자신의 감정에 대해 이야기하고 도움을 요청해도 괜찮습니다.
우리의 문화도, 우리의 멘토도, 심지어 이 책조차도 끊임없는 학습과 배우는 법을 배우는 것을 숭상합니다. 이는 개인의 성장에는 훌륭한 일이지만, 단점도 있습니다.
업계에는 워커홀릭이 너무 많아서 끊임없이 일과 삶의 균형을 강조하지만, 성공한 사람 중 다수는 이를 무시합니다. 우리는 행복해지는 법을 배우기 전까지는 결코 만족하지 못할 것입니다. 이 책의 내용을 모두 읽더라도, 여러분은 여전히 전략적 실수와 전술적 오류를 저지를 것입니다. 자기 자신을 용서하는 법을 배우십시오. 여러분보다 더 똑똑하고, 더 부유하고, 더 잘생기고, 더 성공한 사람은 언제나 있을 것입니다. 그들과 자신을 비교하는 것을 멈추고, 그저 어제의 자신보다 더 나아지십시오. 비교는 기쁨을 죽입니다.
어느 날 잠에서 깨어 우리가 가진 것이 충분히 좋다는 것을 깨달을 때, 우리는 평화를 찾습니다.
위대한 무언가를 만들어 내는 과정에서 겪는 감정의 여정을 기억해 두십시오:
그림 「The Emotional Journey of Creating Anything Great」은 저작권자의 별도 허락이 필요하거나 출처가 확인되지 않아 번역판에 싣지 않습니다. 원문 사이트에서 그림 보기
우리는 모두 이러한 정점과 바닥을 겪습니다. 어떤 프로젝트를 하든, 어떤 기술을 배우든 이런 감정을 느끼게 될 것이며, 훌륭한 코딩 커리어를 쌓아 갈 때는 특히 그렇습니다.
당신을 당신답게 만드는 모든 것이 바로 당신의 운영 체제입니다. 잘 돌보십시오. 여러분이 가진 전부입니다.