Creco's Blog

Tech

프론트엔드의 지속적인 성장

조회수1547

읽는 시간: 12분



이 글은 우땅콘(우당탕탕 도서관 컨퍼런스)에서 짧게 발표했던 주제를 글로 작성한 내용입니다.





저는 토스코어 프론트엔드 플랫폼 팀에서 프론트엔드 개발환경에 집중하고 있는 정석호입니다.


오늘은 "프론트엔드의 지속적인 성장"이라는 내용으로 이야기를 나눠 보고 싶습니다.


제가 이제 6년차 정도 되었는데요, 일하다 보면서 문득 이런 생각들이 들더라구요, "나는 지금 물경력이 아닐까?" , "내가 내 연차에 맞는 수준일까?" , "나만 이런 고민을 하고 있는 건 아닐까?"


Untitled


이런 고민들을 하면서 프론트엔드 엔지니어, 더 나아가서는 개발자의 성장에 대해서 생각을 해봤습니다.


성장이란 어느 순간에 찾아올까요?


꼭 개발을 잘 하게 되는 것만이 성장의 결과일까요?


일단 밑밥을 먼저 깔고 가보겠습니다.ㅎㅎ



은탄환은 없다.


Untitled


모든 문제를 해결해주는 은탄환이 없듯이, 사실상 정해진 정답은 없습니다. 상황에 따라 각자에게 적절한 방법과 성장의 대상이 다 다를 것 같아요.


그럼에도 이번에는 그나마 메타적으로 한번 접근해보고 싶었습니다.


그래서 성장이란 키워드를 다양한 관점으로 나눠서 생각해보기로 했어요.



1. 수동적 성장 vs 목표한 성장


제가 생각한 수동적 성장"성장에 대해 따로 고민하지 않아도 자연스럽게 성장하는 것"인데요


Untitled


보통 처음 입사한 신입 혹은 이직한지 얼마 되지 않은 경력 모두에게 있을 수 있는 성장 포인트입니다.


이론만으로 알고 있던 내용을 실전에서 써본다거나, 내가 알던 모든 맥락을 잃어버리고 완전히 새로운 곳에서 적응한다는 등 모두 나에게 없던 무언가를 얻을 수 있는 기회죠.


하지만 이런 성장의 경우, 보편적으로는 반복적인 업무와 크게 바뀌지 않는 맥락들로 인해 장기적으로 지속되기 어렵습니다.


Untitled


그래서 입사한지 3년정도 지나게 되면, 보통 처음에 보셨던 걱정들을 하기 시작하죠.


● 난 물경력이 아닐까?
● 지금 이 일을 계속 해도 괜찮은 걸까?


되고 싶은 모습을 정하지 않으면 우리가 원하는 모습이 될 수 없습니다. 눈 가리고 달리기를 하는 것과 마찬가지에요.


예를 들면 다음과 같은 모습을 설정할 수 있어요.


목표한 하드 스킬 성장 예시


● 자바스크립트의 모듈 시스템 ESM/CJS 에 명확하게 이해하고 나만의 라이브러리를 배포할 수 있다.
● 다른사람에게 번들러와 트랜스파일러에 대해 명확하게 설명할 줄 알고 대표적인 예시 라이브러리의 구현체를 파악해봤다.
● Next.js / Node.js / React 등등의 최신 업데이트를 꾸준히 확인하고 내 서비스에 PoC 할 수 있다.


목표한 소프트 스킬 성장 예시


● 내가 해야할 작업의 소요 시간을 최대한 가깝게 예측할 수 있다.
● 써보고 싶은 기술 도입에 대해 같은 팀원들을 설득할 수 있다.



2. 성장하기 좋은 가장 적절한 난이도


골디락스 존


Untitled


이 그래프는 성장하기 가장 좋은 목표의 난이도를 알려줍니다.


중요한 점은 도전적이며 달성이 가능해야하는데요, 한 마디로 지금의 나라면 할 수도 있을 것 같은 목표들을 말합니다. 그렇다고 너무 쉽다면, 동기부여가 떨어질 수도 있어요.


Untitled


가장 쉬운 예시로 들어보자면, 달리기를 한번도 해본 적 없는 사람은 풀코스 마라톤에 도전했을 때 성장할 수 있을까요? 너무 어려워서 도전조차 쉽지 않습니다. 가장 처음은 쉬지 않고 3km를 달려서 내 현재 역량을 알아보고 내가 세웠던 최고 기록을 계속 해서 뛰어 넘는 도전을 해야 지속적인 재미를 느끼며 성장할 수 있습니다.



장기 지속적인 성장


Untitled


● 현재 내 역량이 어느정도인지
● 내가 되고 싶은 모습의 역량은 어느정도인지
● 그 격차를 줄이기 위해서 어느정도로 노력해야하는지


지속적인 성장을 하기 위해서는 이러한 내용들을 명확하게 인지하고 있어야하고 내가 어느정도로 노력해야하는지 알 수 있으며 동기부여도 뒤따라오게 됩니다.


다음은, 성장을 어렵게 만드는 다양한 부재에 대해서 좀 소개드려볼게요.


