F-Lab
🚀
깊이 있는 개발자 커뮤니티, 데브클럽에 함께 하세요

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

writer_thumbnail

F-Lab : 상위 1% 개발자들의 멘토링

 

우리나라에서는 많은 개발자들이 구현을 위주로 개발을 합니다. 성능이나 유지보수성을 고려하지 않고 구현을 최우선적으로 하는 경우가 많고, 고려하더라도 깊게 파고들지는 않는 경우가 비일비재합니다. 특히 많은 경우 회사에서 일정에 쫓겨 개발하는 개발자들도 허다하죠.

 

경력이 쌓일수록 연봉이 올라가는 것은 경력에 준하는 능력이 있기 때문인데, 구현을 위주로 개발을 하는 경우에는 제대로 된 성장을 할 수 없어 좋은 개발자로서 필요한 지식이나 자질을 키울 수 없고, 코딩 속도만 늘게 됩니다.

 

하지만 사람은 노화가 오고 코딩 속도는 떨어지게 됩니다. 그럼 이런 사람들은 회사 입장에서 연차는 쌓였지만 신입과 다를 바가 없겠죠. 그래서 고용해야 할 필요성을 느끼지 못하고, 지식수준은 비슷하지만 속도가 더 빠른 젊은 사람을 고용하게 됩니다. 연봉이 오르기는커녕 그 사람에 대한 메리트가 떨어지게 되는 거죠. 이렇게 서서히 도태되면 개발자로서 살아남기 힘들어지고, 종국에는 치킨집을 차린다는 말이 나오는 겁니다.

 

위 내용을 읽으면서 “회사와의 정이 있는데..”라는 생각이 드셨을 지도 모르겠습니다. 하지만 냉정하게 말하자면 회사와 근로자는 계약 관계이고, 정이라는 것은 둘 중 불리한 위치에 있는 사람이 내세울 수 있는 것 중 하나일 뿐입니다.

 

또한 여러 교육기관에 의해 개발자가 시장에 쏟아져 나오고 있습니다. 즉 구현에 치중된 개발자는 쉽게 대체될 수 있는 사람이라는 반증이죠. 쉽게 대체될 수 있는 사람은 좋은 대우를 받기 힘듭니다. 조금 나쁘게 말하자면 같은 값 혹은 더 싼값으로도 그 자리를 채워줄 사람은 많으니까요.

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

 

 

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

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

 

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

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

 

 

 

이론의 중요성

 

아마 현업 개발자라면 인스타그램의 기능을 베껴서 SNS를 만드는 건 쉽게 구현할 겁니다.

 

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

 

또한 이런 프로젝트를 여러 개발자가 동시에 유지보수한다고 가정하면 생산성과 유지보수성을 최대한 높이기 위해서는 어떻게 해야 하는지까지 고민해야 합니다.

 

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

 

또한 이론을 현업에 어떻게 적용할 수 있을지까지 고민한다면 이러한 고민의 깊이는 이론과 함께 잘 버무려져서 그 개발자만의 강점이 됩니다. 시니어 개발자의 가치가 여기에서 나오는 것이죠.

 

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

 

 

 

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

 

책을 읽어야 합니다.

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

 

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

 

 

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

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

 

하지만 기본기를 탄탄히 쌓은 이후에 있어 보이는 것들을 공부하시는 것이좋습니다. 이전에 회사에서 면접관으로서의 경험과 멘토링 상담을 하면서 느꼈던 점은 자바를 사용하는데도 불구하고 자바에 대해 모르는 사람이 많았고, 스프링을 사용함에도 스프링에 대해 모르는 사람이 많았다는 것입니다.

 

한 가지 예로, 만약 본인이 Java, Spring, MySQL 이 세 가지의 기술 스택을 사용한다면 다른 것을 공부하기 이전에 ‘내가 사용하는 기술들에 대해 잘 알고 있는가?’라는 자문자답을 해보는 것이 좋습니다. <strong>Spring</strong>을 왜 사용하는가?, <strong>Spring</strong>을 사용하면 뭐가 좋은가?, <strong>Spring</strong>의 단점은 무엇이 있는가?, <strong>Spring</strong>에서 제공하는 기능들을 최대한 꼼꼼하게 알고 있는가? 정도로 질문해 보시면 됩니다.

 

이런 것들만 공부해도 학습량이 아주 많아질 겁니다. 개발자는 평생 공부해야 한다는 말이 있는 것도 위에 언급한 내용들을 계속 공부해야 하기 때문입니다.

 

 

맺음말

마무리 정리해 보겠습니다. 개발자가 성장하려면 계속해서 이론을 학습해야 합니다. 성능 튜닝도 지속적으로 깊게 파다 보면 결국 학교에서 지루함을 느꼈던 과목인 컴퓨터 사이언스 지식들이 나오게 됩니다. 그렇기에 기본기가 매우 중요하다는 겁니다.

 

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

 

읽어주셔서 감사합니다.

 

더 알아보기

개발자가 더 좋은 역량을 가지려면 무엇이 중요할까요?

이 글을 읽어보시면 참고가 되실겁니다.

 

👉 개발자는 “문제 해결 능력”에 앞서 “문제 정의 능력”이 중요하다.

 

 

ⓒ F-Lab & Company

이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.

조회수

멘토링 코스 선택하기

  • 코스 이미지
    Java Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Node.js Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Python Backend

    대규모 서비스를 지탱할 수 있는 대체 불가능한 백엔드, 데이터 엔지니어, ML엔지니어의 길을 탐구하는 성장 과정

  • 코스 이미지
    Frontend

    기술과 브라우저를 Deep-Dive 하며 성능과 아키텍처, UX에 능한 개발자로 성장하는 과정

  • 코스 이미지
    iOS

    언어와 프레임워크, 모바일 환경에 대한 탄탄한 이해도를 갖추는 iOS 개발자 성장 과정

  • 코스 이미지
    Android

    아키텍처 설계 능력과 성능 튜닝 능력을 향상시키는 안드로이드 Deep-Dive 과정

  • 코스 이미지
    Flutter

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    React Native

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    Devops

    대규모 서비스를 지탱할 수 있는 데브옵스 엔지니어로 성장하는 과정

  • 코스 이미지
    ML Engineering

    머신러닝과 엔지니어링 자체에 대한 탄탄한 이해도를 갖추는 머신러닝 엔지니어 성장 과정

  • 코스 이미지
    Data Engineering

    확장성 있는 데이터 처리 및 수급이 가능하도록 시스템을 설계 하고 운영할 수 있는 능력을 갖추는 데이터 엔지니어 성장 과정

  • 코스 이미지
    Game Server

    대규모 라이브 게임을 운영할 수 있는 처리 능력과 아키텍처 설계 능력을 갖추는 게임 서버 개발자 성장 과정

  • 코스 이미지
    Game Client

    대규모 라이브 게임 그래픽 처리 성능과 게임 자체 성능을 높힐 수 있는 능력을 갖추는 게임 클라이언트 개발자 성장 과정

F-Lab
소개채용멘토 지원
facebook
linkedIn
youtube
instagram
logo
(주)에프랩앤컴퍼니 | 사업자등록번호 : 534-85-01979 | 대표자명 : 박중수 | 전화번호 : 1600-8776 | 제휴 문의 : info@f-lab.kr | 주소 : 서울특별시 강남구 테헤란로63길 12, 438호 | copyright © F-Lab & Company 2024