2년 차 프론트엔드 개발자의 성장 기록
지난 2년 동안 프론트엔드 개발을 하면서, 1년은 프론트엔드 팀에서 하나의 프로젝트를 유지보수하고, 1년은 제로베이스에서 개발을 시작해 이제서야 안정화가 되었다. 1년 동안 내가 만들고 싶은 서비스와 사용하고 싶은 개발을 자유롭게 하고 친절한 팀원들과 소통하며 작업하는 나날은 너무 즐거웠다.
1년이 지나버린 지금의 나는 이걸 이루고 뭐가 되었을까?
아직 갈 길이 멀다고 생각하지만 내가 바라던 길을 달려왔었고, 잠시 어딜 가야 하는지 멈춰있는 것 같다.
내 성장과 불안
여전히 개발은 계속되고 있고 내가 만들고 싶은 것을 만들 수 있다는 자신감과 팀원들과 대화할 때 내 발언의 영향력이 이전보다 강해진 것을 느낄 수 있다.
그러면 나는 잘하는 개발자일까? 2년차에 이 정도의 실력이면 괜찮은 걸까, 팀원들이 나를 참아주고 있는 거면 어떡하지 라는 불안과 내 발언의 영향력은 강해졌지만, 여전히 일을 할 때 일정 산정에 대해 헤매고 있는 점, 너무 급하게 일정 산정을 잡아 야근을 해 긴장감과 피로감 속에서 일을 하게 되는 것까지 여실히 부족한 점을 찾게 된다.
나는 나아가고 있는 것일까 가라앉고 있는 걸까
거기에 대한 해답이 필요하다.
회사가 원하는 개발자
내가 나아가고 있다는 해답을 찾는 방법은 다른 프론트엔드 개발자들과 테크 리더, 그리고 회사들이 원하는 개발자 인재상을 알아보는 것이었다.
이번에 갔던 컨퍼런스에서 만난 테크 리더분과 대화했을 때, 그분은 ‘개발자라는 직함만 바라는 사람은 원하지 않는다’고 하셨다. 개발자라는 직군은 시작 난이도가 낮고, 그만큼 숫자가 폭발적으로 늘고 있다. 그만큼 잘하는 개발자도 많고, 직함만 개발자인 사람도 많다는 거다.
그래서 초반에 개발자를 거르는 기준은 이력서에 성장을 바라는 의지를 드러낸 지원자였다. 이 회사에 와서 성장하고 싶다는 것을 어필하는 사람을 선호한다고 하셨다.
왜냐하면, 일부 지원자는 개발이라는 직군에서 장점(연봉, 자유로운 분위기 등)만을 원하는 게 아닐까 생각되기 때문이다. 개발자라는 직군이 갖는 단점인 끝없는 야근과 인고의 시간을 생각하지 않는 경우가 많다는 것이다.
그런 점을 보면, 개발을 오래 하려면 적성에 맞아야 가능한 일이라는 걸 깨닫게 된다. 그래서 테크 리더는 ‘개발을 시작한 사람보다는 이미 개발을 하고 있는 사람’을 원한다고 하셨다. 또한, 내가 어떤 사람인지, 어떤 방식으로 일을 하는지 제대로 드러내지 않으면 바로 탈락이라고 했다.
사실 사람들은 내가 어떤 사람인지 잘 알지 못하는 경우가 많다. 그렇기 때문에 메타인지가 높은 사람이 되어야 한다고 하셨다. 나 자신을 잘 알고, 내가 무엇을 할 수 있는지, 어떻게 일을 진행하는지 알고 있는 사람을 바란다는 얘기였다.
‘그렇다면 나는 개발을 지속적으로 하기 위해 무엇을 해야 할까? 나는 왜 개발을 좋아하는 걸까?’
이 질문에 대해 생각해 보는 게 중요하다고 느꼈다.
나의 피드백에 대해서
작년 1년 동안 한 팀에서 프론트엔드 개발을 하던 중, 다른 팀으로 배정받고 나서 나는 팀장님께 대화를 요청한 적이 있었다. 그때 나는 부족함을 느끼고 자신감이 결여되어 있었기 때문에, 나의 장단점을 물어보았다.
나의 단점
팀장님은 내 단점으로 업무를 할 때 일정 산정 능력이 부족한 점을 꼽았다. 하나의 프로젝트를 진행할 때, 작은 부분에 집중하다 보니 큰 부분을 놓치는 경우가 있었다.
예를 들어, 기획과 디자인이 끝난 후 기획 플로우에 의문이 생겨 다시 기획자와 소통했고, 그 결과 디자인이 변경되었는데, 이에 따라 이틀 정도 시간이 소요되었다. 팀장님은 이런 작은 오류는 나중에 수정해도 괜찮지만, 더 중요한 큰 부분의 디테일을 챙기라고 조언하셨다.
나의 장점
장점으로는 커뮤니케이션 스킬과 끈질기게 포기하지 않는 근성을 들으셨다.
나는 의문이 생기면 반드시 소통할 수 있는 능력이 있다고 하셨고, 내가 처음 맡았던 업무에서 보인 근성을 인정해 주셨다. 예를 들어, 처음 맡았던 업무는 이미 만들어져 있던 컴포넌트를 복사해 비슷한 형태로 리뉴얼하는 일이었지만, 코드가 이해하기 어려워 처음엔 쉽지 않았다. 그러나 그 코드를 이해하려고 노력했고, 그 과정에서 리팩토링을 권장하셨다.
초반에 코드를 이해하려고 한 나의 노력은 결국 팀장님에게 긍정적인 피드백을 받았고, 그로 인해 더욱 자신감을 얻었다.
피드백 반영
그 후 다른 프로젝트에 혼자 배정되었을 때, 나는 그 피드백을 바탕으로, 더 적극적으로 소통하며, 기초 세팅을 할 때 왜 그렇게 해야 하는지를 깊이 이해하고자 했다. 이전에 했던 코드를 빌려 세팅하되, 그 흐름을 이해하며 작업했고, 필요한 부분과 필요 없는 부분을 구분하는 연습을 했다. 이 과정에서 내가 담당한 기획을 구현하는 데 드는 공수에 대해서도 어느 정도 이해할 수 있었다.
나의 도전
하지만 여전히 고민이 있었다. 그 고민은 ‘어려워도 한번 만들어 보고 싶다’는 욕구였다. 몇 개월 동안 혼자 개발을 해보면서 자신이 없다고 생각했던 부분들을 극복해 나가는 과정에서, 할 수 있을지도 모른다는 생각이 들었다. 그때, 개발을 통해 사용자가 더 편리하게 사용할 수 있다면 성취감이 클 것이라고 생각했다.
그래서 개발 공수를 늘리고, 내가 하고 싶은 일에 대한 테스트를 계속 진행했지만, 그 과정에서 여러 번 실패를 겪었다. 주어진 일에 대한 부족함, 라이브러리로 인한 사이드 이펙트, 그리고 예기치 않은 문제들 때문에 어려움을 겪었고, 결국 나는 야근을 하며 해결하려 했지만 쉽지 않았다.
나의 판단과 소통 과정
이 외에도 해야 할 일은 많았다. API 스키마 작성, 리스트 갱신 등 여러 작업이 있었지만, 그중에 가장 힘들었던 것은 잦았던 나의 판단에 의한 UX 플로우 수정이었다. 기획과 디자인이 완성된 후, 플로우에 의아함을 느낀 부분이 있었다.
그래서 그 부분을 스스로 판단하여 수정하고, 수정된 내용을 팀원들과 소통하며 반영했다. 이러한 점이 특히 중요했다. 내가 판단하고 소통하여 플로우를 개선하는 과정은 시간이 많이 소요되었지만, 프로젝트의 질을 높이는 데 중요한 역할을 했다고 생각한다. 그 과정을 통해 어려움을 극복하고자 하는 마음가짐이 내가 이 일을 계속할 수 있는 원동력이 되었다.
내가 원하는 개발자
그래서 나는 내가 하고 싶은 개발에 대해 다시 생각해 보았다. 왜 계속해서 어떤 갈증을 느끼는 걸까? 그 해답은 이거였다.
나는 사용자가 도구를 좀 더 편하고 즐겁게 사용할 수 있도록 만드는 것을 가장 중요하게 생각한다. 코드를 작성하는 일은 즐겁지만, 그것은 결국 부수적인 것이다. 내가 만드는 작업물이 사용자가 원하는 방식으로 돌아가길 바란다.
이를 위해서는 버그가 자주 발생해서는 안 된다. 사용자가 몰입도를 잃게 만드는 버그는 서비스 경험에 큰 방해가 되기 때문이다. 또한, 디자인은 통일성이 있어야 한다. 통일된 디자인은 사용자가 생각을 덜 하고, 더 적은 피로도로 서비스를 이용할 수 있게 도와준다.
그리고 사용자가 원하는 것을 빠르게 제공해야 한다. 서비스가 안정화된다고 느끼게 되어야 사용자가 지속적으로 사용할 수 있기 때문이다.
이러한 이유로 리팩토링이 중요하고, 디자인 시스템을 구축해야 하며, 기술적인 이해도가 높아야 한다고 느낀다. 결국, 기획적인 마인드가 필요하다는 말이다.
만약 내가 이 과정에 참여하지 않는다면 서비스가 제대로 작동하지 않아 몰입이 깨지고, 일을 하는 이유에 대해 회의감을 느낄 것 같다.
나는 내가 만든 것을 사용자가 즐겁게 잘 사용하길 바란다
앞으로의 목표
현재까지는 React와 Next.js와 같은 도구를 사용해서 내가 만들고 싶은 것을, 같이 일하는 사람들과 소통하며 만드는 것, 그게 내가 바라는 전부가 맞다.
그래서 아직 5년, 10년 후의 목표가 무엇인지는 잘 모르겠다. 지금은 이 도구들만 사용하고 있지만, 다른 도구를 사용하는 데도 전혀 상관없다.
중요한 건 그 도구들이 아니라 내가 만드는 것과 그 과정에서 나누는 경험이기 때문이다.
지금까지 내 목적은 그저 사람들이 원하는 것을 만드는 데 있었다. 앞으로는 나와 비슷한 가치를 추구하는 사람들과 함께 일하며, 그 목표를 함께 이루어가고 싶다.
2년 차인 지금, 아직 부족한 부분이 많지만, 그동안의 경험을 바탕으로 나 자신을 정의해보았다. 처음 개발을 시작할 때는 단순히 ‘이 문제를 해결하자’는 생각만 했던 것 같다. 하지만 시간이 지날수록 그 외에도 중요한 것들이 많다는 걸 깨닫게 되었다.
개발은 결국 사람을 위한 것이고, 사람들의 경험을 만드는 일이기 때문이다.
사람들이 원하는 경험을 제공하고, 그 과정을 함께 나아가는 것이 내가 가장 큰 의미를 두는 부분에서, 만든 것이 사람들의 삶에 의미 있는 변화를 가져오는 순간은 정말 보람찼다.
그리고 그 과정 속에서 함께 일하는 사람들과 더 나은 결과를 만들어가는 경험이 매우 매력적이었다.
이런 결과를 지속적으로 만들어가려면 나도 더 나은 개발자가 되어야 한다는 걸 알게 되었다. 아는 것에 안주하지 않고, 계속해서 배우며 피드백을 받으며 나아가고 싶다. 내가 배운 것을 팀과 공유하고, 함께 성장하는 개발자가 되고 싶다.
마무리하며
2년 차 프론트엔드 개발자로서 아직 부족한 부분이 많지만, 그동안의 경험을 통해 많은 것을 배운 것 같다. 앞으로도 두려움을 느끼더라도 계속 나아가며 즐겁게 일하고, 그 과정에서 얻은 경험들을 잘 기록해 나가야겠다고 생각했다.
나와 비슷한 고민을 하는 사람들에게 작은 도움이 될 수 있기를 바란다.