● 공감의 부재
ㅤ● 운동을 왜 해야하지?
● 중요성의 부재
ㅤ● 오늘은 너무 바빠, 내일 가도 돼
● 동기부여의 부재
ㅤ● 해야하는 것도 공감하고, 오늘 시간도 남는데 가고 싶지 않아.


반대로 공감이 되지 않거나 중요하지 않다면 안해도 되는 거 아닐까요?


동기부여가 되지 않는 경우는 한번에 너무 높은 목표를 향해 도전해서 그런건 아닐까요?


이번 기회에 현재 목표로 하고 있는 것에 어떤 게 부족한지 한번 확인해보는 것도 좋을 것 같아요.


하지만 현실 세계에서는 항상 최적의 성장을 할 수 있는 업무만 할 수는 없죠?


● 성장의 기회가 된다면 좋지만,,,,
● 일은 일로 하자.


누구에게는 개발 뿐만 아니라 다양한 개발 외적인 일을 해야하는 경우도 있을 수 있구요.


주의: 물론 회사는 내 성장을 위한 곳이 아니긴 합니다.


가장 어렵고 좋은 방법은 바로 "일과 내 성장을 일치 시키는 것"이며


가장 쉽지만 자주하면 좋지 않은 방법 "일과 내 성장이 일치되는 곳으로 이직"하는 것 입니다.



그래서 내 연차에 맞는 역량은 뭔데요?


프론트엔드도 하고 싶은 분야마다 달라서 연차마다 요구되는 역량이 다릅니다.


e.g.) 토스 FE 직군


● Frontend Product Developer: 대고객 제품 개발자


● Frontend UX Engineer: 디자인 시스템 및 인터렉션 개발자


● Frontend Platform Engineer: FE 의 개발환경 및 생산성 기여 개발자


(일반적인 대고객 제품 개발자 기준의 개인적인 의견)


신입


● 요구사항을 부족함 없이 구현할 수 있는 기본적인 기술적 역량 / 잠재력


~ 3년차 (주니어)


● 코드 복잡도를 낮추고 응집도를 높일 수 있는 기술적 역량
● 요구사항을 완수할 뿐만 아니라 내가 하고 있는 일정에 차질이 생길 경우 투명하게 공유
● 내 일 뿐만 아니라 내 일이 목표로 하는 공동의 목표에 적극적인 기여


~ 6년차 IC (중니어 ~ 시니어)


● 굉장히 어려운 문제의 근본적인 원인 분석과 Workaround / 근본적인 해결 방법
● 다른 사람의 성장 및 기술적 역량까지 이끌어 낼 수 있는 영향력
● 조직 전체의 개발 환경을 개선할 수 있는 역량


~ 6년차 매니저 (중니어 ~ 시니어)


● 달성해야하는 목표를 수행하기 위한 가장 빠른 전략을 수립
● 수많은 Task 의 우선순위를 적절하게 설정할 수 있어야함
● 팀원의 지속적인 성장을 책임지고 끊임없이 동기부여


그래서 어떻게 성장할 수 있나요?


● 내가 하고 싶은 방향을 정한 다음에 로드맵을 보고 트리를 정하면 됩니다.
https://roadmap.sh/frontend?r=frontend-beginner
https://roadmap.sh/frontend



성장 CheatSheet


이번 시간을 통해 여러분이 얻어갈 수 있는 포인트가 있으면 좋을 것 같아서 마련해본 장표입니다.


1달마다 지속적으로 성장에 대한 정량적 수치를 기록하고 추이를 확인해서 나의 현재 위치를 파악하고 다음 단계로 넘어 갈 수 있는 지표와 질문들


1달을 주기로 회고하면서 내 위치와 성장하고 싶은 방향에 대해 지속적으로 파악해보세요.



Q. 1개월 전에 비해 나는 O점 만큼 성장했다. ( 1 ~ 5 점)




  • e.g.) 1점: 반복적인 업무만 지속적으로 하다보니 성장하지 못했다고 생각함

  • e.g.) 5점: 코드리뷰간 설계에 대해서 새로운 인사이트를 얻었음



Q. 지난 1개월동안 나는 내가 바라는 모습에 한발자국 가까워 졌다. ( 1 ~ 5 점)




  • e.g.) 1점: 한달 전 정했던 모습에 가까워지지 못함

  • e.g.) 5점: 한달 전 정했던 모습을 완전히 달성함



Q. 지난 1개월 동안 성장에 가장 큰 장애물은?




  • e.g.) 지속적인 반복 작업

  • e.g.) 불필요한 야근



Q. 1개월 뒤 내가 되고 싶은 구체적인 모습 3가지?




  • e.g.) esbuild 의 동작 방식을 완전히 이해한다.

  • e.g.) 트랜스파일러와 번들러의 차이에 대해 알게된다.

  • e.g.) 혼자 레포를 구성해서 서비스를 띄울 수 있다.


혼자 성장하기 어렵다면


● 같이 일하는 동료나 사수에게 피드백 요청하기 (사수/동료)
● "제게 기대하는 역량/모습이 있나요?"
● "지난 2주간 모습을 봤을 때 더 잘할 수 있는 부분이 있을까요?"


이렇게 지속적으로 성장하면서 어려운 문제를 많이 풀어보고 싶다면?

채용공고: Frontend Platform Engineer