‘내가 가진 것을 세상이 원하게 하라’ 책을 읽다가 공감이 크게 되어서 적은 글귀이다.
프론트엔드 개발을 처음 시작할 때를 돌이켜보자. 재밌었다. 웹사이트 만드는 게 재밌었고, 누군가에게 내가 만든 웹사이트를 보여주는 것도 재밌었다. 그런데 그렇게 1년이 지나면서, 점점 '내가 왜 프론트엔드 개발자를 선택했지?'라는 생각들이 머릿속을 맴돌았다.
처음엔 신선했던 코드 작성이 어느새 반복적인 업무처럼 느껴졌다. 컴포넌트를 만들고, 스타일을 입히고, API를 연결하는 일련의 과정들이 마치 공장에서 같은 제품을 찍어내는 것처럼 기계적으로 느껴지기 시작했다. '이게 정말 내가 하고 싶었던 일일까?' 하는 회의감이 들었던 시기였다.
그렇게 1년쯤 지났을 때쯤 우테코에 들어왔다. 우테코에 와서 매주 주어지는 새로운 과제를 수행하며 JavaScript, React.js와 같은 웹의 기본기를 탄탄하게 다질 수 있게 되었다.
솔직히 말하면, 처음엔 기본기를 다시 다진다는 게 조금 답답하게 느껴지기도 했다. '이미 알고 있는 내용 아닌가?'라는 생각도 들었다. 하지만 미션을 하나씩 수행하면서 깨달았다. 내가 알고 있다고 생각했던 것들이 사실은 제대로 이해하지 못한 채 그냥 사용만 하고 있었다는 것을. 클로저가 왜 필요한지, 이벤트 루프가 어떻게 동작하는지, 리액트의 재조정(Reconciliation) 알고리즘이 왜 효율적인지. 이런 '왜'에 대한 답을 찾아가는 과정이 마치 퍼즐을 맞춰가는 것처럼 흥미로웠다.
그리고 현재는 기본기를 기반으로 팀 프로젝트를 디벨롭하고 있다.
요즘따라 개발이 너무 재밌다는 생각을 한다. 개발을 하며 내가 만드는 서비스를 하나씩 개선시켜나갈 때, 기능을 하나씩 구현해나갈 때 마치 미션을 깨는 듯한 기분이 든다. 운동하면서도, 아티클을 읽으면서도, 책을 읽으면서도 '개발하고 싶다'는 생각이 자꾸 든다. 놀라운 말로 들릴 수 있지만, 진심이다.
예를 들어 최근에 앱 내에 웹뷰를 구현했을 때가 그랬다. 처음엔 WebView 컴포넌트에 URL만 넣으면 끝날 줄 알았는데, 실제로는 쿠키 공유, 에러 핸들링, 웹-앱 간 통신 등 신경 써야 할 부분이 정말 많았다. 웹과 네이티브의 경계에서 작업하며 이 기능이 사용자 경험을 어떻게 개선시키는지 직접 확인할 수 있었던 게 즐거웠다.
팀 프로젝트도 즐겁다. 팀원들과 개발을 하기에 앞서 여러 가지 방법을 두고 논의하는 과정도 즐겁고, 어떻게 하면 이 서비스를 더 잘 만들고 홍보를 할 수 있을까 고민하는 것도 즐겁다.
특히 기억에 남는 건 앱 배포 기술을 선택할 때였다. Capacitor를 쓸지, React Native + Expo를 쓸지 팀원들과 격렬하게(?) 토론했다. 간편함을 강조하는 의견과 확장성과 커뮤니티를 중시하는 의견이 맞섰고, 결국 우리 팀의 상황과 필요에 맞춰 React Native + Expo를 선택했다. '왜 이 도구가 우리 프로젝트에 적합한가'에 대해 깊이 있게 고민했던 게 정말 값진 경험이었다. 단순히 '많이 쓰니까'가 아니라, 우리 팀에 맞는 기술을 선택하는 방법을 배웠다.
책에서는 이런 이야기를 한다. "일의 희로애락을 겪어봐야 재미의 세계로 들어갈 수 있어요." 이제 나는 프론트엔드 개발의 희로애락을 겪어보고 재미를 느끼게 된 게 아닐까?
회의감이 들었던 그 1년이 사실은 필요한 시간이었다는 걸 이제는 안다. 그때는 단순히 코드를 작성하는 기술자였다면, 지금은 문제를 해결하는 개발자가 된 것 같다. 사용자가 어떤 불편함을 겪을지 예측하고, 그걸 미리 방지하는 코드를 작성하는 것. 성능 최적화를 통해 사용자가 조금 더 쾌적하게 서비스를 이용할 수 있도록 만드는 것. 이런 고민들이 이제는 즐겁게 느껴진다.
또 책에서는 이런 이야기를 한다. "재밌는 일은 발견하는 게 아니라, 어떤 일을 꾸준히 하면서 재밌어지는 것을 체험하는 것이다." 백엔드 개발, 임베디드 개발 등 다른 개발 분야, 혹은 아예 다른 직업으로도 해볼 수 있었지만, 그렇지 않고 내가 처음 선택한 프론트엔드 개발을 꾸준하게 해온 걸 너무 잘한 선택이라는 생각이 들었다.
돌이켜보면 재미를 잃었던 시기가 있었기에 지금의 재미가 더 소중하게 느껴진다. 슬럼프는 끝이 아니라 다음 단계로 가기 위한 과정이었던 것 같다. 그 시기를 버티고 기본기를 다시 다졌기에, 이제는 더 견고한 토대 위에서 즐겁게 개발할 수 있게 되었다.
프론트엔드 개발을 시작한 지 이제 2년이 조금 넘었다. 아직도 배울 게 산더미같이 많고, 모르는 것도 여전히 많다. 하지만 그것들이 이제는 두렵지 않다. 오히려 설렌다. 앞으로 또 어떤 재밌는 기술을 배우고, 어떤 문제를 해결하게 될지 기대된다. 시간과 노력이라는 입장권을 끊고 들어온 재미의 세계에서, 나는 계속해서 즐겁게 개발하고 싶다.