요즘 아이들이 동경하는 직업으로 유튜버(Youtuber)를 꼽는다고 합니다. 유튜브(Youtube)를 보는 사람이 많아지면서 유튜버의 인기가 높아지면서 높은 소득을 얻는 사람도 나왔습니다. 그러나, AI, 클라우드, SaaS, DX등 화제가 되고 있기 때문에 IT 개발자로써는 높은 연봉을 받고 싶은 목적이 있기 때문에 이에 대해서 몇자 적어보려고 합니다.
중소벤처기업부(중기부)는 소프트웨어(SW) 개발인력 부족 문제를 해결하기 위해 벤처스타트업 아카데미를 2021년부터 시작하여 내년상반기까지 5000명의 인재를 양성한다는 계획을 발표한바 있습니다. 또한, SW정책연구소의 발표 내용에 따르면 국내에서만 2025년까지 약 1500만명의 인력수요가 예상되지만, 그만큼 인력이 부족하다는 내용입니다. 그리고 2020년 코로나19 펜데믹 상황 속에서 글로벌 ICT산업 고용증가율은 약 10%로 전 산업 중 최고치를 기록하고 있고 디지털 경제 분야도 고용이 약 7.5% 증가했다고 발표하였습니다.
그리고 기업내 디지털 인력 비중이 2018년 6.5%, 2019년 7.0%, 2020년 7.5%로 매년 상승하고 있는 상황이고 이 중에서 기술/미디어/통신산업은 작년 기준 14%이며, 금융업도 디지털 인력 비중이 9%로 상승세입니다.
또한 마이크로소프트사의 분석에 따르면 2025년까지 전세계적으로 1억4900만개의 신규 일자리가 생겨날 전망이고, 알파베타 컨설팅 기업에서는 한국이 2020년부터 2025년까지 1560만명의 디지털 인력이 추가로 필요하다고 발표한바 있습니다.
국내 대학에서 배출되는 SW전공 졸업생은 연간 17000명 수준으로 시장 수요에는 절대적으로 부족한 상황입니다. 이런 상황등을 고려하면 IT개발자 수요가 높은 직종으로 좋은 대우가 기대되어 좋은 것이라고 볼 수 있습니다. 전 직종 평균 임금은 한국이 OECD국가 중 지난 20년간 43.5%가 증가하여 올해 일본 인상률 0.4%로 일본을 앞섰으며 한국은 구매력평가(PPP)기반한 달러화 기준 41,960달러(약 4945만원)의 평균연봉이 발표되었으며, 일본은 38,515달러(약 4540만원)으로 한국보다 아래가 되어가고 있는 상황입니다. (아베노믹스로 엔화를 마구 찍어냈지만, 삶은 좋아지지 못한 상황이라고 보시면 됩니다. 다만, 일본 현지에서는 엔화 기준으로 발표하고 있어서 전직종 평균 연수입이 455만엔이라고 주장하고 있음) 그렇다면 한국의 SW 개발자 평균 연봉은 얼마일까요? 대략적으로 8000만원 수준으로 받습니다. 다만 초급자가 아닌 중급자 이상입니다. KOSA에서 매년 발표하는 소프트웨어 기술자 평균입금표를 기준으로 설명하였습니다. 그러나, 사실 개발자들이 취업 후, 실제 개발하는 환경은 그에 못미치는 실정이고 3D 업종이라고 말하기도 하여 노동 집약적인 이미지가 있다는 것도 현실입니다.
필자는 프리랜서 개발자로 9년정도 개발일을 해왔으며, 스타트업의 기술책임자(CTO)를 경험하였으며, 지금까지 20년 넘게 IT기업 경영자이면서 IT강사로서 시스템 개발 프로젝트와 개발자양성을 하고 있습니다. 물론 SW 개발자의 평균 연봉이 8000만원정도 되는 것이 일반 직장의 평균연봉보다 높은 것은 사실입니다. 다만, 초기에 기업들의 특성에 따라 최하 2400만원의 연봉으로 시작할 수 있는 경우도 있다는 사실을 인지하고 있어야 합니다. 경력을 통해 연봉을 높이는 방법을 소개하기 위해 글로 정리한 것으며, Java Spring Boot기반으로 웹애플리케이션을 만들고, Python으로 기계학습과 분석서버를 만들어 AWS(Amazon Web Services)에서 인프라 구축, iOS/Android 모바일앱 개발등 실무로 현장에서 프로그래밍을 하면서 다양한 프로젝트를 경험하였습니다.
지금까지 개발자로서 평가받는 입장, 그리고 현재 많은 개발자를 평가하는 입장 모두를 경험한 경영자와 개발자 양쪽을 고려하면서 "개발자는 앞으로 어떤 관점과 사고방식을 가지고 보람있는 직업과 그에 맞는 연봉을 높게 받을 수 있을지"를 생각해 보았습니다.
개발자의 연봉이 오르지 않는 이유는 사실 "IT업계의 다중 하청 구조가 원인이며, 실제 개발을 하는 기업의 몫은 적기 때문이다"라는 의견들이 있지만, 이것이 전부라고 이야기해서는 안됩니다.
아무도 명확하게 이야기하지 않지만, 이 구조의 원인은 "노동규제가 있는 한국에서는 개발자를 정상적으로 다수 고용하는 것이 공급업체 및 발주사가 경영 리스크가 있다고 생각하는 것"입니다. 외부 업체의 개발자를 프로젝트에 필요할 경우, 필요한만큼만 조달하여 프로젝트를 완료 후, 유지보수 단계로 들어가면 개발자 전체 인력수를 모두 필요하지 않다고 판단하고 줄이거나, 경기가 안좋으면 개발인력부터 줄이는 형태의 고용조정 밸브 역할을 다중 하청 구조에서 일어나고 있습니다.
그 결과로 인해 개발인력이 필요한 제조 단계에서만 종사하는 개발자가 많이 생산되었습니다. 기술과 연봉을 늘릴 수 있는 기회가 많은 상위 공정을 경험하는 기회가 적고, 실력이 늘지 않는 상태의 개발자가 상당수 많아졌습니다. 나이는 점점 들면, 연봉이 높아지다가 정년이 다가오면 다시 연봉은 내려가게 됩니다. 그런 개발자는 결국 납기일과 공정사이에 끼워진 톱니바퀴처럼 힘든 개발 노동을 반복하게 되면서 개발자의 마음은 피폐해져 갑니다.
하청 계약에 의해 종사할 개발업무의 단계를 제한된 상태로 제대로 필요한 기술과 능력이 있는 개발자의 절대 필요한 숫자는 증가하지 않는 것이 문제이며, 기술력(skill)을 늘릴 수 있는 환경기술을 배울 수 있는 환경을 업계에서는 준비되어 있지 않는 상태에서 개인의 노력으로만 이룰 수 있다는 상황은 최첨단의 미래를 만드는 산업에서 의지하지 않고는 말하지 않을 수 없는 것입니다.
물론 가장 기본은 실력이 있는 것이지만, 소속된 회사가 하도급(SI)의 갑을정 중 정과 같은 낮은 계층에 있어, 충분한 보상을 얻을 수 없는 사람은 더 상위의 공정을 경험할 수 있는 회사로 바로 이직하고 싶어 할 것입니다. 20-30대 초반의 독자라면 앞으로 실력으로 갈 수 있는 단계의 개발자는 "기술력을 늘릴 수 있는 환경은 어디일까?"라고 생각하며 회사를 선택하는 것이 중요합니다.
최근 코로나19(COVID-19) 바이러스 펜데믹의 영향으로 재택근무를 도입하는 기업이 많아졌습니다. IT산업은 다른 산업보다 재택근무에 대한 저항이 적고, 코로나19 펜데믹 이후에도 재택근무를 계속하는 기업도 많아질 것으로 예상됩니다. 실무 개발 현장에서는 카카오톡과 같은 채팅, Git, Zoom, Slack, Google Docs등으로 업무를 할 수 있고, 업무성과가 생기면 물리적인 출근을 할 필요성이 적어지게 된다고 볼 수 있습니다. 그러나 재택근무가 좋은 것만은 아니며, 무의해지고 있다는 것입니다.
참고로 필자 회사에서 세종시 물순환도시 홍보서비스를 제작하기 위해 세종시에서 다닐 수 있는 개발자가 담당하였습니다. 어느 정도 제한된 지역에서 활동하는 개발자로 이슈가될 수 있습니다. 그러나, 재택근마무가 일반화되고 있는 현재에서는 서울뿐만 이나라 부산, 광주, 제주도에서도 업무 수행을 할 수 있습니다. 언어적인 문제만 없다면, 한국에서만 살 필요도 없습니다. 최근에는 필자 회사에서는 한국에 있는 개발자가 도쿄에서 발주받은 일을 일본 개발자대신 작업하는 경우도 나왔습니다.
이제 시대의 흐름에서 경쟁할 수 있는 능력을 가지는 것이 중요해지고 있습니다.
독자 여러분, 기술력이 높으면, 높은 연봉을 받을 수 있을까요?
한국소프트웨어산업협회에서 매년 발표하는 SW기술자 평균임금표를 기준으로, 3-5년차가 5000만원대, 5-8년차 7000만원대, 9-10년차가 8000만원대가 평균입니다. (해외처럼 IT기술표준을 기준으로 레벨1부터 레벨7로 나누어 연봉체계를 바꾸는 것을 이야기하고 싶습니다. 해외 기준으로 보면 레벨3가 중급정도로 국가자격증인 정보처리기사 수준이고 레벨4는 높은 수준의 IT전략 또는 시스템 설계자등을 대상으로 하는 국가자격증이 필요하다고 봅니다.)
이런 IT기술표준은 자신이 지금 어느 수준에 있고, 다음 어느 수준까지 목표로 할 것인가에 대한 도움이 될 수 있으며, 지금 일하고 있는 환경이 다음 목표로 갈 수 있는 곳인지를 냉정하게 판단할 수 있는 잣대가 될 수 있습니다. 자격증을 취득하는 것을 떠나서 각 레벨에 맞춰 요구되는 지식과 경험이 무엇인지 아는 것만으로도 앞으로 개발자 인생에 유용해집니다. 이런 잣대가 없이 경력을 고려한다면 네이게이션 없이 자동차를 타고 여행하는 것과 똑같습니다.
개발자는 기술력으로 기업이나 사람들의 과제를 해결해주는 사람입니다. 기술력에 의해 지원되는 직업이기 떄문에 기술력이 없으면 단순한 일반사람과 동일합니다.
그렇다면, 최근 인기가 가장 높은 Python 개발언어가 높은 기술력으로 할 수 있는 것이라고 생각하는 독자가 있다면, 그렇지 않다는 것을 명심하십시오. 기술력과 프로그래밍뿐만 아니라, 시스템을 어떻게 활용하여 사람들에게 도움이 될 것인지, IT프로젝트를 주도하는 아키텍쳐 및 프로젝트 관리등의 지식을 포함한 IT 개발자로서의 본질적인 능력을 말합니다.
요즘 재취업대상 학생들을 교육시, Python이나 Java언어를 배우면 고액의 연봉을 받을 수 있다라는 이야기에 현혹되어 필수적인 기술력은 늘지 않은 상태에서 겉핡기식으로 공부하면서 취업후, 현실과 다른 상황에서 멘탈이 붕괴되어 자포자기하는 비극이 일어나지 않도록 올바른 기준을 가지는 것이 중요합니다.
필자와 같은 40대, 50대가 되면 기술 전문가, IT컨설던트, CTO, CIO와 같은 다양한 가능성이 있는 개발자가 있다는 사실을 인지하고 20대에서는 미래에 맞게 자신의 성과를 낼 수 있는 환경을 선택할 수 있는 능력을 가지면 좋겠다는 생각이 듭니다. 기술력(Skill)을 늘릴 수 있는 환경을 가진 회사라면 그대로 있으면 좋고, 미래를 꿈꾸기 어려운 환경으로 미래가 없다면, 이직이나 프리랜서 개발자/컨설던트를 고려하는 것도 하나의 선택수단입니다.
지금까지 마켓에서 가치있는 기술력이 회사에서 보장되면서 한층 더 실력을 늘릴 수 있는 자원이 있는 환경을 얻을 수 있는 개발자에게는 중요한 것이라고 이야기했습니다. 이런 이상적인 환경을 가진 회사를 어떻게 알 수 있을까요?
회사에 기술력 자체를 평가하는 구조가 있는지가 중요합니다. 웹 애플리케이션 개발 기술, 프론트엔드 기술, 클라우드서버등 매일 새로운 기술들이 나오고 있는 상황에서 새로운 기술을 도입한다면, 본질적인 기술력에 대한 예로, 설계에서 구현에 맞출 수 있는 기술력과 모던 아키텍쳐를 실현할 수 있는 능력, 품졸높은 코드와 테스트 설계를 할 수 있는 능력등을 평가할 수 있는 체제평가 기준이 없다면 보상은 물론, 본질적인 기술력을 늘리는 위한 지원도 없을 수 있습니다. 대표엔지니어인 CTO가 기술관련 정통함을 토대로 경영진의 기술평가능력을 확인합니다.
개발자의 업무는 지금 다양한 갯수만큼아니 아니라, 지금 수가 없음을 포함하여 도전하는 것입니다. 그 도전을 통해 기술력이 성장해가는 것과 경험을 토대로 구현 업무, 설계업무등 유사한 역할의 업무만 몇년간 반복하는 것이 아니라, IT아키텍트 및 클라이언트와의 논의를 요구사항을 요구하게 되는 IT컨설던트는 다음 단게엇 존재하는 것이 중요합니다. 바로 담당하지 않고 어떤 역할이 자신이 아닌 다른 사람에 의해 진행되고 있는지, 도전해야 하는지에 대한 관찰력을 기를 수 있는 환경의 이미지가 필요합니다.
폭포수형 개발은 요구사항, 사양, 설계, 구현을 확실히 하고 가자는 개발자에게는 중요한 기술이 몸이 반응해야 합니다. 그러나, 폭포수형 개발 프로젝트는 종종 안전망을 얻기 위해 개인의 능력에 의존하지 않습니다. 즉, 능력이 어느정도 있으면 작성할 수 있습니다.
IT관리자 관점에서 올바른 면도 있지만, 장시간에 걸쳐 개발하는 것이 개인의 기술능력발전에 방해가 되고, Python, React등 모던 기술을 경험하는 기회가 줄어들게 됩니다. 빠른 개발과 스마트폰앱 개발등 새로운 기술을 사용하는 프로젝트를 하고 있는 회사에 있는 개발자가 기술력은 성장하기 쉽고 사징가치도 높은 경향이 있습니다.
좋은 회사의 선택에 대해서 알게 되었습니다. 그렇다면 그 회사에 합격된 개발자가 되기 위해 무엇을 하면 좋을까라는 것을 고려하지 않으면 안됩니다.
우선 자신의 개발자 경력을 객관적으로 정리합시다.
Java와 같은 언어뿐만 아니라, 어떤 시스템에서 무엇을 만들었는지, 구현만 담당했는지, 설계도 담당했는지, 고객을 상대했는지 등도 기술력을 판단하는 중요한 지표입니다. 누군가의 결정을 통해 수행하였는지, 부분적으로 무엇인가를 결정하는 입장에서 그 책임까지 맡고 있었는지를 통해 개발자의 가치는 크게 달라집니다.
업무지식으로는 유통, 금융, 헬스케어 등 산업별 지식이 다음 이직하는 회사에 도움이 된다면 그대로 유지하면 좋지만, 전혀 다른 업무 내용의 회사로 이직한다면, 지금까지 종사했던 업무지식 중에서 이직하는 회사에서 살릴 수 있는 것과 배워서 익힐 수 있는 지식등을 정리합니다.
스킬인벤토리는 이직하려는 회사에서 살릴 수 있는지, 기술이 부족한지를 분석하여 중요도가 높은 분야가 부족하면 채우기 위한 조치를 취해야 합니다.
예를 들어, Java에서 기본 설계서를 바탕으로 상세설계와 제조공정을 맡아왔지만, Python등 모던 언어로 고객과 협의하면서 시스템을 만들어내는 개발자로 나서고 싶다면 Python 언어를 배우는 사람들이 많아졌지만, 부족한 부분 중 가장 큰 이슈는 기본 설계 능력입니다. Python언어를 사용할 수 있지만, 설계할 능력이 없으면 고객 요구를 실현하지 못하거나 누군가를 생각으로 나온 디자인만의 생산개발만 담당하게 될 것입니다. 단순히 언어만으로 바뀌는 개발이란 일은 곧 매너리즘화되고 연봉은 크게 오르지 않게 됩니다.
되고 싶은 목표에 대한 이미지와 현실의 격차를 내정하게 분석하는 것이 중요합니다. 그 차이를 실무 경험을 통해 해결하는 것이 가장 좋지만, 어려운 경우도 있습니다. 그 경우에는 인터넷이나 책을 통해 배워야 합니다.
개발자로서 살아간다는 결정한 의미는 자신의 삶 또는 이력 업데이트를 정기적으로 한다는 결심이기도 합니다. 이력 업데이트가 되지 않는 개발자는 매일 시장 가치가 내려가게 되어 있습니다. 스터디그룹에 참여하여 무엇인가를 만들어 보는 등의 지금까지 하지 않았던 것에 도전하면서 자랑을 통해 업계에 입지를 구축하기 위한 기반을 만들거나, 그런 기술에 대한 관심과 노력은 반드시 보상을 받게 됩니다. 회사 내부에서만 조용히 일하는 내성적인 생각을 버리고 외부로 눈을 돌려 관심 분야의 기술 커뮤니티에 들어가보면 성장 속도가 빠르게 올라갑니다. (다만, 너무 커뮤니티에서 활동이 많아지면 그만큼 인간적인 적들도 많아지는 것도 고려해야 합니다.)
개발자로서 20년 넘게 일하면서 밤샘 개발도 해보고, 불합리한 요구를 하는 것에 대응하여 문제를 해결하는등의 다양한 경험을 해온 개발자로서 지금까지 함께 작업한 개발자는 수백명정도 될 것입니다.
20년 넘게 이 업계에서 다양한 개발자를 만나오면서 성실하면서 약간은 무엇인가 서툰 사람들이 많았던 것으로 기억합니다. 그런 성실하면서 한결같았던 개발자가 업계의 불합리한 구조로 인해 기술을 향상시킬 수 있는 기회가 없는 상태로 연차만 높이지면서 수입의 한계점에 도달하는 우울한 상황은 결코 젊은 시절 내가 기대했던 IT업계의 모습은 아닙니다. 이런 불합리한 환경에 놓인 한국 기업을 디지털화하고 사람들이 즐겁게 하여 새로눈 세계와 경험을 만들어내는 활동을 통해 연봉도 높힌 개발자가 사람들의 선망의 대상이 되는 세계를 실현하고 싶다는 생각을 합니다.
개발자라는 직업이 좋은 것은 자신의 능력을 믿고 살아가는 것입니다. 회사에서 평가의 대상이 되는 것보다 외부로 눈을 돌리고 사회에서 평가되는 것이 유용한 경우가 있습니다.
지금이라도 늦지 않았습니다. 이 글을 계기로 자신의 실력을 다시 검토하거나 약간은 새로운 것에 도전해보자는 생각이 드는 독자가 한명이라도 있다면 다행이라는 생각이 듭니다.
좋은 글 감사합니다