개발자는 끝임없이 트렌드를 쫒아야 하는가?

어느덧 나도 개발 경력이 10년쯤 되어 버렸고, 그에 따라 나도 ‘아재’ 개발자가 되어 버렸다.

같이 일하는 동료 개발자중 한명은 무수히 쏟아지는 새로운 기술들에 대해 회의적이며, 이것이 당장 내 퇴근 시간을 줄여주지 않는다면 새롭게 익히는 데 관심이 없다. 그렇게 생각하는 이유는 이것을 익힌다고 실질적으로 이러한 기술들이 나의 퇴근 시간을 줄여주지 않기도 하고, 기술이 점점 더 복잡해지지만, 그러한 복잡함이 어떠한 도움을 주는 지에 대해 이해할 수 없기 때문이기도 하다. 또한 새로운 기술이 너무나도 많이 나와 내가 배웠던 기술들은 어느덧 폐기물이 되는 순간이 오기 때문이기도 하다. 그러한 순간은 이제 너무나도 빨리 와서, 내가 새로운 것을 익히고 이제 좀 쓸만하다곡 느껴질 때, 막바로 그런 순간이 올 때도 있다. 얼마나 씁쓸한 일인가? 이제 좀 알겠다 싶은데 아무도 안쓴다고 하니, 사실 나 역시도 이렇게 빠르게 트렌드가 바뀌는 데 대해 아쉬운 생각은 가지고 있다. 그래서 결론적으로 우리는 이러게 끊임없이 변화화는 트렌드에 대해 대응해야 하는가? 나오면 나오는 족족 습득해야 하는 가?

어느 누구도 당신에게 새로운 것을 배우라고 강요하지 않지만, 결론부터 말하자면, 이 질문에 대한 나의 대답은 모든 것을 알 수는 없지만, 어느정도는 트렌드에 부응해야 하고, 기본적으로 개발자의 직업 특성 상 끈임없이 기술습득이 이루어져야 하며(물론 그렇게 하지 않아도 된다.), 이 자체가 나의 경쟁력이 될 수 있어서 가능하면 많이 공부하면 좋다. 물론 공부를 많이 한다고 해서 이것을 바로 현금화 할 수 있지는 않다. 또한 대한민국에서 개발 쪽의 문제 중에 하나가 개발자에 대해 세밀한 평가가 잘 되지 않는 다는 것 때문에 공부를 한다는 것이 어찌보면 바보짓일지도 모르겠다. 회의적인 부분을 이야기 보자면 당신이 얼마나 코드를 훌륭하게 짜던 누구든간에 당신의 코드에 관심을 같지 않으며, 당신이 열심히 무가를 공부를 한다 하더라도 이러한 노력을 누군가 평가 안해 줄 수도 있다.

하지만 그럼에도 불구하고 열심히 트렌드를 쫒아야 된다는 다음과 같은 관점을 제시할 수 있다.
첫째, 기술은 빠르게 변화하고 내가 지금 알던 것은 어느 순간 옛것이 되어 버린다. 시간이 지날 수록 이러한 현상은 가속되고 있다. 당신이 기술에 대한 결정권자가 아니라면 옛것을 고집할 수 없게 된다. 즉 새로운 것을 받아들이지 않는 다면 언젠가는 도태된다는 이야기다.물론 그러한 순간이 당장 찾아오지는 않는다. 언제가는 위기감을 느끼고, 무언가를 배워보려할 지도 모르겠다. 하지만, 다시 책을 잡았을 때 이미 새로운 기술은 내 상상을 넘어 완전히 새로운 것일 수 있고, 무언가 배우는 것 자체가 고통일 수 있다. 비유하자면, 1층 부터 99층 까지 뛰어 올라가는 너무나도 힘든일이라는 것이다. 반면에 98층에서 99층까지 올라가는 것을 굉장히 쉬운일이다. 기술은 어느 날 갑자기 하늘에서 뚝 떨어지는 일이 없다. 지금 새로 나온 기술은 바로 전 버전의 어떤 기술의 안조았던 점을 보안하면서 나온다. 그렇기 때문에 대부분의 기술은 유익하다. 만약 완벽하게 새로운 것이 주목할 만한 점을 가지고 나온다면, 그 기술은 매우 주목할 만한 것이다. 즉, 대개의 기술은 기존의 것을 보안하거나 약간의 좀 더 조은 아이디어를 가지고 나온다. 결국 현재의 기술들 에 대해 잘 이해하고 있다면, 새로운 것을 받아 들이기도 쉽고 때로는 다음에 어떤 것이 나올 지 예측도 가능할 것이다. (그건 아닌가? 아무튼) 그래서 힘들지만 너무 회의적이만은 않다는 것이다. 내가 지금 배운 이 기술이 바로 사장 되더라도 새로운 것을 배우기 위한 토양이 된다고 긍정적으로 생각해보자.

