붉은 여왕 가설

sejin kim·2022년 6월 25일
1

생각

목록 보기
1/2

끊임 없이 학습해야 하는 직업

흔히 개발자를 두고 '끊임없이 학습해야 하는 직업' 이라고 부연한다. 사실 따지고 보면 다른 직업이라고 해서 뭐 다르겠냐마는, 여하튼 개발자라는 직업에 대해 논한다 치면 학습, 성장, 경험과 같은 주제가 가장 중요하게 다뤄진다.

개발자라는 직업에 어떠한 동경이나 희망을 갖고 뛰어들어 보고자 하는 사람에게, '(화려하고 좋아 보이는 것 같아도) 은퇴하는 순간까지 계속해서 치열하게 공부할 자신이 없으면 살아남기 어렵다'는 조언을 하는 현업자들의 모습도 실제로 적잖이 봐왔다. 직업인으로서 꾸준히 노력하고 발전하는 것이 당연하기는 하지만, 그게 개발자라는 직업에서는 부담으로 작용할 정도라는 것도 부정할 수 없는 현실이라는 뜻일 테다. 우스개로 말하자면 '기술 배우면 밥 굶을 일 없는' 게 아니라, '밥 안 굶으려면 기술을 끊임없이 배워야 하는' 셈이다.

흔히 건축업에도 빗대어질 정도로 기술을 최우선적인 가치로 여기는 기조가 강하고, 기술 발전의 속도가 보통의 걸음걸이보다 훨씬 빨라서 패러다임 레벨의 변화가 수시로 이루어지는 격동의 현장이다 보니, 공부가 곧 생존의 수단인지라 나태함 따위는 용납되지 않는다. 극히 단편적인 모습이긴 하지만, 당장 구글링만 몇 번 해 보아도 여기 velog부터 시작해 github이니 medium이니 온갖 개발자들이 하루가 멀다 하고 치열하게 써내려간 글과 코드들이 수백 수천 페이지를 덮어 내려가고 있으니 말이다. (물론 모든 개발자들이 공개된 공간에 글을 쓰는 것도 아니기는 하다)


{ 고퀄리티⚡개발 컨텐츠 모음 }
얘기하다 보니 생각이 난 곳인데, 아마 기술 아티클들을 찾아 읽기 좋아하는 개발자들이라면 이미 알 법한 곳일 것이다. 많은 기여자분들 덕분에 감사하게도 읽을 거리가 잘 정리되어 있는데, 꾸준히 자주 방문해 읽어보고는 있지만 링크의 링크를 타고 가다 보면 정말이지 끝이 없구나 하는 생각이 든다.


그뿐인가? '스타 개발자'라는 것이 공공연하게 존재하고, 그런 사람들이 외부적으로 드러나 연예인마냥 이름이 오르내리면서 어떤 영향력까지 미치는 게 그다지 일반적인 경우는 아니다. 물론 소위 '네임드'라고 하는, 실력이 뛰어나거나 귀감이 될 만한 사람이야 어디나 있는 법이겠으나, 아무래도 비교적 커뮤니티가 잘 발달했기 때문인지 눈에 띄는 듯하다. 직접적으로 '외부 활동'을 통해 브랜딩하고 노출될 수 있다는 사실 자체가 꽤나 특이하다.

한편 '주니어', '시니어'와 같은 분류나, '초/중/고(특)급', 'n년차 개발자' 등과 같이 단계(Tier)의 구분이 유달리 노골적이고, 그것만으로는 충분하지 않거나 모호하다 싶으면 'SI'니 '솔루션'이니 '(자사) 서비스'니 구체적으로 어느 회사에서 어떠한 성격의 개발을 했는지 등도 개발자의 커리어를 판단하는 데에 있어 중요한 기준점이 된다.

회사에서 주어진 역할 정도만 충실히 소화하고 그 이상은 하지 않는, 소위 '사무직' 개발자는 거의 공개적으로 죄악시되고, 끊임없이 학습하고 성장하지 않거나 경력에 걸맞는 경험과 실력을 응당 갖추지 못한 개발자는 어떻게든 배제하려 하거나 심하면 비난이나 공격까지 하는 경우도 적지 않다. 경력, 숙련도, 실력에 따른 카테고라이징이 소프트웨어 개발 업계에만 나타나는 것은 당연히 아니지만, 유독 그게 아주 표면적으로 드러나는 편이다.

