brunch

You can make anything
by writing

C.S.Lewis

by 메튜 Feb 14. 2018

직업으로 스스로를 정의할 수 있을까,

세상에 직업이란 정의가 없다면.

최근 유라임을 2년정도 개발하고 한국의 운영팀에 인수인계를 진행하면서 실상 이직준비를 하고 있다. 본래 스타트업이라는게 전력을 다해 집중해야 그나마 될까말까라는 사실을 잘 인지하고 있지만, 나는 유독 개인적인 욕심을 부리면서 사업적인 측면보다는 엔지니어링과 UX적 기술에 더 욕심이 나기 시작하면서 이직을 결심했었다. 그렇다고 스타트업을 포기하는 것은 아니고 보다 더 장기적으로, 기술적인 부분이 충족되고 나서 더 집중하려고 했다.


사실 일을 하면서 이직준비가 당연히 병행될 줄 알았지만 실상 이직문제는 별개의 문제였다. 나의 경우는 부끄럽게도 미국 회사와 제대로된 면접을 진행해 본 적이 한번도 없고, 사실 자신도 없었다. 그나마 몇몇 피칭이나 API제휴를 위해 전화통화 및 PT를 진행했건만 거기서 오는 이상한 내 말도 안되는 영어가 전부였을 뿐이다. 한국에서 조금의 경험이 내겐 이상한 자만이 되어 돌아왔고, "이직, 그게 뭐 어렵겠어" 라는 이상한 자신감만 가득했을 뿐이다.


이직준비에 사실상 들어간 것은 지난 11월, 모 VC의 batch에서 연달아 세번을 떨어지자 자신감이 많이 상실되었다. 하지만 딱히 여기서 포기하려 하지는 않았다. 아직 시장에 빛을 바라기에는 내 제품이 그 만큼의 고객 입장에서의 이해도가 떨어질 만도 하다는 생각. 더 테스트하고 더 다듬어야 겠다는 생각, 조금의 친숙한 고객이라도 만족시켜야지 라는 생각 말이다. 그리고 꼭 그게 지금 내가 일확천금을 원해서 당장에 할 필요도 없고, 당장 유라임 같은 경쟁사(?) 가 나올 것 같은 생각도 들지 않는다. 나도 지금 내 제품을 이렇게 어렵게 만들어 놔서 고생아닌 고생을 하는데, 누가 또 다시 본인의 소중한 시간을 들고 와서 고군분투 할까. 뭐 그럴 사람도 비단 존재하지 않는다는 보장은 없지만.


하지만 분명한 것은, 유라임 개발을 2년간 진행하며 나는 내 엔지니어링 기술에 대한 한계를 느꼈다. 사실 나는 오래전 C++을 통해 프로그래밍 공부를 처음 시작했으니 분명 모든 언어가 이를 근간으로 할 줄을 알았다. 확실히 이것이 오산이었다는 것을 나는 스칼라 류의 함수형 프로그래밍 공부하며 느꼈다. 3년을 넘게 공부했지만 아직도 익숙하지 않다. 아직도 내 머릿속은 자바로만 자리잡고 있다. 자바스크립트, PHP JSP ASP ASP.NET등 많은 스크립트 언어를 실무에서 다뤄왔지만 난 그것이 내 전문분야라는 생각을 하지 않았다. 그나마 ES6는 요즘 너무나 재밌어서, 덕분에 리엑트에 푹 빠져있던 것도 없지않아 있다. 하지만 자바는 과연 내가 전문가일까? 얼마전 해시함수를 공부하며 자바 안에 이가 어떻게 구현됬는지 조차 얼추만 알고있던 내가 부끄럽게 여겨졌다.


언어를 공부하다 보면 그 패러다임을 이해하고, 그것이 정말 내 스스로 생각했을 때 맞다는 것이 들어야지, 사실 그게 맞다 생각한다. 없지않아 트랜드 적인 부분도 있지만, 아직 유행이란 것에 민감하지는 않아서 yaml같은 간단히 배울 수 있는 스크립트 이외에는 별로 접근하려 들지 않았다. 결국 나는, 내가 자바를 "잘" 안다는 가정하에 자바만 있으면 모든지 가능해(!) 라는 생각이 기본적으로 자리잡고, 이를 바탕으로 JVM위에 돌아가는 언어 중에 뭐 요즘 트랜드하다는 스칼라좀 파보자 해서 수년을 써봤지만 그 근본적인 이해를 하지 않은채 무턱대고 언어를 가져다 쓰다보니, 결국 코드 자체는 이건 스칼라적인 코드인지 자바인지 헷갈리게 되었다. 이럴 거면 자바를 쓰지 왜 그랬을까. 분명 프로그래밍의 귀재인 주변의 지인들이 좋다, 써라, 라는 식으로 많이들 말씀하셨는데 이런 이해없이 사용하는 나를 가만히 지켜보고 있자니 내가 대체 왜 이러고 있을까 라는 생각이 끝없이 들었다.


