대단해 보이고 싶어서 개발자를 하고 있는가?
들어가면서 - "당신은 왜 개발자를 선택하셨나요"
원론적인 질문, 그 자체이다.
"만들고 싶은 것을 만들 수 있어서요" 라는 답변은 취미로서의 개발자에는 어울릴 지 모르겠으나 직업으로서의 개발자에는 어울리지 않을 가능성이 있다. 허나 스스로가 만들고자 하는 무엇인가가 뚜렷이 존재하고 있다는 점에서, 동기가 타인이 아닌 본인 스스로에게서 나온다는 점에서 충분히 긍정적으로 볼 수 있고, "직업" 으로서의 개발과 "취미" 로서의 개발을 엄격히 구분지을 수만 있다면 이보다 더 즐겁게 일할 수 있는 사람이 존재할까.
"문제를 해결하는 과정이 즐거워서" 는 위의 대답보다는 조금 더 전업 개발자에게 적합하다 볼 수 있겠다. 만들고 싶은 것을 만들지 못하더라도, 회사에서 자신에게 쥐어 준 문제를 해결하는 것 자체에서 희열을 느낀다는 점에서 말이다. 당연히 즐거움이 본인 스스로에게서 나오는 것이니, 이 또한 긍정적인 동기이며, 상술한 "만들고 싶은 걸 만들 수 있어서" 보다 더 뛰어난 능력을 발휘할 수도 있다. 문제 해결 그 자체에 흥미를 느끼고 있기 때문.
"돈을 벌 수 있어서요" 는 평범하지만, 외려 돈을 벌 수 있기 때문에 선택하였기에 이러한 대답을 내놓은 사람들은 아집 없이 가장 최적의 선택지를 고르는 경우가 많다. 직업 중 하나로서 개발자를 대하기에, 가장 무난한 사람이 될 확률이 높다.
이 글에서 다룰, "대단해 보이고 싶어서요" 는, 전업 개발자로서도, 호비스트 (Hobbist) 로서도 적합하지 못하다. 상기한 세 가지 대답을 내놓은 사람들과는 달리 그들의 동기는 다른 사람에게서 나왔으며, 최적의 선택지를 고를 확률도 낮다. 대단해 보이지 않는다면 이들은 그 어떠한 것도 하려고 들지 않기 때문.
저 엄청 잘하죠, 그쵸?
과시욕 없는 사람 어디 있겠냐만,
개발자 직군은 타 직군을 통틀어서 그 정도가 가장 심한 직군 중 하나가 아닐지.
학부생 시절부터 조별 과제에서 조원들의 실력이 너무 형편 없어 자신이 모든 걸 다 해내었다는 자랑 섞인 글들을 커뮤니티에 올린 후 해결사가 된 스스로에 취하거나, O학년 / O년차인데 이것도 모르는 게 말이 되냐는 글을 쓰며, 동년배 / 동년차보다 월등히 많은 지식을 가졌다는 것을 과시하기도 한다. "역시 OO님이시네요" 와 비슷한 주접 섞인 반응들을 보며 "그렇지. 나는 안 그렇지" 라는 자의식에 취하는 것은 덤.
어느 순간 이들은 문제의 "실력을 인정받는 것" 이 개발의 목표가 되어 버린다.