이러한 경향성은 '같은 개발자라도 그 기술적, 경험적 수준이 모두 다르다'는 판단이 보편타당하게 전제, 공유되고 있다는 점에 기인할 것이다. 그런 면에서 보면 결국 개발자들이란 본질적으로 '직업인'이기에 앞서 '기술인'으로서 지식과 기술에 대한 욕망이 짙고, 어떠한 환경에서 성장해왔느냐/성장할 수 있느냐를 가장 중요한 화두로 삼고 있다고 할 수 있을 것이다.


처음으로 회사에 입사하여 막 개발을 시작했을 때, 선임 분들과 이야기하다 'C/C++은 교양 수준 정도로밖에 해본 적이 없다'고 말한 적이 있었는데, 굉장히 신기해하고 이상하게(?) 받아들이셨던 일이 있다. 물론 지금에야 프로그래머에게 있어서 C/C++이 가지는 위상과 중요성을 조금이나마 알게 되어 이해가 가지만, 당시에는 약간의 반발감 때문이었는지 이것을 일종의 '순혈주의'가 아닌가도 생각했었던 것 같다. '어떻게 근본도 모르고 프로그래밍을 할 수 있지?' 같은.


물론 필자도 다른 개발자들만큼 지식욕이 강하고, 무엇보다 개발이라는 것 자체가 재미있고 희열을 느끼게 하기 때문에 개발자라는 직업을 택했으며 후회도 없다. 하지만 그것과는 별개로 종종 약간의 허탈함이나 어떤 두려움마저 느끼기도 하는데, '까딱하면 순식간에 도태되어 삼류 개발자가 될지도 모른다'는 생각에서다.

아닌 게 아니라 재능이 뛰어난 사람이건, 조금 부족한 사람이건 진지하게 개발을 업으로 삼은 이상, 너나 할 것 없이 절박하게 노력하고 매달리고 있다. 토이 프로젝트, 스터디 모임, 세미나, 컨퍼런스, 기술 블로그, 독서, 강의 등 수단과 방법을 가리지 않고 학습하여 성장하고자 한다. 물론 그런 와중에 성실히 회사에서 맡은 역할을 해내는 것은 말할 것도 없다.

허나 그런데도 어떤 사람들은 어쩌다 회사를 잘못 들어가버리는 바람에, 깊이 있는 기술을 다루지 못하고 어중간한 업무만 처리하다가 어느샌가 커리어패스가 꼬여 소위 말하는 '물경력'이 되어 버리기도 한다. 같은 시간 동안 비슷한 노력을 기울였다고 해도, 이름만 들어도 알 만한 좋은 회사에서 출중한 개발 문화와 환경을 기반으로 일한 사람에 비하면 아무래도 그 수준이 크게 못 미치게 되는 것이다(그런데 막상 그런 좋은 회사는 전체 중 몇 퍼센트나 존재하겠는가?). 사람은 환경에 의해 결정되는 부분이 크고, 정말 가감없이 아는 만큼만 보고 생각할 수 있는 것이 이치인지라 더욱 그렇다.

이렇다 보니 아무리 달려도 저기 앞에 보이는 사람을 앞질러볼 수나 있을지, 아니 그 이전에 달려가고 있는 방향이 맞기는 한 것인지조차 확신할 수 없게 된다. 힘이 들어 잠시 속도를 늦추거나, 아예 멈춰버리기라도 하면 제자리는커녕 오히려 한참 뒤쳐지게 된다. 다른 사람들은 뛰고 있기 때문이다.






붉은 여왕 가설, 그러나

앨리스는 당황하여 그녀와 주위를 둘러 보았다.
"왜죠? 우리는 계속 이 나무 아래에 있잖아요! 모든 것이 그대로에요!"
"물론이지." 여왕이 말했다. "그럼 어때야 하는데?"
"음, 우리 나라에서는", 앨리스는 여전히 약간 헐떡거리며 말했다.
"오랫동안 아주 빨리 달렸다면, 일반적으로 다른 곳으로 가 있어야 하죠."
"그곳은 아주 느린 나라구나!" 여왕이 말했다.
"여기서는 같은 곳에 있으려면 쉬지 않고 힘껏 달려야 해. 만약 어딘가 다른 곳으로 가고 싶다면, 적어도 이보다 두 배는 더 빨리 달려야 하지!"


