개발자의 성장 가능성은 어떻게 측정 가능한가?

Photo by Nubelson Fernandes on Unsplash

간혹 신입 개발자를 채용한다는 회사의 이야기를 듣다보면, 나를 포함하여, 신입 개발자를 뽑을 때 성장 가능성을 본다고 말한다. 나도 이 이야기를 종종 하지만 정작 내가 가지고 있는 기준을 명확하게 정리한 적은 없다는 생각을 하였다. 그래서 이 글을 통해서 내가 가지고 있는 몇 가지 기준들을 나열해보고, 성장 가능성에 대해서 이야기해보려고 한다.

전제 조건: 열정은 유한한 자원이다.

많은 신입 개발자들이 이력서에서 열정이 있다고 이야기하지만, 그 열정을 장기화하는 경우는 그렇게 자주 일어나는 일은 아니다. 간혹 어떤 개발자들이 특수한 케이스로 그 열정을 아주 오랫동안 가지는 경우도 있으나, 그 빛나는 열정과 반대로 회사가 그 열정을 받아주지 못하는 경우도 있다. 열정이라는 가치는 그 자체로 충분히 의미가 있으나, 열정이 있다고 이야기하는 것은 무한 자원이 아니라 유한 자원임을 전제로 생각한다.

또한 열정은 순환할 수 있는 자원이기도 하고, 증명할 수 있는 자원이기도 하다. 개발자라는 직군은 어쨌든 증명해내야 하는 직군이기 때문에 어떤 형태로든 증명해낼 수 있을 것이다. 예를 들어, 내가 중요하게 생각하는 열정 검증 관련 팩터는,

  1. GitHub에서의 기여 활동, Open Source / Toy project
  2. 테크 블로그 등 운영
  3. 테크 스터디 등 운영
  4. 기술 도서 독서 등

증명에 대해서는 여러 가지 가치가 있지만, 학자가 논문을 통해 본인이 가지고 있는 지식에 대해 공유하듯, 개발자는 기술 블로그나 SNS 등에서 자신에 대한 기술 정보를 공유하여 어필할 수 있다. 이력서나 커버 레터를 통해서도 자신의 지식 정보를 어느 정도 공유할 수 있지만 그것만으로는 부족할 수 있다고 생각한다.

무엇보다 기억은 금세 휘발된다. 평소에, 열정이 있을 때 정보를 쌓아두는 것은 꽤 의미 있는 습관이다.

핵심 역량: 탐구하는 사람

처음에는 호기심이 있는 사람이라고 생각했는데, 더 정리해보니 탐구하는 사람이라고 생각한다. 탐구하는 사람이라는 건, 궁금한 점이 생겼을 때 궁금 하다는 것에서 끝나지 않고 더 깊이를 가지면서 학습하는 사람이라고 생각한다.

예를 들어, React를 사용하다 보면 이런 질문이 생길 수 있다 — React는 왜 Hooks를 사용할까. 이 질문에 대한 답을 얻기 위해 당신은 어떻게 할 수 있을까? 처음에는 Google에서 검색해볼 수도 있고, 혹은 Naver에서 검색해보는 사람이 있을 수도 있겠다.

나 같은 경우에는 Framework 나 Library에 대한 궁금증이 생기면 제일 처음 공식 문서를 살펴본다. 공식 문서에서 Hook을 왜 사용하는가에 대한 설명이 있다.

공식 문서

이 문서의 Motivation 파트를 읽어보면 몇 가지 제목이 있다.

  • 컴포넌트 사이에서 상태 로직을 재사용하기 어렵습니다.
  • 복잡한 컴포넌트들은 이해하기 어렵습니다.
  • Class는 사람과 기계를 혼동시킵니다.

이 문서에서 정확하게 Hook을 사용하는 이유에 관해서 설명하고 있기는 하나, 이 말들에 대해 추상적으로는 이해가 되지만 정확히 왜 그런가에 대해서 명확하게 이해되었다고 생각하기는 어렵다.

그래서 예를 들어, 컴포넌트 사이에서 상태 로직을 재사용하기 어렵습니다. 라는 내용에 대해서 추가로 정리해볼 수 있다.

  • 기존에는 어떻게 동작했는가?
  • Hook은 어떤 부분을 해결하였는가?
  • Hook은 어떻게 동작하는가?
  • 기존 코드 A를 어떻게 Hooks를 사용한 코드 B로 바꿀 수 있는가?

