머신러닝보단, 풀스택.

개발의 길을 걷다보면 항상 기술의 늪에서 망설이게 된다. 오래전부터 그랬다. 좋아하는 것과, 기술은 항상 그 격차가 있기 마련이다. 플래시나 액션스크립트, 실버라이트 등이 좋았을 때에도 실제로 기술을 접해보니 ‘스크립트’ 라는 자체가 익숙치 않아서, 그리고 아무리 레퍼런스북을 봐도 어떤 기본적인 원리를 이해하지 못해서 등 제대로 된 스텍을 찾지 못했다. 하지만 내 커리어는 운좋게 자바+스프링 으로 나가서 나름대로 도메인 지식만 있으면 어디던 투입되서 시스템을 설계할 수 있는 능력을 갖추긴 했다.

이를 기반으로 지난 3~4년간 스타트업을 했었다. 개인적으로 기술적인 부분에 있어서는 물론 풀스택의 러닝커브 때문에 삽질한거 따지면 족히 1년은 소비한 것 같다. 그것도 기술적인 욕심에서였다. 내게는 스케일 업/다운이 그야말로 환상적으로 느껴졌다. 유저가 하나도 없는 시스템에서도 대용량 트래픽 처리를 기반으로 시스템 디자인에 매력을 느껴서 이리저리 설계를 하다보니 정작 중요한 실제 제품 개발을 놓친 것이다.

다시 대학원에 오고 나서, 이왕 공부하는 일년이란 시간동안 머신러닝이나 더 공부해보자 라고 생각하고 한 2년정도 수학공부를 틈틈히 하고 실제로 머신러닝 수업을 들은지 한 한달정도 됬다. 그리고 지금까지의 내 생각은, 이렇게 머신러닝을 이론적으로 접근하는 것으로 직업을 삼는 것은 상당한 리스크와 더불어 내가 원하는 바도 아니라는 것이다.

결국 나는 계속해서 웹의 시스템을 이해하고, 이를 end-to-end로 구축할 수 있는 것을 기반으로 가져가야 한다는 것이다. 사실 어쩌면 이게 맞다. 지금까지 나는 이를 comfort zone이라 생각해서 새로운 방향을 틀어야 한다는 생각을 계속해서 해왔다. 그게 데이터 엔지니어링과 머신러닝 엔지니어링이었다. 그런데 실제로 그쪽 도메인에 스스로를 한정시킨다면? 과연 내가 그걸 가지고 평생 만족할 수 있을까? 지금은 사실 데이터 과학이라는 자체도 적어도 peak는 넘어서 하향세인데, 이렇게 domain-specific한 분야는 수요만 충족되면 내려가는 것도 금방이라는 것이다.

여러가지 생각이 들었다. 정말 내가 좋아하는 것이 무엇인지. 사실 세상에 없거나 더 편리한 서비스를 잘 조직된 UI/UX속에서 만들고, 끊김없는 대용량 서비스를 최저의 비용으로 구축하는 것이 내 전체적인 기술의 맥락이다. 머신러닝이나 데이터 과학은 단지 하나의 도메인일 뿐. AI용 프로덕을 만들고 싶은 것도 비슷한 맥락이다. 머신러닝을 위한 새로운 이론이나 최적화를 위해 수학 공식을 끄적이는 것은 본래 한 적도 없었고 굳이 이걸가지고 끙끙대면서 내 미래로 가져갈 필요가 없다는 것이다.

참 어쩌면 데이터과학, 데이터엔지니어, 머신러닝 엔지니어 이런 것들이 실제를 알기 전에는 그저 겉으로만 화려한 그것이 아니었을까. 그래서 부랴부랴 링크드인, 개인홈페이지 등에서 이를 내 ‘커리어’ 목표로 한다는 것을 지우기 시작했다. 사실 기존부터 의구심은 있었다. 요즘 좀 뜬다고 해서 굳이 내가 할 필요가 있는가 라는 생각에서 말이다. 그냥 난 풀스텍 엔지니어다. 좀 많이 할 줄 아는 풀스텍 엔지니어 말이다. 디자인, 백엔드, 프론트, PM, Marketing, Operation, Business, Finance뭐 이런 제품의 전반적인 것들을 모두 다루는 것 말이다.

역시나, 현실과 이상속에는 거리가 분명히 존재하는구나. 좋아하는 것과 잘하는 것은 그 차이가 확연히 존재한다. 좋아하는 것이 언젠가는 잘하는 것을 넘을 수 있겠지만, 절대 단시간에 되지 않는다. 데이터과학, 머신러닝을 5년전부터 하자고 하자고 그렇게 했다가 이제서야 실제로 열어본 그 속에서는 온갖 수학들이 존재하고 이건 절대로 단기간에 할 수 있는 것도 아니고.. 그럼 내가 여기에 커리어를 올인한다면 또 다시 스타트업을 했을 때처럼 수많은 시행착오 속에 제대로된 직장을 구하기도 힘들 것이고, 시간은 부족한데 계속 붙잡고 있으니 한편으론 폐인이 될 확률도 적잖게 존재하는 것이다.

그래서 난 풀스택을 버리지 않기로 했다. 정확히는 소프트웨어 엔지니어다. 우선 그런 기본기가 되고, 커리어적 발판이 마련됬을 때 꾸준히 공부한 것에서 전환을 만드는 것이다. 더 이상 리스크를 가지고 가고싶지 않다. 올해에는 정말 머신러닝 좀 공부하고 “끝내고” 싶었는데 그게 아니다. 평생 할 수 있는 공부를 가지고 있는 것은 좋지만, 나이가 들 수록 책임을 지는 것이 많아질수록 시행착오를 최대한 적게 가져가는것이 적어도 스트레스에 약한 내게는 더 중요하다고 본다.

결론은 그거다. 욕심을 버리는 것. 한 반년정도 배운 불교 속에서 내가 한 가지 얻은 답도 그렇다. 욕심을 버리는 것. 안되는 것을 되게 억지로 할 필요가 없다는 것. 나는 내가 가진 것을 더 갈고 닦는 것. 그것이 우선되어야 하는 것이다. 모든 것에는 순서가 있듯이, 욕심으로 인해 중요한 잃을 놓치지 마는 것, 그것을 머신러닝 엔지니어라는 욕심을 내려놓는 지금의 생각이다.