당장 눈앞에 들이닥친 문제를 해결하기보다, 본인이 남들보다 더 많이 알고, 더 많은 경험을 해 봤다는 것을 인정받기 위해, 옆자리의 동료를 협업 상대로서 대하는 것이 아닌, 일종의 승복을 받아내기 위해 개발을 하게 된다고.
회의부터 시작해서 일상적인 대화에서도 각종 프레임워크와 용어가 튀어 나오며, 이런 작은 규모의 문제를 해결하기 위해 이런 복잡한 도구를 도입할 필요가 있냐는 반응에는 분명 몰라서 내빼는 거라는 비아냥은 덤. 한마디로 이들은 문제의 해결이 아닌 동료와의 실력 경쟁 - 정확히는 섀도우 복싱에 훨씬 더 가깝지만 - 에서 승리하기 위하여 도구를 학습하고 선택하게 된다.
당연히 이렇게 학습하고 고른 도구와, 이를 통해 개발한 결과물들은 실제 문제와는 완전히 동떨어진, 소위 오버엔지니어링에 가까워진다. 당연히 이러한 이유들로 선택한 도구들은 본인이 현재 가진 역량을 훨씬 넘어선 역량을 요구하는 경우가 많을 것이며, 당신은 당신의 역량을 넘어선 도구를 선택한 대가를 치르게 될 것이다. "유지보수" 라고도 하는 그것.
경쟁이라는 목표를 빼면 무엇이 남는가
개발자를 계속하는 이유가 옆자리의 동료를 상대로, 커뮤니티의 구성원을 상대로 승리하는 것이라면, 혹은 자신보다 연차가 더 많이 쌓인 시니어들에게 연차에 대비하여 실력이 가장 우수한 사람 중 한 명이라고 인정받는 것이라면, 만약 경쟁할 동료가 없어지고 인정해줄 시니어가 사라진 세계선에서, 당신이 개발자라는 직업을 계속 할 이유가 존재하는가?
개발자는 티어제가 존재하는 게임과는 다르다.
그저 흔하디 흔한, 사무실에 앉아서 일 하는 직종 중 하나일 뿐이다.
게임과는 달리 당신의 개발자 사회 안에서의 "티어" 가 어디인지 명확하게 구분지을 수 있는 승급전도 존재하지 않으며, 당신의 티어가 어디인지에 대해 그 누구도 궁금해하지 않는다. 당신이 속한 개발자 커뮤니티 바깥에서, 머릿속에서 홀로 그려낸 - 망상에 가까운 - 티어제에서 자신이 이렇게 높은 티어에 속한다고 제 아무리 주장해봤자 그들은 별종 한 명 보는 기분으로 당신을 바라볼 것이며, 성격 좋은 사람들 일부만이 알았으니 제발 입 좀 닥치라는 의미로 "그래 너 엄청 잘 해" 라는 말 한 마디 정도를 던져줄 것이다.

