
소프트웨어 개발자로 살아남기
내가 생각하는 미래의 개발자들은 성장
이란 키워드보단 살아남기
가 더 맞는 표현이지 않을까 싶다.
2024년 연말 즈음에 이 글을 참조해서 올라왔던 개발자 회고 글을 참 재밌게 봤던 기억이 난다. 그 내용을 상기해보면, 우리가 일반적으로 웹 개발자들의 유형을 분리해 보았을때, 아무래도 아직까지는 구분 상 프론트엔드냐 백엔드냐로 구분되곤 한다.(특히나 회사에 소속되어 있는 개발자라면) 이 글은 앞으로는 Software Engineer, Product Engineer, Platform Engineer로 구분되어야하는 이유를 담고 있다.
스타트업, 대기업을 구분하지 않고 약 5년 정도면 프론트, 백과 특정 산업에서 구분되던 자신의 분야에서 어느 정도 노하우도 생기고, 소프트웨어적인 요구사항에 대해 적당히 좋은 품질의 소프트웨어를 만들 수 있는 역량도 갖출 수 있게 된다고 한다.
보통 이 시점에서 성장
이라는 키워드의 방향성을 고민하게 된다고 한다. 이전까지는 현업에서 사용되는 프레임워크나 스킬들. 다양한 소프트웨어 스킬들을 터득하는데에 목적을 두기 때문이다.
이 때 직업이나 커리어에 대한 정의를 Frontend, Backend Engineer에서 위에 언급된 분류로 확장시키면 그 성장에 대한 방향성이 잘 정해질 것 같다는 내용으로 요약할 수 있다. 처음으로 돌아와서 내 의견을 약간 섞자면 이미 이 시점에서 개인에게는 직업에서의 성장
이라는 키워드가 뒤쳐지지 않기 위해 자신의 무기를 갈고 닦는 살아남기
에 가깝지 않나 싶다. 또 5년이라고 꽤나 넉넉하게 써뒀지만, 최근엔 AI 생성형 도구의 발전으로 개인적으론 3년 정도면 중니어(?) 정도의 실력을 갖추게 되는 것 같기도 하다.
당신의 무기는?: Software, Product, Platform
조금 더 자세히 살펴보면, 웹에서의 개발자가 본질적으로는 아래처럼 구분될 수 있다.
- Software Engineer: 웹에서의 전문가. 풀스택 개발자로 치환가능하다. 소프트웨어의 성능 개선, 빌드 최적화 등 고수준의 이해를 바탕으로 기술적으로 고도화된 설계를 중요시 한다.
- Product Engineer: 제품을 중시하는 엔지니어. 사용자 문제를 해결하는 기능을 구축하고 출시와 유지 관리에 집중한다. 여러 직군과 소통하면서 문제 해결에 집중하며 사용자의 심리와 제품 개선에 대해서 고민한다.
- Platform Enginner: 프로그래밍의 기술적인 문제 해결을 중시한다. 자동화를 통해 생산성을 점검하고, 로깅 시스템이나 리소스 관리를 점검하는 등 기술적인 해결에 대해 고민한다.
읽다보면, 이거 그냥 Software Engineer는 백엔드, Product Engineer는 프론트, Platform Engineer는 DevOps 아니야? 싶기도 한데 하나하나 놓고 생각해보았을 때 난 생산성 향상으로 인한 소프트웨어의 접근 방법이 더 고도화되었다고 해석한다.
가령 기존 구분에서는 프론트 파트에서 db를 건드리거나 API 로직을 스스로 다루는 걸 못미덥게 생각할 수 있는데 Product Engineer 관점에선 이 모든 걸 다 다룰 수 있어야 하는 게 맞다.
Product Engineer: Web3Boy
나는 스스로 두말할 것도 없이 프로덕트 엔지니어에 가깝다고 생각한다. 처음 개발을 시작했던 것도 대학교 시절, 기업가 정신 수업에서부터 시작했던 버스 승객이 겪는 무정차와 하차태그를 해결해주는 앱이었다.
2024년 KBW 행사로 뵈었던 블록체인 인프라 스타트업 대표님께 커리어 고민을 털어놨던 적이 있었는데, 그 때 말씀해주셨던게 모든 소프트웨어의 존재 가치는 조직이나 팀의 수익 창출에 기여해야한다고 하셨다.
적어도 Web3에 한정짓는다면 나도 Product Engineer로서 그 의견에 100% 동의한다. 개인적으로 느끼기엔 Web3에서 대부분의 프로덕트의 목적이 어떻게 하면 홀더(유저)들을 프로젝트에 더 참여시킬 수 있을까?(=유동성을 늘리기, 돈 많이 벌기)이기 때문이다. 어떻게 보면 앱테크 같은걸 즐겨하는 유저들에게 Web3라는 좋은 브랜딩으로 통 크게 벌어주는 걸 잘 포장한 참 신기한 산업이다.
내 지금까지의 커리어에서 한 팀에 3년 혹은 그 이상으로 오래 있었던 적은 아직 없지만 있었던 모든 팀에서 사용자에서부터 고민을 시작했고, 팀의 복합적인 상황에 맞춰 최적의 문제 해결을 도출해 내는데 기여했다.
아, 여기서 프로덕트 엔지니어가 다른 구분에 비해 기술적인 역량 향상에 리소스를 덜 쓰는게 아닌가? 라고 생각할 수 도 있는데 그렇다고 성장에 소홀히 하는 것은 아니라고 말하고 싶다. 필요하다면 나는 새로운 기술이나 역할도 마다하지 않는다. 프리랜서로 있던 팀에서는 프로덕트 운영을 위해 스마트 컨트랙트 개발과 Node.js로 운영 자동화 툴을 마련하고 코드를 유기적으로 설계하는데 더 집중했던 것 같다.