목차8개 항목
출처와 참고
테오(teo)의 「나를 프로그래밍 해보자.」(2024.01)를 바탕으로 재구성한 노트다. 「호흡 명상」 절은 「개발자와 명상」(2020.03)을 바탕으로 보강했다.
개발자가 감정의 롤러코스터를 타는 이유
개발자는 "시간과 돈만 있으면 못 만들 게 없다"는 자신감과, "다른 사람은 다 나보다 뛰어나고 성공은 운이었다"는 위축 사이를 자주 오간다. 후자를 가면 증후군(Imposter Syndrome) 이라고 한다. 자신의 성취를 자기 능력과 연결하지 못하고 능력을 낮춰 보는 현상이다.
개발자에게 특히 흔한 이유가 있다. 프로젝트의 성패가 극명한데, 성공은 대개 기술보다 사업의 성공으로 판가름 나서 개발자의 기여가 온전히 드러나기 어렵다. 감정이 오르내리는 것 자체는 건강하다. 문제는 번아웃처럼 한쪽에 오래 머물러 돌아오지 못할 때다. 가장 확실한 처방은 오래된 조언 그대로 운동과 취미지만, 바닥에 있을 때는 그럴 에너지조차 없다. 그때 쓸 수 있는 사고 도구가 아래 관점이다.
생각의 두 체계
심리학자 대니얼 카너먼은 『생각에 관한 생각(Thinking, Fast and Slow)』에서 사고를 두 체계로 나눴다.
| 시스템 1 | 시스템 2 | |
|---|---|---|
| 작동 | 자동, 즉각, 의식하지 못한다 | 의도적, 느림, 주의를 기울여야 한다 |
| 예 | 2 × 2를 보면 4가 떠오른다. 표정을 읽고, 날아오는 공을 피한다 | 167 × 24를 계산한다 |
| 컴퓨터 비유 | 백그라운드 프로세스 | 포그라운드 애플리케이션 |
| 언어 | 말로 설명하기 어렵다 | 언어적이고 이성적이다 |
숙련은 시스템 2로 하던 일이 반복을 거쳐 시스템 1로 옮겨 가는 과정이다. 그래서 개발도 이론보다 많이 해 보는 것이 중요하고, 잘하는 사람이 "왜 그렇게 했는지"를 말로 설명하기 어려워한다. 이론 공부(시스템 2)는 그 과정을 효율적으로 만들어 준다.
감각은 사실, 감정은 해석
이 관점의 핵심은 감각과 감정을 나누는 것이다.
- 감각은 시스템 1이 만든다. 심장이 뛰고 숨이 가빠지는 신체 반응은 의지로 막을 수 없고 100% 실제다.
- 감정은 시스템 2가 그 감각에 언어로 이름을 붙이며 생긴다. 그래서 감정은 상당 부분 주관적 해석이다.
면접 직전의 가슴 두근거림, 합격 메일을 열기 직전의 떨림, 고백 직전의 긴장은 신체 감각으로는 거의 같다. 이것을 "불안"이라고 부르면 불안해지고, "설렘"이나 "각성"이라고 부르면 다르게 작동한다. 긴장은 원래 중요한 순간에 더 잘하라고 몸이 보내는 고도의 각성 신호다. 같은 감각을 의도적으로 다르게 해석하는 것을 인지 재평가(cognitive reappraisal) 라고 한다.
웹 개발에 비유하면 감각은 바꿀 수 없는 HTML(또는 남이 만든 API 응답)이고, 감정은 그 위에 입히는 CSS다. 같은 HTML도 CSS에 따라 정갈해지기도 하고 엉망이 되기도 한다. 나쁜 코드를 좋은 코드로 바꾸는 리팩터링처럼, 감정의 해석도 다시 쓸 수 있다.
감정 리팩터링 예시
| 이렇게 느낄 때 | 이렇게 다시 읽는다 | 이유 |
|---|---|---|
| 분노 | 열정 | 둘 다 순간적으로 에너지를 폭발시킨다. 분노는 상대를 굴복시키는 편협한 소통으로 흐르기 쉽다 |
| 스트레스 | 도전 의지 | 근력은 견딜 수 있는 최대치를 넘길 때 자란다. 스트레스는 성장할 지점에 도달했다는 신호다 |
| 열등감·질투 | 자각·영감·감탄 | "나도 저걸 원했구나", "이런 길도 있구나"로 바꾸면 롤모델이 된다 |
| 답답함 | 문제의식·창의력 | 답답함을 새 방식으로 푸는 것이 개발자의 일이다 |
| 거부감·혐오 | 자기 인식 | 내가 무엇을 싫어하고 어떤 가치를 지녔는지 아는 메타인지의 기회다 |
| 두려움 | 경계 | 두려움은 원래 위험에 대비하는 감정이다. 큰 배포 앞의 두려움은 더 꼼꼼히 확인하라는 신호다 |
| 피로 | 재충전 신호, 일의 한계 발견 | 주량을 알아야 술을 즐기듯, 내가 실제로 몰입할 수 있는 일의 양을 아는 기회다. 방치하면 번아웃이 된다 |
| 무력감 | 통제할 수 있는 것의 자각 | 통제할 수 없는 것에 매달렸다는 신호다. 통제할 수 있는 것과 없는 것을 가리는 분별력을 키운다 |
패러다임으로 받아들이기
객체지향과 함수형 중 어느 하나가 진리가 아니듯, 이런 심리학·뇌과학의 관점도 세상을 보는 하나의 프레임워크로 쓰면 된다. 특정 패러다임을 알고 나면 막연히 느끼던 좋은 코드가 선명해지는 것처럼, 감정에 이름과 구조가 생기면 빠져나오기 쉬워진다. 마음에 드는 부분만 골라 쓰면 된다.
호흡 명상: 알아차리는 연습
감정의 이름을 바꾸려면 먼저 지금 어떤 생각이 떠올랐는지 알아차려야 한다. 호흡 명상은 그 알아차림을 훈련하는 가장 단순한 방법이다.
| 요소 | 방법 |
|---|---|
| 습관 | 짧더라도 매일 같은 시간에 한다. 목표는 지키기 쉬운 수준으로 잡는다 |
| 조건 | 배부를 때보다 공복이 낫다. 허리는 곧게 펴되 편하게 앉고, 소음 같은 방해 요소는 미리 줄인다 |
| 호흡 | 조절하지 않고 평소 속도 그대로 두며, 들고 나는 감각을 관찰한다 |
| 잡념 | 생각이 떠오르면 판단하지 않고 알아차린 뒤 흘려보내고 호흡으로 돌아온다. 어려우면 숨을 세는 식으로 주의를 붙잡는다 |
| 떠오른 아이디어 | 키워드만 기억해 두고 끝난 뒤에 적는다 |
반복해서 떠오르는 생각의 패턴을 보면 지금 무엇이 스트레스인지를 객관적으로 알 수 있다. 이것이 인지 재평가의 출발점이 된다.
한계
- 감각과 감정의 실제 관계는 두 체계로 설명하기에 훨씬 복잡하다. 이 구분은 학술 모델이 아니라 실용적인 사고 도구다.
- 인지 재평가는 일상적인 스트레스를 다루는 기법이다. 오래 이어지는 번아웃이나 우울은 휴식, 환경 변화, 전문가의 도움이 먼저다.
- "스트레스는 성장 신호"라는 해석이 과로를 정당화하는 데 쓰이면 안 된다. 피로를 쉬라는 신호로 읽는 것과 함께 써야 한다.
정리
- 개발자는 성과가 사업 결과로 평가되는 탓에 가면 증후군을 겪기 쉽다.
- 시스템 1이 만드는 감각은 바꿀 수 없지만, 시스템 2가 붙이는 감정의 이름은 바꿀 수 있다.
- 긴장은 각성으로, 스트레스는 도전으로, 무력감은 통제할 수 있는 것의 자각으로 다시 읽는다.
- 같은 HTML에 다른 CSS를 입히듯, 나라는 프로그램의 해석을 리팩터링한다.
관련 노트: 회사에서 빠르게 성장하는 법, 사회 초년생을 위한 직장 생활 팁, 컴퓨팅 사고와 개발 실력 늘리는 법