실제로 이러한 마음가짐으로 공부를 해 온 사람들 대다수가, 현업에 들어서며 상술한 것들을 깨닫는 순간 공부를 계속할 의지를 잃는다. 당연하다. 그들의 의지는 타인에게서 왔지, 자기 자신에게서 나오지 않았기 때문이다. 인정 (사람 간의 정을 의미하는 그 인정 말고) 을 베풀어 줄 상급자나 동료가 없는 곳에서, 이들이 개발자를 지속할 이유도, "뛰어난 개발자" 가 되어야 할 이유도 없는데, 무엇 하러 자신의 시간을 쪼개어 노력하겠는가.
계속해서 말하지만, 개발자를 포함한 대다수의 직종에서 "능력에 따른 티어제" 는 존재하지 않거나, 설령 티어제 비슷한 것이 존재할지언정 그것이 게임처럼 객관적인 데이터 - 승리한 판 수, 킬 수와 같은 - 에 기반할 것이라는 보장 또한 존재하지 않는다. 당신보다 개발 실력이 모자랄지언정 협업을 잘 하거나, 팀을 잘 이끌거나, 혹은 아첨을 잘 하는 사람이 더 인정받고 높은 티어에 오를 수도 있다는 말. 앞서 이야기하였듯 당신의 이러한 "인정에 목 마른" 행동으로 인해 생겨난 적들은 어떻게든 당신을 낮은 티어로 끌어 내리기 위해 수단과 방법을 가리지 않을 것이라는 것 또한 고려하였을 때, 과연 이들은 개발을 계속할 동기를 꾸준히 부여받을 수 있을 것인가.
내가 저것보다는 그래도 낫지
명시적인 티어제 없는 곳에서, 우월한 사람으로서 인정받기 위해서는 자기보다 아래에 위치한 사람을 규정하는 과정이 수반되어야 한다. 그래야 자신이 "누구보다" 더 위에 있고, 그렇기에 자신은 우월하다고 말할 수 있지 않겠는가?
"A는 그냥 못 해. 성격도 애새끼같아서 노력도 안 하고 뭐 달라 하는 한심한 놈이야."
"B 때문에 열받아. 제대로 할 줄 아는 게 아무것도 없으면서 개발자래."
"내가 뭐 리누스 토르발즈는 아니지만 적어도 B와 C 보다는 낫지."
위의 글들과 엮어서, 만약 적들이 당신이 그리도 깔보던 A나 B와 다를 게 뭐냐고 말하면, 당신은 분명 속칭 "긁힌" 나머지 당신이 왜 A,B 와 동급 취급을 받아야 하냐며, 당신이 이들보다 나은 이유를 수십 가지씩 긁어모아 들고 올 것이다. 한동안 당신은 커뮤니티에 그들과 동일한 인간 군상을 온갖 모멸적 단어를 대동하여 까내릴 것이고, 당신과 친분이 있는 사람들의 "맞아 당신이 어떻게 A,B랑 동급이야" 라는 반응을 보며 위안을 받을 것이다.
매우 재미있는 점 중 하나라면, 대부분의 개발자들은 스스로의 정치 성향을 "진보" 라 주장하는데, 진보의 가장 큰 가치 중 하나가 바로 "평등" 이라는 점이다. 정상적인 진보성향의 정당 지지자라면 B 또한 A와 평등한 한 명의 시민이며, B와 같은 사람 또한 잘 살수 있게끔 만들어 줄 수 있는 세상을 주장해야 함에도 불구 평등에 정면으로 반대되는, "암묵적 티어제" 를 선호하는 아이러니가 터지게 되는 셈.
개발자 OOO가 아닌, 나 OOO
당신은, 지금 이 순간부터 개발자가 아니다.
당신이 여태껏 갈고 닦아온 개발 지식과 경험은 이제 존재하지 않는다.
당신을 인정해주고 추켜올려주었던 사람들 또한 존재하지 않는다.
연차와 나이에 대비해서 많이 알고 실력도 좋은 나는 존재하지 않는다.
이러한 상황에서, 오로지 순수한 "나" 자체만을 두고,
"나는 어떤 사람이다" 라는 걸 이야기할 수 있는가?

당연히 쉬이 대답하기 힘들다.
연차와 나이에 비해 많이 아는 "나" 와 같이 타인에 의하여 규정되는 "나" 가 아닌, 어떤 것을 좋아하고, 어떤 것을 싫어하며, 어떠한 환경에 놓였을 때 안정감을 느끼고 어떠한 환경에 놓였을 때 불안감을 느끼는지와 같은, 타인과는 완전히 분리된 순수한 "나" 에 대하여 말하라고 하면 대부분의 이러한 부류들은 쉬이 대답하지 못 한다.
타인에 의해 나를 규정하는 것은 쉽다.
별도의 노력을 하지 않아도, 타인의 호감을 사는 순간 긍정적인 "나" 를 공짜로 얻을 수 있다. 상술하였듯 유능하고, 또래에 비해 우월한 실력을 갖춘, 야망 있는 "나" 를 공짜로 얻을 수 있다.
허나 세상에 공짜가 어디 있겠는가.
의도하지 않았음에도 밤마다 생겨나는 크리퍼마냥 적은 생겨나기 마련.
돈을 뿌려도 적이 생기는데, 뿌릴 돈도 없는 당신에게 적이 생기지 않을 이유가 있는가.

