<aside> 🆕 블로그를 stdy.blog로 이전했습니다. 새 블로그에 어떤 글들이 올라올지 궁금하시면 Upcoming Posts를 참고해주세요. 🙂

</aside>

<aside> 💬 올해 들어 프론트엔드 엔지니어 채용, 팀 빌딩, 커리어 설계 등을 주제로 크고작은 스타트업의 CEO나 CTO 분들과 대화할 기회가 몇 번 있었다. 그 때 CTO를 비롯한 시니어 엔지니어들이 대부분 백엔드 출신인 조직에서는, 시니어 프론트엔드 엔지니어에 대한 상像이 불명확하여 주니어/미들급 엔지니어 개발자들을 성장시키고 리텐션을 유지하기가 쉽지 않다는 이야기를 많이 들었다.

처음에는 엔지니어링 래더를 토대로 내 의견을 말씀드렸지만, 아무래도 엔지니어링 래더는 좀 추상적이고 역량 기준이 분야에 무관하게 쓰여있다 보니 이것만으로는 주니어 프론트엔드 엔지니어들에게 큰 도움이 되지 않을 것 같았다. 또한 “프론트엔드 커리어 로드맵” 같은 키워드로 검색했을 때 나오는 내용은 대부분 기술적인 공부에만 치중되어 있어 현실과는 살짝 동떨어진 면이 있다고 느꼈다. 그런 글에서 자주 인용되는 게 이런 기술 로드맵인데, 물론 여기에 훌륭한 키워드가 잘 정리되어 있긴 하나 ‘이렇게 기술을 공부하는 것만으로 좋은 시니어 프론트엔드 엔지니어가 될 수 있는가?’에 대해서는 회의적이었기 때문이다.

시간이 지나며 생각이 조금씩 정리되었고, 성심성의껏 답변하고 토론하다 보니 “주니어 프론트엔드 엔지니어가 역량 성장 목표와 커리어 로드맵을 어떻게 가져가야 할까?”에 대한 그림이 점차 구체화되어 이렇게 글로 정리해봤다.

다만 나도 개발 경력이 그리 길지 않고, 지금까지 거쳐온 회사도 100명 이하의 스타트업 뿐이었기에 굉장히 주관적인 시각임을 염두에 두고 글을 읽어주시길 바란다. 반박 또는 토론할 만한 부분이 있다면 언제든지 편하게 댓글 달아주시길.

</aside>

요약

“3년차 프론트엔드 엔지니어입니다. 이제 뭘 더 공부해야 할까요?”

‘웹 개발자’는 1990년대부터 있어왔지만 ‘프론트엔드 엔지니어’가 독립적인 직업군으로 불리게 된 것은 불과 10년도 채 안 됐다. 자바스크립트 생태계가 웹에 끼치는 영향이 급격히 커지고 UI/UX의 중요성도 훨씬 부각된 2010년대 중반부터 많은 조직에서 프론트엔드 엔지니어를 본격적으로 채용하기 시작했다.

이렇게 프론트엔드 개발의 역사가 짧다 보니, 다들 좋은 시니어 프론트엔드 엔지니어를 원하지만 찾기는 너무 힘들다(죄다 네카라쿠배토당야에 가있는 것 같다). 일단 뽑아서 키워보자는 생각으로 주니어를 채용한다. 주니어는 디자이너나 기획자가 건네준 화면 몇 개를 그리는 것으로 일을 시작한다. 수많은 용어와 프레임워크에 익숙해지는 것만도 벅찼던 주니어는 연차와 경험이 쌓이면서 슬슬 자신감이 붙는다. 디자이너와 기획자가 뭘 요구하든 검색하거나 라이브러리 쓰면 대부분 만들 수 있겠다고 생각한다. 그러나, 점점 자신감은 불안감으로 바뀐다.

이 글은 이런 고민을 하는 프론트엔드 엔지니어와, 이들을 어떻게 이끌지 고민하는 팀 리드 및 CTO를 생각하며 썼다. 프론트엔드 엔지니어가 시니어로 나아가기 위해 어떤 역량을 쌓아야 하는지, 어떤 방향으로 전문성을 특화시켜야 할지, 그리고 향후 어떤 커리어를 쌓아나갈지에 대한 가이드로서 조금이나마 도움이 되길 기대한다.

1. 탁월한 엔지니어 되기

‘탁월한 시니어 프론트엔드 엔지니어가 되고 싶다’는 문장은 3가지 측면에서 해석할 수 있다.

이중 첫번째가 가장 기본이며 가장 중요하다. 물론 모든 ‘기본’이 마찬가지겠지만 기본을 잘 하는 것도 무척 어렵다. 애초에 탁월한 엔지니어는 어떤 사람일까?

다음은 What Makes a Great Software Engineer?(Li Paul Luo 외, 2015년)라는 논문에 나오는 ‘탁월한 엔지니어의 5가지 주요 역량’을 요약하여 내 의견을 덧붙인 것이다. 올해 초에 작성한 뉴스레터개발자 채용 인터뷰 평가 템플릿에서도 공유한 바 있지만 재탕한다.