CHAPTER 2 < 주의사항 />
개발자들이 자주 범하는 또 하나의 실수는 각주구검(刻舟求劍)의 함정에 빠진다는 것이다.
개발자는 끊임없이 학습해야만 살아남을 수 있다.
마치 물에 빠지지 않기 위해 계속해서 수면 아래에서 움직이는 백조의 발처럼 말이다.
개발자로서 어느 정도 숙련되면, 특정 언어나 개발 방식이 익숙해지기 마련이다.
그때부터는 다른 방식에 눈길을 주지 않고, 자신이 익숙한 개발 방식만 고집하는 경향이 생기게 된다.
이는 게으름 때문이 아니라, 완성도를 높이기 위한 일종의 안전지대에 머물고자 하는 심리에서 비롯된다.
새로운 미션을 받았을 때, 익숙한 언어와 방법을 사용해야 작업의 완성도를 높이고, 납기일도 맞출 수 있기 때문이다.
이 말에 의문을 제기하는 사람도 있을 것이다.
전문가가 중시되는 시대에 한 우물을 파는 게 나쁘지 않다고 말할 수도 있다.
물론, 그 언어가 희귀해져 몸값이 높아진다면 문제될 건 없겠지만, 개발 트렌드가 급변하고 있는 지금, 옛 방식만 고수하는 것은 문제가 될 수 있다.
필자도 이 부분에서 큰 어려움을 겪었다. 기존에 익숙한 방식으로 충분히 개발이 가능했기 때문에 새로운 방법을 배우는 데서 오는 불편함과 두려움이 컸다.
그동안의 노하우를 버리고 새로운 기술을 배워서 과연 지금 수준의 완성도를 낼 수 있을지 걱정스러웠던 것이다.
필자의 경험을 예로 들어보겠다.
몇 년 전만 해도 순수 JavaScript 만으로 웹사이트를 개발하곤 했다.
JavaScript는 당시에도 강력한 도구였고, 많은 개발자들이 여전히 사용하고 있다.
웹 개발의 핵심 언어이기도 하니까 말이다.
그러나 당시 내가 만들던 웹 플랫폼에서는 그 정도만 알면 충분했다.
JavaScript의 원리와 사용법만 알면 되니, 모든 프로젝트를 이 방식으로 고수했다.
그러던 중, 반 강제로 Angular, React, Vue 같은 프레임워크들을 접하게 되었고, 그때 놀라움을 금치 못했다. 복잡하게 길었던 코드가 단 몇 줄로 줄어들었던 것이다.
여기서 무엇이 우위에 있고 무엇이 아래라는 논쟁을 하자는 것은 아니다.
단지, 새로운 기술을 접했을 때 그 효율성을 깨달은 경험을 공유하고자 할 뿐이다.
개발을 하다 보면 동료 개발자들이 더 좋은 기술이나 트렌드를 추천할 때가 있다.
내 업무에 살짝 도움이 되는 정도라면 기꺼이 받아들이겠지만, 내가 사용하는 개발 언어나 방식을 통째로 바꿔야 하는 경우라면, 그 변화를 반갑게 맞이하는 개발자는 많지 않을 것이다.
변화란 쉽지 않다.
본인이 스스로 필요성을 느끼고, 옛 방식을 버릴 준비가 되지 않는 이상 말이다.
혹자는 이렇게 말할 수도 있다. "한 우물을 파다 보면 그 분야의 전문가가 될 수 있지 않느냐?" 맞는 말이다. 한 가지에 집중하다 보면 전문가가 될 수 있다. 그러나 문제는, 많은 경우 한 우물을 파면서 점점 깊이 연구하고 공부하기보다는 익숙해진 방식을 반복적으로 사용하는 데 그치게 된다는 것이다.
이쯤 되면 그 방식이 진정으로 효율적인지 고민해봐야 한다.
만약 개발 트렌드가 전혀 다른 방향으로 흐르고 있다면, 예전 방식을 고수하는 것이 맞는지, 아니면 새로운 기술을 한번쯤 시도해보는 것이 나을지 판단해야 할 시점이 온다.
모든 기술에는 부족함과 과함이 존재한다.
무조건 새로운 것을 쫓을 필요도 없고, 무조건 옛것을 고수할 필요도 없다.
적절한 균형을 유지하면서 트렌드를 주시하고 있다가, 나에게 이득이 될 순간이 오면 주저 없이 새로운 기술을 받아들이는 것이 중요하다.
이것이 선배 개발자로서, 후배들에게 전하고 싶은 작은 바람이다.
각주구검 : 현실과 동떨어진 낡은 사고방식을 고집한다.