루이스 캐럴의 《거울 나라의 앨리스Through the Looking-Glass and What Alice Found There》 이야기이다. 주로 진화학에서 거론되는 원리로, '붉은 여왕 가설Red Queen's Hypothesis' 이라 칭한다. 주변 환경이나 경쟁 대상이 빠르게 변화하려고 하기 때문에, 끊임없이 경합하고 진화해 적응해야만 생존할 수 있으며 그나마도 홀로는 일정한 수준을 초월하지는 못한다는 사실을 설명한다.

서두에서도 언급했듯 이런 문제가 비단 개발자에게만 해당하는 이야기는 아니겠지만, 어쨌든 이것이 꽤나 가혹한 운명이 아닌가 하는 생각이 들었다. 숨이 차게 뛰어도 낙오를 면하는 정도에 그친다니 말이다.

물론 아직 개발 경력 자체가 일천하고, 정말로 지금껏 열심히 공부하고 노력을 한 적이 있었느냐 하면, 부끄럽게도 아닌지라 아직 이런 얘기를 할 시기가 아니고 자격조차 없을 지 모른다.


Evan Moon, '개발자가 공부로 살아남는 방법'
개발자의 '공부'에 대해 다룬 에세이인데, 훌륭한 통찰이 녹아 있다고 생각해 공유드리고자 한다. 사실 이런 개발자들의 에세이들을 보면, '나는 아직 뭐 공부해본 적도 없구나' 하고 생각하게 된다.


그래서 이 '붉은 여왕 가설' 이라는 것을 무슨 피할 수 없는, 절망적인 숙명으로 받아들이지는 않으려 노력하기로 했다. 그냥 '뭐 그럴 수도 있지' 라고 생각하기로 한 것이다.

아니면 아예 생각을 바꿔서, '등산'에 비유해보는 것은 어떨까도 싶다. 초입에 서면 저 까마득한 곳을 언제 올라가나 걱정하긴 해도, '안 되겠다, 나 집에 갈래' 하고선 정말로 거기서 끝내버리는 경우는 보통 잘 없다. 여하튼 이미 산에 왔기 때문이다.

그렇게 꾸역꾸역 올라가다 보면 금방 힘도 들고 끝은 안 보이고 하지만, 어쨌든 조금씩은 계속 가고 있는 것이고, 점점 앞이나 위를 보느라 바쁘지 뒤는 잘 보게 되지도 않는다.

그러다가 어느 시점에 이르러서는 정말 너무 힘들어서, 한동안 멈추거나 아예 정상까지 다다르는 것을 단념하게 되어 이제 그만 올라가고 다시 내려오기로 할 수도 있다. 그러면 정상에 있는 사람에 비해서는 뒤쳐진 것이 맞기도 하고, 무언가 궁극적인 목적은 달성하지 못한 것이 되기는 한다.

근데 그러면 뭐 어떤가? 그동안 올라온 물리적인 사실과 증거가 어디 다른 곳으로 사라지는 것도 아니고, 무조건 정상에 이르지 못하면 지금까지의 모든 것이 부정당한다거나 하는 것도 아니다.

게다가 개발(공부)은 등산과 달리 정상이라는 명확한 종착점이 존재하는 것도 아니잖은가. 끝이 없다는 건 허무하거나 두려운 것이기도 하지만, 오히려 어디까진지 알 수 없으니 스스로 완급 조절을 하면서 목표 지점을 스스로 결정할 수 있는 것이라고 생각한다.

건강하고 안정된 정신과 긍정적인 동기부여가 되어 있어야만이 꾸준한 성장과 도전도 할 수 있는 것이다. 남들이야 뛰고 있건 걷고 있건, 일단 자신이 두려움을 이겨내지 못하면 그 자리에서 더 이상 아무것도 하지 못하게 된다.

그러니, 혹여 필자처럼 거울 나라의 앨리스마냥 조금 숨이 찬 분들이 계시다면, 모쪼록 두려움을 조금이라도 덜어 내고 꾸준히 공부하며 개발자의 길을 걸어갈 수 있었으면 하는 바람이다.

profile
퇴고를 좋아하는 주니어 웹 개발자입니다.

0개의 댓글