그리고 이는 결국 실무적으로도 반영됬다. 사실 '혼자' 개발하는 자체는 충분한 실력이 뒷받침 되어야 한다고 생각한다. 나는 너무나도 스스로가 풀스택 개발자라고, 사실 SI시절 잡다하게 유지보수를 하다보니 무차별적으로 언어를 다루고 백엔드 프론트엔드 디비 할것 없이 다뤄왔을 뿐이지, 그렇다고 내가 어느 한 분야에 전문가인가? 그건 또 아니다. 그저 어려서부터 웹개발에 대해서는 전체적인 흐름을 좋아했고, 설계, 배포, 개발 등에 관심이 있어서 공부했을 뿐이지, 어느 한쪽으로 정통한 것이 없었다.

"코딩호러의 이펙티브 프로그래밍" 중에서.


나는 그런 '정통'의 분야를 두 가지에서 잡아왔다. 프론트앤드 개발과 대용량 처리에 대한 아키텍처링이다. 때문에 2017년 하반기에는 리엑트를 너무 재밌게 썼었고, 여기에서 오는 FLOW와 같은 새로운 패러다임을 아주 즐겁게 봐왔었다. 대부분은 내가 워낙 즐겁게 봐왔었기 때문에 이해하기는 그리 어렵지 않았다. 자바스크립트를 "주력"으로 처음 사용해보다 보니 코드가 개차반이었지만 조금씩 리펙토링을 해왔고 어느정도 모듈화에 익숙하다 보니 매일은 아니지만 만족스러운 코드가 나오곤 했다. 그런 재미를 느끼고 나니 프론트엔드 기술에 커다란 관심을 가지게 되었다.


후자로 대용량 처리에 대해, 이건 사실 실무적인 입장인데 대용량 유저를 다루던 팀에서 약간은 DevOps적인 팀에서 함께 하다보니 장애처리에 대해 많은 관심이 있었다. 대학원에서도 분산처리나 클라우드 컴퓨팅에 대해서 공부를 했는데, 사실 이건 백엔드, 즉 api서버라기보다는 전체적인 설계의 입장에서의 관심이었다. 그런데 사실 내가 막 이렇다 할 자신은 없었다. 그래서 충분히 공부를 한 후에 유라임 개발에서 마이크로 아키텍트를 기반으로 백엔드를 설계하고 구성했는데 이것이 증명이 되려면 당연히, 유라임 자체가 어느정도 구동되는 서비스가 되어야했지만 아직은 그렇지 못했다.


이런 생각을 기반으로 이직준비에서 나는 세 가지 직업에 관심을 가지기 시작했다. 프론트엔드(풀스택), UX엔지니어, 그리고 백엔드였다. 그렇게 지난 3개월을 이리저리 면접을 보며 다녔지만 웃기게도 HR이외에 내가 실무에서 무엇을 했는지에 대해 관심을 가져주는 곳은 거의 없었다. 결국 내 스스로의 실력을 검증하기 위해서는 프로그래머의 일반적인 알고리즘, 자료구조를 잘 다뤄서 많은 코딩 문제를 풀고 이를 잘 설명하는게 관건이었다.


코딩이나 문제해결 능력은 그렇다 치자. 결국 내게 더 중요한 것은 무엇일까, 직업이란 자체가 나의 전문성을 표현할 수 있을까, 당최 내가 원하는 그런 스킬의 방향은 어떤 것일까, 엔지니어? 디자이너? 사업가? 기획자? 분명 한가지에 집중해도 될까 말까한 것은 사실이지만 내가 원체 산만한 이유도 있고, 실상 나는 복합적으로 융합을 하는 자체에서 희열을 느끼는 편인지라 어떠한 분야를 딱 정하는 것은 스스로도 무리가 있다고 생각했다. 차라리 프론트:백엔드:디자이너:사업가:아키텍터 의 비율이 4:3:2:1 이라고 하는게 낫지. 아 물론 이런 자체가 남에게 보이는 것은 잘 알것 같다. 건방져 보인다. "너 그중에 하나라도 '제대로' 할 줄 아는것은 뭔데?" 라고 물어보면 뭐라고 대답할까? 내가 몇 번씩이나 인터뷰를 보며 프론트던 백엔드던 즐거워 합니다 라고 해도, 미국에서는 그 자체가 전문성이 떨어져 보이는 것 같다. 어떤 HR담당자는 하나만 정하라고 다그치기도 해서 아에 이력서 두개를 만들어서 따로따로 직무에 지원하곤 했다.


그렇게 넣고나서 보니 각 분야에 대한 부족함이 크게 느껴진다. jQuery가 나오고 나서 플러그인 하나 제대로 작성해 보지 않고 뭐 클로져가 어떠니 디바운싱, 스코프 그런걸 고민해 본적도 없는데 이런 부족부분이 계속 보인다. 백엔드도 마찬가지다. 당장에 내 전문분야가 아닌 디자인은 더 심하다. 사업은? 말할 것도 없다. 


