제 3의 길은 언제나 존재한다 (feat. 채용 프로젝트 기반 학습)

당연한 건 없고, 선택지는 많습니다.

저는 지난 회사에서 프론트엔드 팀을 채용할 때 지원자가 꼭 직접 프로젝트를 구현해오게 하고, 굉장히 꼼꼼하게 코드리뷰 리포트를 드렸었는데요. 이 채용 프로젝트들에서 오히려 제가 기술적으로 배우는 게 엄청 많았습니다.

리뷰할 때 가장 중요하게 여겼던 건 의사결정이었어요. 일부러 프로젝트 스펙을 꽤 모호하게 드렸기 때문에 '이분이 스펙을 명확하게 하기 위한 커뮤니케이션을 어떻게 하는가?'도 중요했지만, 기술적 의사결정(프로젝트 구조, 프레임워크, 라이브러리, 버전 선택시 무엇을 어떤 기준으로 고르나)를 더 중요하게 봤어요.

특히 은총알이 없다는 것, 즉 '언제나 복수개의 선택이 가능하며, 트레이드오프를 고려하여 상황에 맞게 선택해야 한다는 걸 인지해서 행동하고 있는지'가 핵심이었습니다. (이력서 멘토링할 때 주니어 분들께 항상 강조했던 것이기도 합니다)

사실 서비스 회사에서 오래 일하다 보면 레거시가 쌓이고, 버전 업데이트 잘 못 하고, 최신 트렌드에 둔감해지곤 하거든요. 그런데 채용 프로젝트에서는 본인들이 써보고 싶었던 신기술을 가져오는 분이 많았어요. 게다가 그걸 선택한 이유까지 들으니 배우는 게 엄청 많았죠. 그렇게 사내에 도입된 것들이 Typescript, React Suspense, React Query, Recoil 등이었어요.

당시는 생성형 AI도 없던 시절이라 이런 지식과 경험의 가치가 무척 컸습니다. 그런데 요즘이라고 다를 바는 없어요. 오히려 뭘 물어보든 AI가 너무나 빠르게 답을 내려주는 시대이니만큼 '복수개의 선택지와 트레이드오프를 인지하여 의사결정'하는 역량이 더 소중해졌다고 느껴요.

그래서 저는 어려운 문제일수록 여러 옵션을 생각하려고 노력합니다. 익숙해지면 생각보다 쉬워요. n>1임을 인지하는 순간 n이 계속 늘어나기 때문입니다.

  • A를 한다, A를 하지 않는다, 그 중간 어딘가, 또는 아예 새로운 B. A보다 작은 a는 없나? ABC가 아니라 ㄱㄴㄷ로 생각한다면? 등등.
  • 프롬프팅도 마찬가지입니다. 이걸 해결하는 여러 옵션을 제시하고 비교해줘. 장단점이 뭐고 언제 뭐가 유리한지. 나는 이게 이래서 좋은데 니 생각은 어때. 내 논리의 허점을 찾아줘.

저는 이런 '당연한 건 없고, 선택지는 많다'는 사고방식을 습관화하고부터 사고의 지평이 확 넓어지고, 평소의 학습량과 의사결정 능력이 크게 늘어났다고 생각해요. 단점은 평소에 좀 피곤하다는 거? 내가 말할 때도 조심해야 하고, 남이 말하는 걸 들을 때도 움찔움찔하니까요. 이런 생각을 담아 '그건 니 생각이고'라는 글을 쓰기도 했죠.

그건 니 생각이고 (feat. 장기하와 얼굴들)
모든 의견은 특정 기간동안 특정 사람의 눈으로 관찰한, 실제 세계의 좁은 단면일 뿐이라고 생각하면 마음이 좀 편해집니다.

자랑 겸 사족

저도 당시 지원자분들께 배운 만큼 감사의 마음을 담아 정성들여 코드리뷰를 해드렸기 때문에, 채용 과정 자체로 호평받았었습니다. 탈락하시는 분들께도 마찬가지로 리뷰해드렸는데 그분이 고맙다며 다른 분을 추천해주시기도 했고, 매 미팅마다 마지막 5분은 회고를 했는데 이게 너무 좋다며 오퍼 수락하신 분도 있었고요. (물론 저는 리뷰한다고 죽어났지만..)

채용은 오퍼 수락한다고 끝이 아니라 빠르게 온보딩돼서 팀과 제품에 일찍부터 긍정적 영향을 미치고, 결과적으로 리텐션이 유지되어야 성공이라고 생각합니다. 그래서 온보딩 프로세스도 엄청 신중하게 설계하고 실행했었죠.

덕분에 채용 성공율과 팀원들의 만족도가 상당히 높아서, '효과적인 팀 빌딩'의 모범사례로 뽑혀 사내 세미나를 했던 기억도 납니다. 그렇게 채용했던 분들이 몇년이 지난 지금은 저 포함해서 모두 뿔뿔이 흩어졌지만, 다들 좋은 데서 일하고 계신 거 보면 잘 뽑았던 것 같아요.