[개발] 개발자는 "새로운것을 받아들이고 익히는" 직업
스무살때 회사 선배가 차린 밴처기업에 (실수로) 발을 들이면서 몇년간 웹 개발과 C++ 개발을 하드코어하게 경험했다. 그리고 결심했다.
다시는 이 그지같은 웹개발을 거들떠도 보지 않으리라..
C++ 은 천하무적이요, 고상하며, 몸값을 올린다는 착각에 사로잡혀 아주 오랫동안 다른쪽은 거들떠보지도 않았다. 그렇다고 그 기간동안 C++의 초고수가 되었느냐 하면 그것도 아니다. 내가 아는것만 가지고도 말빨로는 어디가서 잘 안지는 수준의 C++ 개발자는 되었지만, 어느 경계를 넘어가면 자신이 없어지는 영역이 뚜렷했다. 그만큼 C++ 이라는 언어가 가학적이고 기괴한면이 없지 않아 있지만, 모든것을 소화해 낼 수준의 머리가 되지 않는다는것을 알면서도 나름 C++ 부심을 부리며 살았던것은 지금 생각하면 매우 부끄러운 일이었다.
내가 웹을 "하찮은 것" 이라며 외면하는 동안 웹 기술은 눈부시게 발전하였고, 종종 엔지니어들과의 대화에서 웹 관련 이야기가 나오면 용어부터 개념까지 전혀 이해가 되지 않아 당황하는 일이 늘어갔다. 하지만 그때에도 "C++ 부심" 을 버리지못하고 눈에 들어오지도 않는 C++17 스펙이나 들여다보며 현실을 외면했다.
오랫동안 몸담은 회사를 떠나기로 한것은, 더이상 현실을 외면할 수 없다고 느꼈을때였다. 수많은 스크립트 언어들과 새로운 웹 기술들이 외계어처럼 들리기 시작하고, AWS를 한번도 사용해보지 않은 나에게 클라우드 컴퓨팅이 점점 생활과 일속으로 파고드는것은 공포에 가까웠다. 단일 노드의 최적화보다 확장성(scalability)이 우선시되는 패러다임은 직접 겪어보지 않고는 온전히 받아들이기 어려웠다.
그렇게 3년전 나는 C++ 밖에 할줄 모르면서 오랫동안 일하던 회사를 떠나 스타트업에 조인했다. 그리고 2년후 아마존으로 왔다. 지난 3년간 나는 종종 삐져나오는 C++ 부심을 억누르며 새로운것을 온전히 받아들이기 위해 노력했다. 내가 잘 모르고 바보같아 보일때마다 "C++로 하면 이런데..." "이런부분은 원래는 이렇게 하는게 맞는데.." 하는 변명조의 말을 내밷곤 했다. 그리곤 나의 부족함을 인정하기는 커녕 자기방어적인 누추함을 드러낸 나의 행동을 되뇌이며 이내 후회했다. 그래서 이러한 방어기재를 억제하고, 배움의 자세를 갖는것에 전력을 기울였다.
그렇게 분주하게 지낸 3년동안 나는 주어지는것을 피하지않고 부딛혔다. 나름 경력자로써 자존심 상하는 상황이 수도없이 반복되었지만, 쉬지않고 실수하고 묻고 실수하기를 반복했다. 그리고 3년이 지난 지금은 정말 다양한 경험을 가지게 되었다. 모던 웹기술중 하나인 타입스크립트와 리액트를 즐겨쓰며, AWS에 serverless 백엔드를 구축하거나 파이썬, 노드, 루비, 자바로 백엔드를 구현할 수 있는 풀스택 엔지니어가 되었다. 그리고 아이러니하게도 지금은 숨어있는 나의 C++ 경력이 척추처럼 나를 지지해주고 있음을 느낀다. 고성능 C++ 개발경력을 가진 풀스택 엔지니어는 그리 흔하지 않을것이라는 생각에, 나만의 비장의 카드를 하나 품고있는 느낌이랄까?
한때는 소프트웨어 엔지니어로 성공하려면 한 기술 한가지 언어의 마스터가 되어야 한다는 말이 있었다. 이것저것 알아봐야 별거 못한다고. 하지만 그런 시대는 지났다. 이제 소프트웨어 엔지니어는 한가지 기술과 지식에 머무를 수 있는 시간이 그리 많지 않다. 이제는 "새로운것을 받아들이고 익히는 능력"을 마스터해야 한다.
3년전 C++을 떠나 스타트업에 조인했을 때, 앵귤러와 jQuery로 웹 개발을 시작했었다. 그때는 리액트와 타입스크립트의 가치를 알지 못했다. 지금 생각해보면 그때 그 프로젝트에서 리액트와 타입스크립트를 도입했었다면 훨씬 좋았을텐데 하는 생각이 든다. 리액트의 가치는 리액트를 사용해 보고 나서야 비로소 알게 되었고, 타입스크립트의 가치는 타입스크립트를 사용해 보고 나서야 비로소 알게 되었다. 그리고 지금은 이 두가지 없이 상용 웹 개발을 한다는것은 상상할수가 없다. 해보지 않고 왈가왈부하는것만큼 어리석인 시간낭비가 없다. 미래에도 끊임없이 도전하는 마음가짐을 잃지 않았으면 좋겠다.
@asbear 님의 개발 관련 경험과 관록을 잘 보여주는 글이군요.
개발 관련 철학도 존경하고, 배울 만하다고 봅니다.
좋은 글 감사.
주옥같은 말씀이시네요. 같은 it업계 종사자로서 많이 공감합니다.
p : 하나를 줄곳 팠다.
q : 그 능력이 필요함을 알게 되다.
p 는 q 의 필요조건...
전혀 다른 분야에 있지만, 한가지를 깊이 파고드는 것만큼이나 앎의 범위와 넓이를 확장할 필요가 있다는 것으로 이해했습니다. 계속 배우고 배운 것을 활용해보지 않는다면 도태될 수밖에 없죠. 대단히 공감이 가는 글이에요. 리스팀합니다.
멋져요 에즈베어님!+_+
대학시절 교수님이 항상 하는 말이 있었어요
저는 이말이 정말 충격적으로 다가 왔고 평생 잊지않고 살아야겟다 생각하고 끈임없이 현실에 안주하지 않고 발전해 나가려고 노력해요! 애즈베어님의 글을 보니 이말이 또한번 생각이나네요. 멋져요!~
이제 사실상 개발다운 개발은 하지 않지만 정말 공감됩니다. unix관리자가 간단한 학과 홈페이지정도는 직접 (심지어 디자인까지ㅋㅋ) 만들던 그런시절도 겪었죠ㅋㅋ 하지만 정말 웹기술이 엄청나게 발전했더라고요. react막 이런거. 저번에 busy라던지 소스좀 봐서 간단한 스팀잇 필터 front-end를 직접 만들어보려고 해도 기본문법부터 이해가 안되더라는ㅋㅋ 그렇다고 이걸 공부해서 하기엔 제 본업은 아니다보니ㅠㅠ C++같은 언어 잘해두는게 중요하다는거에 매우 깊게 공감합니다^^ 뭐든(이왕이면 최소 객체지향언어로) 확실하게 잘하는 언어 하나쯤 있는 건 매우 중요한 것 같아요.
오 보통 한가지 언어를 오랫동안 다져온 경력자 개발자분들은 정말 다른건 거들떠도 안하려고 하더군요... 세상은 너무마 빠르게 발전하는데요.. 500% 공감하는 글입니다^^
배움의 끈을 놓구 있는 자신을 반성케 하네요 ㅠㅠ
개발자로서 세계최고가 되고 싶습니다. 그래서 그런지 고민이 많은 날이 많네요. ㅎㅎㅎㅎㅎㅎㅎ 세계최고라기는 하찮은 실력이 매일매일 미치게 만듭니다. ㅎㅎㅎㅎ
그냥 미친척하고 달려들면 못하는 건 없더라고요. 여유가 있으면 만들고 싶은 것하면 더 잘되기도 하는데 저같은 경우 완성된 거 기준으로 aws ec2, route53, lambda 가지고 일회용 vpn 서버 프로젝트를 만들면서 꽤 가지고 논 기억이 나네요.