하지만 한 가지 확실한 것이 지속해서 느껴지곤 했다. 결국 나는 부족하고, 다른 분야를 더 끌어올리려면 그쪽으로 좀 더 깊게 실무를 하던 공부를 하던 익히면 되는 것이고, 만약 실무를 하고 싶으면 그쪽으로 선택을 하면 되는 것이다. 그래서 지금까지도 백엔드나 대용량 처리에 대한 욕심을 버리지 못했었고, 스타트업(=사업)도 끌고 나갔지만 서론에서 언급했던 것처럼, 최소한 충분히 2년간 스타타트업 하며 백엔드와 대용량 처리에 대한 경험을 어느정도 했다고 생각한다. 그리고 생각외로 이쪽은 이론적인 부분이 더 강해서(?) 공부를 하는 편이 더 좋을 것 같다는 생각이다.


그리고 내겐 더 강점인 부분, UX도 아닌 그냥 사용자에게 친숙한 UI를 공부하고 이를 접목시킨 프론트엔드, 나는 그쪽이 더 좋다고 본다. 그리고 이쪽이 더 자신있게 공부할 수 있는 부분이라고 판단했다. 이쪽으로도 더 보여줄 것이 많고, 얘기할 것이 많다. 물론 또 자바스크립트의 그 엔지니어링 적인 부분은 더 많은 공부가 필요하겠지만, 괜찮다. 


세상에 '직업' 이라는 정의가 없다면 내가 원하는 것이 무엇일까, 내가 원하는 이상향은 무엇일까, 내가 살아가는 이유가 무엇일까, 결국 취업도 이런 문제로 귀속되는 것 같다. 나는 웹이 좋고 웹을 통해 사람에게 필요한 서비스를 만들고 싶다. 조금 더 구체적으로, 유저들이 행복할 수 있는 서비스를 만드는 것이 내 목표이다. 웹에 필요한 기술들, UI/UX/백엔드/프론트엔드 및 각종 언어들, 프레임워크 리눅스, 분산처리, MSA, 하물며 사이트 기획과 SEO, 마케팅, 광고 등등 모든 분야가 재미있고, 나는 이런 복합적인 것들을 적용시키는 자체가 내가 원하는 것이다. 


혹자는 폴리글랏(ployglot) 프로그래머라고도 하는데 글쎄, 실상 많은 부분이 지금까지 주변에서 듣기로는 "하나라도 제대로 해" 라는 소리를 많이 들었다. 나도 노력하지 않은 것은 아니다. 하지만 기술에 있어서는 그 fancy함이 보이는걸, 그리고 그럴 때마다 솔직히 접하고싶고, 공부하다 보면 무아지경으로 빠져든다. 예전에 토비님의 스프링 책을 보고, 매번 베게로만 사용하던 그 책이 어느 순간 엄청나게 재밌는 소설처럼 읽혀져서 순식간에 절반을 득파했던 적이 있다. 그런 경험이 한 둘이 아니다. 당시 내게 있어서 DI 나 AoP는 센세이션이였고 그런 의존성 주입 개념은 Play를 주력하는 지금에도, 혹은 다른 프레임워크에도 많이들 주입되어서 이를 접하는 데에는 큰 어려움이 없으니 그런것처럼 많은 언어, 라이브러리, 프레임워크에서의 개념들이 이어진다. 그래서 더 재밌다. 그간 내가 삽질했던 게 결국 이런 패러다임 내지는 창작자의 디자인 패턴을 따르는 길이었다는 것이 말이다. 그리고 이를 알게됨으로써 과거의 내 삽질이 가치있었음을(?) 이해하게 된다. 그렇게 한걸음 더 발전해 나간다. 이런 배움에는 딱히 백엔드 프론트엔드의 구분도 없을 뿐더러, 수학, 과학, 인문학 광고학 경영학 등 많은 분야의 그것과도 닮아있으며 급기야 어떤 역사에서까지 그 흐름이 이어진다.


요즘 간혹 들리는 말로 '덕업일치' 라는 말이 있다. 사실 나는 이게 앞으로의 스스로를 대변할 수 있는 말이 아닐까 싶다. 내 욕심일 수도 있지만, 웹서비스를 만드는 전체를 다루고 싶다. 그리고 그게 사실 내 직업이고, 내 사명과도 같다. 머릿속의 그 서비스를 실제로 끄집어 내는 일을 하는 엔지니어, 딱 그정도로 정의하고 싶다. 그리고 조금은, '직업'에 극한되지 않은 내가 좋아하는 것들을 흡수할 수 있는 삶을 살고싶다. 그게 다이다. 그리고 끝없이 스스로에게 묻는다. "지금 내가 즐거운 일/공부를 하고 있는가?" 그래도 아직은, yes다.


글쓴이 메튜장 | matthew@urhy.me | http://www.matthewlab.com

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari