개발자는 왜 40살에 치킨집을 차리게 될까?

안녕하세요. 멘티가 좋은 개발자로 성장할 수 있도록 서포트하는 개발자 멘토링 기관 F-Lab 입니다.

이 글에서는 멘토링 관련해서 상담할 때 자주 해드리는 이야기인 개발자는 왜 40살에 치킨집을 차릴까? 라는 주제에 대해 개발자는 이론이 중요하다라는 말과 연관지어서 말해보려고 합니다.

먼저 이 글에 나오는 이야기는 개인적인 의견임을 밝힙니다.

개발자는 40살에 왜 치킨집을 차릴까?

이 이슈를 먼저 얘기해보자면 우리나라에서는 많은 개발자들이 구현을 위주로 개발을 하고는 합니다. 성능이나 유지보수성을 고려하지 않고 구현을 최우선적으로 하는 경우가 많고, 고려하더라도 깊게 파고들지는 않는 경우가 많습니다. 특히 일정에 쫓겨 개발하는 경우가 많은 회사에 다니면 이런 상황이 많이 발생합니다.

경력이 쌓일 수록 연봉이 올라가는 것은 경력에 비례하여 능력이 올라가기 때문인데 구현을 위주로 개발을 하는 경우에는 이러한 능력은 결국 개발의 속도, 즉 코딩 속도라는 능력이 되어버립니다.

하지만 나이를 먹을 수록 사람은 노화가 오고, 코딩 속도는 떨어지게 됩니다. 이러한 상황에서 회사의 입장을 보면 지식 수준은 비슷한데 속도가 더 빠른 젊은 사람보다 더 많은 돈을 주고 그 사람을 고용해야할 필요성을 느끼지 못하게 됩니다. 즉 그 사람에 대한 메리트가 떨어지는거죠.

회사와의 정이 있는데.. 라는 말이 나올 수 있지만 냉정하게 말하자면 회사와 근로자는 계약 관계이고, 정이라는 것은 둘 중 불리한 위치에 있는 사람이 내세울 수 있는 수 중에 하나일 뿐입니다.

또한 여러 교육기관에 의해 개발자는 시장에 쏟아져나오고 있습니다. 즉 구현에 치중된 개발자는 쉽게 대체할 수 있는 사람이라는 것이죠.

쉽게 대체될 수 있는 사람은 좋은 대우를 받기 힘듭니다. 조금 나쁘게 말하자면 같은 값 혹은 더 싼 값으로도 일할 사람은 많으니까요.

그렇다면 쉽게 대체할 수 없는 사람이 되려면 어떻게 해야할까요?

개발자가 없어서 못 뽑는다.

네이버, 카카오 등 개발자가 다니기 좋다고 알려져있는 여러 회사에서 이런 말을 하는 것을 많이 보셨을겁니다. 하지만 말이 참 이상하죠. 위에서는 여러 교육기관에 의해 개발자가 시장에 쏟아져나오고 있다고 말했었습니다.

다시 생각해보면 회사들의 입장에서는 이런 시장에 즐비한 개발자들이 개발자로 보이지 않는다라는 겁니다.

그렇기 때문에 이런 기업에서 원하는 개발자가 된다면 뽑기 힘든 개발자, 즉 쉽게 대체할 수 없는 사람이 되는 것이고, 회사에서도 이런 사람은 채용하는게 매우 힘들고 비용도 많이 들기 때문에 이탈을 방지하고자 좋은 대우를 해줄 수 밖에 없는 것입니다.

이론의 중요성

아마 대부분의 현업 개발자시라면 인스타그램의 기능을 베껴서 비슷하게 SNS를 만들어보라고 하면 다들 쉽게 구현하실겁니다.

하지만 여기에 간단한 요구사항 하나만 추가하면 난이도는 엄청 어려워집니다. 예를 들자면 1억 명의 회원들이 사용한다라는 임의의 가정을 해보면 초당 들어오는 트래픽도 어마어마할 것이고, 이런 요청들을 실시간으로 처리해주려면 아주 많은 것들을 고려해야할 것입니다.

또한 이런 프로젝트를 여러 개발자가 동시에 유지보수하게 된다고 했을 때 생산성과 유지보수성을 최대한 높히려면 어떻게 해야할까?라는 가정까지 하면 고민해야할 것들은 훨씬 많아집니다.

