개발자와 코더

Paul Mo·2023년 1월 8일
1

이번에 기회가 생겨서 새로운 회사에 이직을 하게 되었다. 대기업 같은 크고 누구나 아는 회사는 아니지만 이제 창업한 지 2년이 갓 넘은 스타트업이지만 누적 회원이 100만 명이 넘고 해외에서 국내보다 이용자수가 더 많은 매력 있는 앱을 제공해주는 회사이다. 그리고 연봉도 전에 받는 금액보다 훨씬 많이 주어서 이직을 결심하게 되었고 무엇보다 전에 회사는 개인성장의 기회가 결여된 환경이었기 때문에 이직을 결정하였다.

현 회사를 입사하기 전에 일주일이라는 시간이 있었는데 그냥 아무것도 하지 않고 놀았다. 그전에 쉬지 않고 일했다는 명분으로.. 하지만 지금 돌이켜보면 전에 회사에서도 일은 하지 않고 놀기만 했었다. 이렇게 내가 느끼는 이유는 현 회사에서 하는 개발과 전 회사에서 하는 개발은 하늘과 땅차이기 때문이다. 나도 나름 전공자에 경력도 4년 차라고 생각을 하고 여기에 입사하면서 나를 그렇게 소개를 했었지만 실력은 전혀 경력에 숫자에 맞지 않다는 것을 깨달았다. 현 회사에는 전문대학을 졸업하고 입사한 개발자, 부트캠프를 수료하고 들어온 비전공자 개발자 등등 객관적으로 보면 내가 이것저것 알려주고 끌어줘야 하는 상황이지만 상황은 정 반대였다.

나는 여태 개발을 할 때 사용법만 숙지를 했었다. 내가 예상하는 Input을 넣어 Output만 잘 나오면 되지 이게 어떻게 구현이 되고 안에 구현체는 어떻게 구성이 되었을까?라는 호기심을 갖은 적도 있었겠지만 그 호기심을 풀어보는 행동으로는 이어지지 않았던 것 같다. React Native라는 프레임워크를 사용하며 앱을 개발하면서도 React의 구현원리나 Javascript Engine의 구동원리등을 이해하지 못하면서 여태 개발자라고 개발을 해오고 있었던 것이다.

이런 것을 처절하게 느끼게 해 준 계기는 팀원들에게 있었다. 애초에 문제에 다가가는 시각 자체가 달랐다. 이것이 왜 이렇게 나올까? 어떻게 구현이 되어있길래? Call Stack이니 Task Queue이니 이런 세세한 것까지 적용해가면서 이해하려고 노력했다. 나는 정말 내가 부끄러웠다. 나에게 이런저런 질문들을 하는데 나는 알지 못했고 내 경력이 말로만 듣던 물경력이라는 것을 깨달았다. 내가 여태 우물 안 개구리 같이 살고 있었구나 라는 생각이 머리에서 지워지지 않았다.

내가 내세우는 나의 경력이 내 어깨에 짐이 되어 부담감으로 나를 짓눌렀다. 하필 소개도 4년 차 개발자라고 떳떳하게 소개를 했으니.. 전에 회사에서는 막내였는데 여기에서는 2번째로 나이도 많고 경력도 많다. 그런데 기초도 부족한 개발을 알려주지 못하는 실력 없는 사람으로 낙인이 찍힐까 두려웠다. 그게 사실인데 말이다. 내가 얼마나 기초가 없냐면 useMemo, useCallback, React.memo 등등 메모이제이션 use hook들도 잘 사용해본 적이 없다. 전에 회사에서는 효율은 내다 버리고 돌아가기만 했으면 됐으니깐.. 거기에 안주한 내가 한심스러웠다.

자기혐오는 여기서 끝내고 나는 결정을 했다. 언어도 통하지 않고 아는 사람도 아무도 없는 해외에 나가서 생존한 경험이 있는 내가 말도 잘 통하고 그래도 쓸 줄은 아는 컴퓨터 언어로도 헤쳐나가지 못하리까. 자존심은 내 다 버리고 나에게 주어진 일을 충실히 해내자라는 신념으로 우선 모르는 것은 물어보고 집에 가서 또 공부하며 시간을 보냈다. 이런 도중에 스터디 발표가 내 차례가 되어서 Zustand와 현재 개발하는 앱의 한 부분의 코드를 분석하는 것도 했다. 일은 일대로 하고 발표를 하기 위해 또 공부는 공부대로 따로 하다 보니 많이 버겁고 힘들었지만 착한 팀원들이 잘 들어주고 팀장님이 옆에서 부가 설명도 해주면서 잘 넘어갔다. 이번에 Zustand를 공부하면서 사용법만 숙지하는 것이 아닌 Core Code까지 나름 분석해서 발표를 했다. 그런데 신기하게도 코어코드를 분석하니깐 사용법이 절로 이해가 됐다. 어떻게 구현이 되는 것인지 깨달으니 구현하는 함수는 자동으로 머리에 들어오는 것을 느꼈다. 개발공부는 이렇게 하는 거구나! 이번에 팀장님이 sendbird를 도입하시는데 코어코드를 하나씩 뜯어보면서 개발하시는 것을 보고 많은 것을 배우고 있다.

현재 내가 생각하는 개발자는 코드의 구현의 원리까지 이해하며 최대한 효율적으로 코드를 짜는 것이고 코더는 그저 코드가 작동하게만 짜는 것이라는 생각이 든다. 나는 여태 코더였다. 학교에서 배운 전공 지식들은 학창 시절에 배운 일상생활에 전혀 쓸모없는 수학 공식이라고 생각을 하고 사용하지 않았다. 그렇다 보니 머릿속에서 서서히 지워져서 이제는 다시 공부하지 않고서는 꺼내다 쓸 수 없는 지식이 되어 버렸다. 팀장님은 그 지식 하나하나를 현업에 적용하고 사용하시는고 다른 비전공자 개발자는 전공지식을 쌓기 위해 끊임없이 공부하는데 말이다. 나는 이제 코더가 아닌 개발자가 되기 위해 노력할 것이다. 내 전공지식을 다시 쌓으며 세세한 구현체들을 공부하면서 개발 공부가 내 삶의 가장 많은 부분을 차지하도록 노력하면서 내년에 어엿한 개발자가 되어있기를 소망하며 올 한 해 한번 살아남아보자.

profile
프론트 엔드 개발자

0개의 댓글