여기서 질문을 더 이어 나가다 보면, Hooks 자체가 라이브러리에서 어떻게 구현되었는 지가 궁금해질 수 있다. Google에 How react hooks works 라고 검색해보니 Netflix Tech Blog에서 작성한 Deep dive: How do React hooks really work? 라는 글이 나왔다.

그 글을 보니 Dan Abramov 라는 사람이 작성한 Making Sense of React Hooks 라는 제목의 문서가 나왔다.

얼추 보니 Dan abramov 라는 사람이 React 관련되어 일을 하고 있는 거 같아 구글에 검색해보니 본인이 운영하는 블로그가 나왔다. 여기도 보니 Hooks 관련 블로그 글이 두 가지가 있다.

가능하다면 React 코드 내부까지 열어보면 좋겠다. 검색해보니 ReactHooks.js 라는 파일이 나왔고, React Current Dispatcher 라는 객체를 사용하여 Hooks의 동작을 관리하고 있는 거 같다.

그런데 Dispatcher 라는 건 React Reconciliation 이라는 패키지에서 관리하고 있는 거 같다. Google에서 검색해보니 재조정이라는 과정이라고 한다.

그렇게 탐구를 이어 나가다 보면 결국 React라는 라이브러리가 어떻게 동작하는지에 대한 근간을 파악하고 그 설계가 어떻게 나왔는지를 이해하는 데에 도움을 준다. 이 내용을 완벽하게 이해하는 것이 중요할 수도 있지만, 그 이상으로 특정한 현상에 대한 궁금증이 생겨서 그 현상에 대해 본인이 납득할 수 있는 수준까지 탐구해낼 수 있다는 것이 의미가 있다고 생각하면 좋겠다.

이 능력은 또한 문제를 해결하는 과정에서도 필요한 능력인데, 문제를 해결해나가는 과정에서 문제의 근원적 원인을 찾아나서기 위해서 문제를 지속해서 탐구해나가야하기 때문이다.

핵심 역량: 겸손함

지금보다 더 어렸을 때, 지금보다 세상이 더 좁다고 생각했던 시절에는 나도 겸손하지 못했던 시절이 있었다. 하지만 지금에 이르러서는 겸손함이야말로 무엇보다 중요한 역량 중 하나라고 생각한다. 특히 내가 아직 아무것도 모른다는 걸 인지하기 전까지는 말이다.

자신이 어디까지 알고 어디까지 모르는 지를 아는 것이 굉장히 중요하고, 이런 능력을 자기 성찰 능력 / 메타 인지 능력이라고 부르는 데 주입식 교육에 익숙해지면 이 능력이 상대적으로 많이 결여된다. 그래서 이 능력을 어느정도 기르기 전까지는 겸손한 척이라도 할 필요가 있다. 물론 가장 좋은 건 처음부터 겸손한 것이다.

간혹 어떤 지원자를 만나보면 지식에 대한 깊이는 그리 높지 않음에도 불구하고 본인의 지식 수준에 대해 지나치게 과대 평가를 하는 경우가 존재하는 데, 이런 경우에는 지원자가 경력에 대비하여 실력이 좋다고 하더라도 향후의 성장 가능성이 보이지 않는 경우가 있다.

나는 겸손함이 자기 성찰 능력을 스스로 판단하는 데에 꽤 좋은 역할을 한다고 생각한다. 더닝 크루거 효과에 의하면, 능력이 부족한 사람은 자신의 능력을 과대평가하고 능력이 뛰어난 사람은 자신의 능력을 과소평가하는 경향이 있다고 한다.

언제나 그러하듯, 과대평가된 능력은 금새 드러난다.

마무리

더 많은 내용을 담을 수 있을 듯 하지만 지금으로서는 당장 기억이 나지 않는다. 자기 학습 능력같은 걸 써보려고 했더니 이 내용도 탐구하는 사람에 포함되는 듯 하고, 문제해결 능력에 대해서도 생각해보니 이것도 탐구하는 사람에 포함되는 듯 하다.

힘들겠지만 어떤 문제를 마주했을 때 지속하여 탐구해보자. 탐구하는 습관이 본인을 더 성장시킬 것이다.

--

--

Business: choeun@techhtml.dev

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store