이런 어려운 점들에 대해 고민할 수 있게 도와주는 것이 바로 이론 입니다. 위의 치킨집 이야기와 엮어보자면 단순히 코딩속도가 강점인 개발자는 다른 개발자에게 따라잡힐 수 있지만 경력을 쌓는 기간동안 꾸준히 함께 쌓아온 이론은 다른 사람들이 따라오기 힘듭니다.

또한 이론은 쌓이기만 하는게 아니라 현업에 적용하면서 고민까지도 함께 하게되고, 이렇게 쌓여간 고민의 깊이는 이론과 함께 버무려져서 그 개발자만의 강점이 됩니다. 시니어 개발자의 가치가 이런 곳에서 나오는 것이죠.

그래서 개발자는 이론을 공부할 시간이 필요합니다. 일정에 쫓겨서 야근을 많이 하게 되면 그만큼 공부할 시간이 줄어들고, 늘어나는 본인의 경력에 비례하는 실력을 갖추기 힘들어지는 경우가 많습니다. 그래서 더 좋은 회사로 이직하지 못하고 갇혀있는 경우도 생기게 되고요.

이론은 어떻게 공부해야할까요?

책을 읽어야 합니다

멘티들에게 개발자의 연봉은 책에서 나온다라는 말을 자주 해주곤 합니다.

단순하게 블로그를 보면서 단편적인 지식을 얻는 것만으로는 깊게 파고들 수 없습니다. 특정한 언어나 기술에 대해 배경부터 상세한 스펙까지 잘 알려주는 것은 책과 도큐먼트입니다. 하지만 도큐먼트는 양도 방대하고 영어인 경우도 많으니 상대적으로 접근성이 좋은 책을 추천드리고 있습니다. 물론 제일 디테일하게 보려면 공식 도큐먼트를 보는 것이 제일 좋습니다.

어떤 것을 공부해야 하나요?

보통 공부라 하면 새로 나오는 기술들같이 있어보이는 것들에 치중하는 경우가 많습니다.

하지만 기본기를 탄탄히 쌓아두고나서 그런 있어보이는 것들을 공부하시는게 좋습니다.

이전에 회사에서 면접관으로 참여했을 때의 경험과 멘토링 상담을 하면서 느꼈던 점은 자바를 사용함에도 자바에 대해 모르는 사람이 많았고, 스프링을 사용함에도 스프링에 대해 모르는 사람이 많았다 입니다.

예를 들자면 만약 본인의 기술 스택이 Java, Spring, MySQL 이렇게라면 다른 것을 공부하시기 이전에 나는 내가 사용하는 기술들에 대해 잘 알고있는가?라는 자문자답을 한번 해보시는 것이 좋습니다.

질문의 예를 간단히 말해보자면 Spring을 왜 사용하는가?, Spring을 사용하면 뭐가 좋은가?, Spring의 단점은 무엇이 있는가?, Spring에서 제공하는 기능들을 최대한 꼼꼼하게 알고있는가? 정도로 질문해보시면 됩니다.

이런 것들만 공부하려고 해도 공부해야하는 양이 아주 많아질 겁니다. 개발자는 평생 공부해야한다라는 말이 있는 것도 이런 것을 계속 공부해야하기 때문에 공부양이 방대해서이기도 합니다.

마무리

이 글에서 말씀드린 것처럼 개발자가 성장하려면 계속해서 이론을 학습해야합니다. 성능 튜닝도 계속 깊게 파다보면 결국 학교에서 배우기 지루했던 과목인 컴퓨터 사이언스의 지식들이 나오게 되고, 그만큼 기본기도 매우 중요합니다.

계속 “왜”를 던져가며 깊게 파고들다보면 공부하기 지루했던 이론들이 어디서 쓰이고 있던 것들인지도 볼 수 있게 될 것이고, 위에서 언급한 대체하기 힘든 사람에 점점 가까워지실 수 있을겁니다.

읽어주셔서 감사합니다.

홍보

멘티 모집

F-Lab에서는 현재 수강생들을 모집하고 있습니다.

F-Lab에서 멘토링 받기를 희망하시는 분들은 아래의 홈페이지에서 내용을 읽어보신 다음 신청해주시면 감사하겠습니다.

홈페이지 : https://3th.f-lab.kr