“**개발자”**라고 하는 직업이 있습니다. 프로그래머나 소프트웨어 엔지니어 등으로도 불리는 직업의 대표격 단어인데, 필자는 개인적으로 좋아하지 않습니다. 좋아하지 않는 이유는 단순합니다. 바로 개발자라는 단어가 제가 하는 일을 제대로 녹여내지 못하기 때문이고, 이는 제 직업을 예술가라고 소개하는 것과 별반 다르지 않습니다.
그래서 개인적으로 선호하는 명칭은 소프트웨어 엔지니어나 프론트엔드 엔지니어와 같은 엔지니어(공학자)를 포함한 단어입니다. 공학은 기술적 문제를 발견하고 이를 기술적으로 해결하는 학문을 뜻합니다. 따라서 ‘무슨무슨 엔지니어’라고 하면 어떠한 기술을 가지고 특정한 문제를 해결하는 사람을 의미하게 되고, 이는 소프트웨어를 만들어서 세상의 문제를 해결하는 제 직업을 조금 더 잘 설명하게 된다고 생각합니다.
이런 제 생각에 동조하듯, 대부분의 기업 채용공고에서는 개발자(Developer)라는 단어보다는 엔지니어(Engineer)라는 단어를 선호하고 있습니다. 코드를 작성하는 행위(개발)보다 문제를 해결하는 것(엔지니어링)이 더 중요한 가치이고, 기대하는 바 라는 것을 반증한다고 봅니다.
이러한 추세의 한켠에는 프론트엔드와 백엔드라는 분야, 그리고 React나 node.js같은 도구, Java나 Dart같은 언어도 평가하지 않게 되는 경향성도 포함됩니다. 이 지원자가 프론트인지 백엔드인지, React를 사용해봤는지 등은 엔지니어링보다는 개발능력에 집중된 이야기이기 때문입니다.
그래서 글로벌 빅테크 기업들은 개발적 실력은 최소한만 검증(e.g. leetcode)하고 있습니다. 개발에 대한 기술적 깊이보다는 서비스를 얼마나 깊게 이해하고 해결해왔는가를 더 비중있게 평가합니다. leetcode에 만점을 받았어도 입사에 실패하는 이유가 그것입니다. ‘코드를 잘 생산해내는 것’보다 ‘문제를 해결하여 비즈니스에 가치를 제공하는 것’이 더 중요하다는 것입니다.
이러한 흐름의 극단적인 예로, 대 AI 시대에서는 “프로덕트 엔지니어”라는 직군도 나오기 시작했습니다. 앞서 설명드린 내용들의 끝판왕 포지션인데, 해당 포지션에 ‘개발’은 없습니다. 어차피 개발은 AI가 해줄 것이고 엔지니어는 기술적 관점에서 문제를 정의하고 해결하여 훌륭한 프로덕트를 만들어내는, 보다 더 중요한 일에 집중할 수 있게 될 것 입니다.
“개발자”는 갈림길에 서있습니다. 이제는 더 이상 피할 수 없습니다. 기술에 집중하여 굉장한 기술적 깊이를 더하는 예술가형 개발자가 될 것인가, 아니면 실질적인 ‘문제를 해결하는' 가치에 집중하여 거시적인 관점으로 나아갈 것인가를 선택해야 합니다.