5년전과 비교하여
5년전 글 : https://yong-yong.net/?p=1237
블로그를 옮기면서 5년전에 쓴 스택 변경에 대한 고민글을 보게 되었다. 결과적으로 스택 변경은 하지 않았고, 풀스택 기반의 개발조직이 백/프가 분리된 조직으로 변화되었는데, 채용에 대한 난이도는 과거에 비해 40% 정도 감소한 느낌이다.
2020년까지 풀스택을 고집하다, 결국 2021년부턴 백엔드와 프론트엔드를 분리해야겠다는 결론을 내린 것 같고, 그 타이밍에 대한 고민을 하다 소중한 팀원 둘과 이별하게 되었다. 결과적으로 2023년에 분리를 시작했으니 의도적으로 늦추긴 했지만 그래도 팀원들 입장에서는 지쳤을 법하다.
왜 늦췄을까
늦췄던 이유는 단순하지만, 단순한만큼 많았다.
- 개발자가 성장하다보면 하나의 기술만으로는 더 성장하기 힘들다고 생각하는 구간이 올텐데, 그 시점에 자유도를 주고 싶었다. 백엔드를 선택하던 프론트엔드를 선택하던 그동안의 기술 기반이 결정 과정에 자신감을 주길 원했다.
- DevOps 나 Cloud Engineer, Backend Engineer, Frontend Engineer 구분 없이 모든 기술을 경험하며 성장하길 바랬다. 내가 그렇게 성장했기 때문에, 이 방법을 통해서 내가 잘 성장시켜 줄 수 있을 것이라 생각했다.
- 프론트엔드 기술의 유동성이 너무 크다고 생각했다. 잘못된 선택으로 커리어를 날렸다는 후회를 하지 않길 원했다.
- 기존 시스템이 너무 비대했다. 회사가 안정적이고 확장 가능한 단계나 상황에서 시작하길 바랬고, 그 이유 역시 팀원들에게 부담감을 주고 싶지 않았기 때문이었다.
회사의 관점에서
풀스택이 옳은 시기였다. 운영조직의 규모가 제품조직보다 훨씬 비대해야 했던 시점이었다.
더 근본적으로는 주니어를 채용해서 빠르게 성장시키고, 적정한 기간동안 업무를 수행한 뒤 회사를 이탈하더라도 빠르게 채용으로 부족한 인원을 보충하는 방식이 비용효율적이었다.
개발자들의 이직이 당연한 시기이고, 3년 일하면 오래 같이 일해줬다는 생각을 하는 사람들이 많아진 만큼, 우리도 채용을 할때 3년을 보고 채용해야 했다. 높은 페이를 주고 시니어를 뽑아도 결국 이탈하기 때문에, 3년 함께할 수 있기를 기대하며 주니어를 채용하는 방식을 취했다.
우리의 기준에 맞춰 채용을 하되, 업무에 투입 가능한 시점을 3달로 목표잡고 빠르게 성장시켜서 그만큼 오랬동안 성과를 내주도록 환경을 제공하는게 현실적이면서 효율적이었다.
기술 스택은 왜 유지했나?
주니어를 위주로 채용하는 전략에서 기술 스택은 교육기관의 비율에 맞춰 설정하는 것이 가장 효과적이었다. Python을 기반으로 한 웹 풀스택 교육은 점점 줄고 있었지만, 그래도 전체 교육 시장의 비율에서 높은 축이었고, 풀스택 개발자로 성장하는 과정만 놓고 보면 Python이 가장 높은 비율이었다.
백엔드와 프론트엔드를 분리해야겠다는 결심을 아직 내리기 전까지는 Python/Django 혹은 Python 이라는 기술 스택이 채용의 유일한 조건이었고, 그만큼 프론트엔드의 기술 역량 허들을 낮춰야 했기 때문에 jQuery를 유지했다.
다만, 채용할때는 좋은 결정이었지만 팀 내부에서는 안좋은 결정이었다. 성장에 욕심많은 좋은 팀원들을 뽑다 보니, 스스로 성장하며 jQuery에 대한 피로감이 있었고, React, Vue 등을 도입하자는 의견이 지속적으로 나왔지만 채용 난이도로 인해 쉽게 접근하지 못했다. 결국 2021년에 도입을 결정했지만, 서로 성장하지 못하는 환경이다보니 다들 쉽게 지쳐했다.
결과는?
2021년까지는 그렇게 주니어와 신입을 채용해도, 채용 공고를 올리면 3달 안에 채용이 가능했지만, 우리의 기준이 변화하지 않았음에도 2022년엔 8달이 걸렸다. 애초에 풀스택 교육과정을 거치는 주니어나 신입 개발자가 없어졌기에 생긴 문제였다.
백엔드 환경에 대한 기술 스택은 변경하지 않았지만 ‘풀스택’ -> ‘백엔드’로 전환된 부분은 위 문제를 완벽히 해결했다. 좋은 사람을 빨리 만나는게 훨씬 수월했다.
프론트엔드 환경은 React로 자신있게 결정할 수 있었다. Angular, Backbone, Vue 등 여러 프레임워크가 다투던 시기는 다 끝났고, 국내는 React.js 가 압도적이라고 판단됬다. 우리 서비스에 들어오는 프로젝트의 특성이나 공고를 봐도, 압도적이다.
백엔드와 프론트엔드 환경의 분리는 어느덧 20% 진행되었고, 이제 매거진 서비스를 분리하고 있다. 아직 생산성과 안정성이 뛰어나지 않지만, 분리된 환경에서의 생산성을 보았을 땐, 앞으로가 기대되는 상황이다.
다음 스탭은?
백엔드와 프론트엔드가 각각으로써 안정적인 기능조직으로 성장이 완료되면, 매트릭스 조직에 맞도록 팀 구성을 다시할 계획이다. 이를 위해선 지금보다 더 높은 생산성이 보장되어야 하지만, 내가 조급해하지만 않으면 두 리더분들이 잘 완성해줄 것이라 믿고있다.