그들에 의해 규정되는 당신은 능력에 비해 거만하기 짝이 없고, 조금만 좋은 소리를 해 주면 옆에 붙어 알랑방귀를 뀌며, 자기 소신이 없기에 좋은 말 몇 마디 가지고 호구같이 낚아먹기 좋은 존재일 것이다. (일본에서는 이런 부류를 "팔방미인" 이라 부른다 카더라.) 좋은 말만 듣고 싶어하는 옹졸하기 짝이 없는 성격 탓에 놀려먹기 좋은 존재이기도 할 것이고, 튀어 보이고 싶어하는, 소위 "힙스터 감성" 으로 인해 부적절한 도구를 선택하여 팀을 곤궁에 빠트리는 트러블 메이커로도 비추어 질 수 있을 것이다.
적에게까지 인정받는 사람은 흔치 않다. 그 누구도 반박할 수 없는, 부동의 1위를 지킬 수 있는 수준의 결과를 내놓아도, 적들은 그 결과를 "뽀록" 혹은 "운빨" 이라며 부정하기 바쁠 것이다. 뽀록도 운빨도 아니라면, 부모빨이 나올 것. 적에게까지 인정받는 사람이 흔하지 않은 이유이다.

이후, 이들은 주로 두 가지로 나뉜다. 적에게까지 인정받기 위해 자신의 인생을 분노로 갈아넣는 사람과 (떠오르는 사람이 하나 있긴 한데 참자) 적에게서 귀를 닫아 버리는 사람. 두 가지 모두 바람직한 결과는 아닐 것이다.
결론
처음부터 대단해 보이려 개발자를 직업으로까지 삼는 관심종자는 잘 없다.
설령 해커가 등장하는 영화 등에 매료되어 개발에 입문하였을지언정 영화에서 나오는, 소위 후드 티 입고 토스트 물며 정부나 대기업을 해킹하는 "간지나는" 해커들의 모습은 픽션임을 깨닫고 나가 떨어지는 경우가 많기 때문. 마인크래프트 서버를 비롯한 게임 모드 개발로 뛰어들었건, 백준 풀면서 흥미를 느껴 뛰어들었건 이들의 시작은 분명 자신만의 무엇인가를 만들기 위해, 혹은 게임 모드 개발 그 자체에 대한 흥미였을 것이다.
소위 이름 좀 날렸던 개발자들에 대한 동경, 미리 프로그래밍을 공부해 갔던 탓에 학교에서 컴퓨터 좀 하는 사람이라며 칭송받았던 경험, 실력을 증명하며 쌓이는 명성 등이 쌓이며 점점 그들은 "대단해 보이기 위해" 개발을 하는 사람으로 변해 간다. 서서히 가열되는 물에서 죽음을 맞이하는 개구리마냥.
직장에서는 "대단해 보이기 위해" 개발하는 사람을 원하지 않는다. 대단해 보이는 자신을 일구어 내기 위해 옆자리 동료를 경쟁상대로 보는 사람과 그 누가 협업하고 싶어 하겠는가. 대단해 보이려 시작한 오픈소스 프로젝트들은 대부분 2년, 3년간 방치된 상태로, 빌드조차 되지 않는 처참한 완성도와 함께 방치되어 있기 마련이다. "대단해 보이기" 위해서는 일단 완성되어야 하는데, 그 완성까지 그들을 지탱할 동기가 없기 때문.
나는 조심스럽게 이들에게 키보드를 잠시 내려둔 후, 아무것도 하지 않은 상태로 며칠을 보내보기를 추천한다. "개발" 이라는, 일상 속 가장 큰 비중을 차지하던 일을 눈 앞에서 치운 후 당신이 무료함을 달래기 위해 하는 일련의 과정들을 기억해둔 후, 그것들을 통하여 자기 자신을 먼저 규정하기를 바란다. 좋은 평가를 위해 얽매여 개발을 하는 사람으로 살아가는 것만큼 불행한 일이 어디 있겠는가.