본문 바로가기
  • 조금 느려도, 꾸준히
개발자성장일기

[회고] 나는 좋은 개발자를 향해 성장하고 있는가?

by chan 2021. 10. 20.
반응형

나는 지금껏 내 자신이 학습 속도가 빠른 편이라고 생각해왔고, 그것을 기반으로 새로운 기술을 습득하여 개발하는 데 주저함이 없었다.

 

개발을 시작한 2020년 3월부터 지금까지, c++, java, python, javascript(typescript), swiftui 등의 언어을 사용해 보았고,

해당 언어들을 이용하여 MFC app, Android, ML(keras, tf), React(native), Vue, ios widget, express, flask 등의 프로젝트들을 경험해 보았다.

현재 병특을 위해 입사한 회사에서는 php 기반의 slim framework 서버 개발과 Angular crm 프로젝트 개발 경험을 쌓고 있다.

 

물론, 언어는 도구일 뿐 중요한 것이 아니고, 프레임워크 역시 도구를 특정 목적으로 사용하는 매뉴얼에 불과하지만, 부끄럽게도 지금껏 내가 경험했던 기술들을 나열하며 뿌듯함을 느껴봤던 적이 있다. 그 당시엔 개발을 몰랐던 나 자신이 개발자로서 역할을 수행한다는 것 자체가 뿌듯했을 지도 모른다.

그렇기에 여러 기술들을 접해왔지만 해당 기술들의 선택 이유와 장단, 그것을 이용하여 프로젝트를 진행하는 과정에서 깊이 있는 고민과 학습을 해 보았는가? 라고 당시 내 자신에게 물어본다면, 나는 제대로 답하지 못했을 것이다.

 

이번에 입사한 회사의 백엔드 기술 스택이 php 기반이라는 소식을 처음 들었을 때 입사에 대해 고민이 들기도 했고, 하필 java kotlin 도 node 도 아닌 왜 php slim일까? 라는 생각을 하기도 했었다.

 

사실 어리석은 생각이었다. 물론 언젠가 기술 이전과 리팩토링 작업을 해야만 하겠지만, 당시 그 기술을 선택한 분명한 이유가 있었을 것이고, 그것이 지금까지 서비스를 성장시키는데 기반이 되었다는 것을 간과한 생각이었던 것이다.

 

내가 지금껏 써 보지 않은 기술 스택인 것을 떠나서, 설령 앞으로는 쓰이지 않을 기술이라고 해도, 나는 분명히 얻을 것이 있고 성장할 수 있다. 나무를 보지 않고 숲을 보면, 해당 프로젝트가 어떻게 비즈니스적 요구사항을 달성하고 있는지, 어떤 장애 요소들을 해결해 왔는지, 기술적 완성도와 서비스 확장의 트레이드 오프를 어떻게 조율했는지, 하다못해 어떻게 반복 작업들을 자동화를 시키는지나, 어떻게 협업하고 이슈들에 대응하는 지 등을 배울 수 있게 된다. 그리고 나보다 실력 있는 개발자들이 작성한 코드인 것 자체만으로 배울 것이 많다. 실제로 코드를 살펴보니 모듈화, 디자인 패턴, 코드 구조화 등등 내가 몰랐던 방법들에 대해 많이 알 수 있었다. 그것이 좋은 방법이고 이용할 만한 방법인지의 판단은, 물론 내 자신이나 그래도 시야가 넓어지는 효과를 볼 수 있었다.

하지만 이것들을 회사 업무를 수행하면서 배우게 된다고 하더라도, 기술 그 자체에 대한 깊이 역시 중요하다.

 

지금껏 내가 해왔던 개발 공부를 돌이켜보면, 처음 개발자가 될 것을 결심하고 나서 어떠한 기술들이 내게 잘 맞는지 모르기에, 일단 모두 다 경험해 보자는 주의여서 여러 기술들을 접하는 것에 초점을 맞추어왔었다. 결과는 내게 완벽하게 잘 맞는 기술도, 내게 특별히 맞지 않는 기술도 찾을 수 없었다. 

물론 앱이나 웹 프론트 작업을 할 때와, 서버 작업을 할 때, 그리고 기타 ML이나 이미지 처리 등의 작업을 할 때 느끼는 재미와 고난은 각각 다 그 색깔이 달랐지만, 모두 나에게 재미있는 경험이었고, 또 가끔씩은 힘든 경험이었다.

 

하지만 그래도 내 주특기가 하나쯤은, 꼭 언어가 아니더라도 서버, 웹 프론트 등  무언가 나의 경쟁력을 당당히 어필할 수 있는 비장의 수가 있어야 한다는 판단이 들었다. 그리고 그 비장의 수는 지금 상황에서는 회사 경험으로 얻기 힘들다는 결론을 내렸다.

 

따라서 회사 업무 외 개인 프로젝트를 진행하여 비즈니스적인 이해관계를 배제하고(비즈니스를 고려한 프로젝트 진행은 회사 경험을 통해 배울 수 있다고 판단했다.) 기술적 완성도에 초점을 맞추어 공부를 해봐야 겠다는 생각이 들었다. 구글과 유명 기술 블로그, 유튜브 등을 사수 삼아 배우고, 체화하고, 더 좋은 practice 에 대해 고민하고, 이를 기록하고 피드백하는 일련의 과정을 거쳐 해당 기술에 대한 이해도를 높이고, 나아가 오픈소스에 기여할 수 있다면 분명 더 성장할 수 있을 것이라 믿는다.

 

가장 좋은 방법은 비즈니스적으로도(커뮤니케이션, 일정 조율 및 산출, 부서 협업, 대량 트래픽, 고객반응), 기술적으로도 성장을 이룰 수 있는 회사에 입사해 뛰어난 동료들로부터 영향을 받고 또 주면서 성장하는 것이라는 것은 어찌 보면 정답인데, 병특이 끝나면 도전할 생각이기도 하고 상황이 여의치 않은 경우 어떻게 성장할 수 있을 지 고민하면서 적어보았다.

 

 

 

 

 

 

 

 

 

 

반응형

댓글