탁월한 개발자
포스트
취소

탁월한 개발자

개요

최근에 여러 기업에 면접을 보러다녔는데 그 중 어떤 기업에서의 임원면접에서 들은 질문입니다.
“찬영님이 생각하시기에 탁월한 개발자란 뭐라고 생각하세요?”

이 질문을 처음 들었을 때 약간의 생각에 잠겼습니다.
일단 질문 자체가 막연히 ‘탁월함’에 대한 정의를 요구하고 있기 때문이기도 했고, ‘일을 잘하는 사람’에 대한 기준은 가끔 생각하던 것이였지만 ‘탁월한 개발자’에 대해서 고민해본 적은 딱히 없기 때문입니다.
그래서 저는 이 질문에 대해 활용할 수 있는 최선의 기술을 선택하는 능력이 있는 개발자라고 대답했습니다.

사업적 측면의 개발자

대부분의 개발자는 회사에 소속되어 가치를 창출합니다.
물론 프리랜서로 일하는 개발자도 있긴하지만 어쨌든 실제 사용자가 존재하는 소프트웨어를 만들고 수익을 챙기는 형태는 변함이 없어요.

그렇다면 이 개발자가 생각해야 하는 것은 어떤게 있을까요?

좋은 기술? 깔끔한 코드? 좋은 UI?

모두 정답이예요. 하지만 저는 제 경험을 토대로 생각해봤을 때, 저 질문에 대한 답변을 ‘활용할 수 있는 최선의 기술’ 이라고 정의했습니다.
예를 들어보죠. 신입으로 채용 된 주니어 개발자가 갑자기 선임에게 이런 말을 합니다.

“Vue3가 훨씬 좋은데 왜 Vue2를 써요?”

“Javascript 코드는 보기 더러워요, Typescript로 진행하면 안되나요?”

“요즘 GraphQL이 유행이던데 이걸로 바꿔봐요”

신기술 예찬론자

아마 회사에서 몇 년 정도 개발자로 업무를 진행해보셨다면 심심치않게 보실 수 있는 유형의 개발자인데, 저는 이런 개발자를 신기술 예찬론자 혹은 최신기술 신봉자 라고 부릅니다.
물론 Vue3가 Vue2보다 좋은게 사실입니다. d.ts의 정의가 없어도 타입 추론이 가능하며, Composition API를 통해 코드를 깔끔하게 정의할 수도 있겠죠.
그렇지만 비즈니스 프로젝트를 개발하는 개발자는 기술적인 측면보다 나에게 돈을 주는 쩐주를 우선으로 생각해야 합니다.
보통의 고객들이 서비스에 요구하는건 어떤게 있을까요? 아마 조금씩 다르겠지만 대부분은 아래와 같을겁니다.

  1. 빠른 속도
  2. 좋은 경험
  3. 제로 버그

위 세가지가 충족되기 위해서는 좋은 도구, 실력있는 개발자, 좋은 기획 등을 꼽을 수 있겠죠.
좋은 도구의 관점으로 접근하면 대부분의 경우 최근에 나온 기술이 좋습니다. 애초에 예전에 있던 기술보다 안좋은 기술이였다면 내 귀에 들려오기 전에 사장 됐을거거든요.
하지만 좋은 도구보다 중요한건 그 도구에 대한 숙련도입니다.

만약 무턱대고 최근에 나온 라이브러리를 갖다 썼다가 예기치 못한 문제가 발생하면 어떻게 될까요?
일단 그 문제를 경험해 본 적 있는 사람 자체가 없을거예요. 가장 작게는 우리 조직에서, 크게 보면 Stackoverflow에서도 해당 이슈에 대한 토론이 이루어지기 전일 수도 있습니다.
그러면 이 버그를 수정하기 위해 온갖 삽질을 해야할거고, 최악의 경우에는 아예 프로젝트를 갈아야 할수도 있어요.

그렇다면 해당 기술이 ‘최신기술’ 카테고리에는 들어가지만 출시 된지 어느 정도 지나서 안정성을 확보한 상태라면 괜찮을까요?
그래도 고민을 해보긴 해야합니다.

일단 혼자 개발하는 토이 프로젝트가 아닌 이상 해당 프로젝트에 여러 사람이 투입 되어야 하는 경우가 대부분일텐데, 당장에 개발자들이 뛰어들어도 모자란데도 우리는 그 기술 하나를 이해하기 위해서 별도의 학습 시간을 마련해야 합니다.
또한, 기껏 프로젝트를 성공적으로 만들어놨더니 기존 개발자들이 퇴사하여 신규 개발자를 채용해야 할 때 해당 기술을 알고 있는 사람을 데려오는 것에도 어려움을 겪을거예요.

이러한 모습은 주로 엔지니어적 성향이 강한 개발자 혹은 주니어 개발자에게서 자주 보이는 모습인데, 우리는 기억해야 합니다.
여러분의 코드를 가치있게 만드는 것은 그걸 사용하는 누군가의 존재이고, 우리는 그 ‘누군가’를 우선으로 생각해야 합니다. 최소한 비즈니스 목적의 코드를 작성할 때는요.

우리 모두 도구에 잡아먹히지 않는 개발자가 됩시다!

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

JSDoc으로 Javascript 문서를 좀 더 친절하게 만들어보자

Svelte에 적용하는 Typescript