프로그래머와 컨센트레이션, 그리고 인터럽트 think Berry

  동물은 언제나 중요한 순간에는 집중을 하게 됩니다. 먹이를 노리는 사자는 바스락 흩날리는 황금 빛 초원의 풀 숲에서 눈 하나 깜빡이지 않고 조용히 숨 죽인체 먹잇감만을 노려보며  엎드려 있습니다. 그들은 먹이사냥의 프로페셔널이면서도 먹이사냥은 생사를 결정짓는 중요한 사안이기에 언제나 신중을 기합니다. 인간도 마찬가지입니다. 온 몸의 신경을 한 데 모을 때에는 입을 다물고 눈은 동그랗게 뜬 체 오직 그 대상에만 초 집중 상태가 됩니다. 이러한 초 집중상태에서는 평상시와 다른 생산량과 성과를 보이지만 이러한 집중상태는 상당한 에너지를 요할 뿐만 아니라 다른 외적 요인에 너무나도 쉽게 깨져버립니다. 


  프로그래머는 프로그램을 짤 때 굉장히 많은 정신력을 필요로 합니다. 프로그래밍은 기억해야 하는 무수히 많은 변수와 이름들을 머릿 속에 지속적으로 유지시키며, 전체 프로그램 구조를 머릿 속에서 재구성하고 새로운 한 줄에대한 창의적 사고를 지속적으로 해야하는 작업이죠. 오랜 시간 컴퓨터 앞에 앉아 있어야 겨우 산출물이 조금 튀어 나오기 때문에 프로그래머는 배가 나와버리거나 역으로 홀쭉해져버립니다. 햇빛을 보지 못해 얼굴은 점차 창백해지고 몸은 몸대로 썩고 정신은 0과 1로 구성되어 나의 유일한 친구는 컴퓨터야, 컴퓨터는 거짓말을 하지 않지라는 소리나 내 뱉게 됩니다. 아무튼 프로그래머는 굉장히 집중을 오래 유지해야만 하는 직업 중 하나입니다.

  그런데 문제가 있습니다. 초 집중상태는 내 마음대로 되지 않습니다. 그 날 그 날의 컨디션 즉 육체적 요인과 들쑥날쑥 도저히 알기 힘든 심리적 요인이 함께 작용하기 때문입니다. 저는 한 번 프로그래밍에 흐름을 타면 그것이 몇 일 갑니다. 겨우 몇 일 갈 뿐입니다. 몇 일이라는 시간으로는 프로그램 명세도 완벽하게 마치지 못합니다. 뿐만 아니라 겨우 집중 상태에 들어가 흐름을 타게 되어도 주변에서 방해하는 요인이 너무나 많습니다. 갑자기 전화가 울립니다. 따르르릉, 저녁시간인데 밥할 사람이 없군요. 젊은 사람이 해야죠. 근데 아기새는 밥을 왜이렇게 자주 달라는 거죠? 프로그래머의 머릿 속에 기억된 변수명, 함수명, 로직따위가 가비지컬렉터의 제물이 되는 순간입니다. 

  저는 군대에서 프로그래머로서 가장 많은 인터럽트를 겪었습니다. 나름 전산병이었던 일개 병사는 그저 노예이기 때문에 코딩을 하고 있던 말던 아무 상관 하지 않습니다. 30분 코딩하다가 6시간 작업 뒤에 일과 마치기 30분 전 코드를 보는 일은 일상 다반사였죠. 굉장히 짧은 간격의 인터럽트는 더 말할 것도 없지요. 간혹 긴 시간을 자리에 앉을 수 없어 몇일 뒤에 코드를 보면 새로운 기분이듭니다. 뭐지 이 더러운 소스는? 뒤 엎고 새로 만들어볼까? 일이 이지경이 되면 새로 만들지 않아도 코드를 파악하느라 거의 제자리 걸음이 됩니다. 대체 무슨 일을 하고 있었는지 도무지 기억이 나질 않죠. 그러다보니 자연스럽게 코드에 대한 명세를 하게 되었습니다. OS로 치면 인터럽트 벡터쯤 되겠군요. 보통 프로그래머들은 명세서 만들기를 끔찍하게 싫어하며 후임자를 위해 어쩔 수 없이 작성해나가는 것인데 반해 저는 저를 위해, 제가 쓴 명세서를 제가 보고 구현해나갔습니다. 조엘 스폴스키 아저씨는 이런 걸 '개밥 먹기'라고 했던가요?

  명세를 하는 습관은 분명 좋습니다만, 명세를 어쩔 수 없이 하게 만드는 그 상황은 정말이지 최악입니다. 저는 흐름을 제대로 타면 코드를 계속 계속 계속 써내려갈 수 있습니다. 배가 고픈지 모른체 계속 토닥거립니다. 하지만 인터럽트를 받게 되면 계속 페이지 폴트, 세그멘테이션 폴트, 가비지컬렉션, 오버플로우가 일어납니다. 대체 자리에서 일어나 주방에서 오른손에는 칼을 들고 왼 손에는 컵을 들고 있는 이유가 뭐였는지 도무지 기억이 나질 않습니다. 이토록 프로그래머는 집중 상태에서만 일을 할 수 있습니다. 만약 집중이 되지 않는 상태에서 코드를 짜고 있다면 그것은 스파게티 소스가 아니라 벌레튀김을 만들고 있는 겁니다.

  그래서 프로그래머에게는 가만히 코딩만 할 수 있는 환경을 제공해주는 것이 중요합니다. 대부분의 프로그래머가 낮보다 밤에 생산량이 높은 이유도 바로 여기에 있습니다. 밤에는 모두 잠들기 때문에 오직 컴퓨터에만 집중할 수 있기 때문이죠. 만약 프로그래머가 숨을 죽이고 키보드만 두드리고 있다면 말 걸지 말고 조용히 지나가세요. 여러분은 초 집중 상태를 보고 계신 겁니다.  외부 인터럽트만으로도 충분히 패닉에 빠지니까 프로그래머를 그만 괴롭혀주세요!





THinkBerry의 생각열매를 함께 나눠요. ThinkBerry.co.kr
TAG

Leave Comments


profileThinkberry에 오신것을 환영해요~ 

Recent Trackback

오늘:
98
어제:
173
전체:
76,325