둘째, 새로운 건 좋은 거고 실제로도 도움이 된다. 아닌 것도 있겠지만, 대부분 그러하다. 전에도 말했듯 ** 새로운 것은 기존의 좋은 것을 계승하고, 안좋은 것을 보안하기 때문이다.** 좋으면 더 좋을 수록 많은 사람들이 더 주목할 것이다. 구경꾼이 몰리는 데는 이유가 있지 않겠는가? 복잡해 질 수도 있지만, 당신의 퇴근 시간을 줄여주는 녀석들도 있다. 귀찮지만, 새벽녘에 일어나서 대응해야 할 일을 줄여 줄지도 모른다. 어찌되었던 맹목적으로 쫒을 이유는 없지만, 인기있는 것에는 이것이 무엇인가 알아보는 자세를 가져보길 바란다.

셋째, 배움의 과정은 하나 하나 시간이지만, 그 시간은 어찌되었던 나에게 영향을 준다. 배우면서 무언가를 습득하지만, 그 과정에서 나의 사고도 상상력도 자라난다. 어떤한 것을 하는데에 통찰을 가지게 되고, 자연스레 나라면 이건 이렇게 할거야라는 생각도 자라난다. 무언가를 배울 때, 일단 습득하기 위해 닥치고(?) 배우는 자세도 필요하겠지만, 동시에 비판적인 시각도 동시에 가지기를 권한다. 그러한 자세가 기술에 매몰되지 않고, 훌륭한 시야을 만드는 데 일조하기 때문이다.

뭐 트렌드를 쫒아야 하는 절대적인 이유는 없고, 전부 쫒을 수도 없다. 또한 틀린게 있을 수도 있겠다. 그러므로 배우는 것도 전략을 가지기를 바란다. 동일한 일을 하는 것을 모두 다 알아야 할 필요는 없다. 하지만 어떤것이 더 좋은 것인가 비교를 하기 위해서는 전부 어느정도는 알아야 할 것이다. 하지만 모든 것을 배울 시간은 없으므로 커뮤니티에 주목하길 바란다. 내 경우는 ‘vs 검색’ 이나 구글 트렌드를 살펴보는데, 외국의 경우에 커뮤니티는 활성화되어 있어 참조할만 하다. 일전에(오래전 일이지만) ant vs gradle vs maven vs ivy 를 구글에서 검색해 보았는데, 굉장히 만족할 만한 결과를 얻었다. 무려 4-5 페이지 정도의 분량으로 각각의 기술에 대한 상세 비교를 해놓았는데, 정말 이런 기술 덕후를 봤나 싶었다. 대부분 스택오버플로우나 여러 커뮤니티에서 이러한 정보를 쉽게 얻을 수 있다. 또한 자신의 포지션도 있을 것이다. 디자인도 하고 ux전문가이기도 하며, devOps전문가인 동시에 휼룽한 시니어 백엔드 프로그래머이며, 엄청난 javascript닌자인 사람은 굉장히 드물다. 또한 당신이 그런 사람일지라도, 그러한 모든일이 동시에 처리할 수 있는것이 아니다. 우선은 여러가지를 다 잘한다기 보다도 한가지를 잘하되 그에 따른 필요한 것들을 습득해 나가자. 부가적으로 이렇게 하는 것이 다음 직장을 위한 이력서 작성에도 도움이 될 것 이다. 결국에 개발자는 일로서 성장하는 것이기에 가능하면 다음 직장은 좀 더 많을 것을 배울 수 있는 것이 좋다. 어느 정도 하나를 다 배우면 그 다음에는 다른 것을 할 기회도 생길 것이다.

마지막으로 나와 같은 ‘꼰대 개발자’ 들에게… 당신은 이미 시니어고 어느정도 위치에 서 있다. 하지만 그런 것에 대해 약간의 자만이나 자부심을 가진다면 일단 다시 다 내려놓으라고 하고 싶다. 다시 또 처음으로 돌아서 열공해야 할 때 온거다. 새로운 기류에 편승하지 못하면, 언제가는 유능한 후배들에게 자리를 내놓아야 할지도 모른다. (물론 밥을 굶진 않겠지만,) 꼭 내 밥그릇을 지키기 위해서가 아니라, 개발자로서 또한 배우기를 좋아하는 개발자들의 동료로서 그들과 소통하기 위해서라도 배움이 필요하다. 시니어로서 기술에 대한 결정권에 영향을 미칠 수 있는 위치에 있다면 더 올바른 판단을 하기 위해서라도 그런 것에 대한 정보가 필요하다. 그리고 첨언하자면 개발자는 원래 그런거 같다. 끊임없이 배우는 거 이거 피할래야 피할 수가 없는 거 같다.