다이나믹한 인생

경력별 개발자 특징

번개애비 2020. 9. 4. 22:24

여러 업체 그리고 두번의 사업을 실패를 경험하면서 만났던 수 많은 개발자들의 경력별 특징들을 나름대로 정리해보았다.
타인을 함부로 특정하거나 평가내리는것은 굉장히 위험한 일이고 어쩌면 거만한 행동일수도 있음으로 단순히 비개발직종의 사람들이 개발자로의 전직을 고민할때 참고하는 수준으로 이 글을 읽었으면 한다.

신입개발자 (3년 이하)
개발관련직군은 당연히 전공자들이 많다라고 생각하지만 요즘 20-30대의 신입개발자들의 실상은 비전공자들이 많다
최근 새로운 언어가 지속적으로 나오고 있고 실무단에서 신 기술들을 거리낌없이 적용하는것이 트렌드이다보니 그 트렌드를 대학수준에서 소화할 수 없다는게 현실. 자기자신이 비전공자라고 걱정할 필요가 전혀없다는 사실을 알았으면 한다. 타 직군에서 개발자로 전직한 경우도 신입개발자로 치부하고 실제로 타 직군의 경력사항을 인정하지 않는 경우가 대다수이며 심지어 타 직군의 경력사항을 이력서에 기재할경우 회사입장에서 부담/반감으로 작용함으로 기재하지 않는것이 좋다. 신입개발자는 대부분은 이제 막 개발에 발을 들인 사람들이라 높은 스킬이나 설계능력보다는 단순한 설계의 영역을 개발한다. 간혹 개발이 체질에 맞는 사람들은 중급개발자와 비등한 개발능력을 보유하는 경우도 왕왕있으며 실제 이 기간에 개발에 대한 능력이 포텐 터지는 시기임으로 한창 개발이 재미있게 느끼기도 한다. 이 포텐이 터질때 조금이라도 더 많은것들을 배워두는게 중요하다. 실제 오랫동안 개발직군에 있다보면 개발자의 덕목(귀찮이즘)이 배양되어 점점 트렌드에 뒤쳐지기 시작한다.

중급개발자 (5년 이하)
5년이상 개발직군에 고여(?)있다보면 이제 어느덧 복잡구리한 개발도 능히 해낼수 있는 수준이 된다. 이 시기부터는 코드타이핑을 얼마나 빠르게 많이 치는가가 중요한것이 아니라 얼마나 적게 타이핑을 쳐서 빨리 프로젝트를 마감때리는지가 관건이다. 휘하의 신입개발자들도 생겨나는 시점임으로 기업의 조직관리가 필요한 시기이다. 기업구성원이 적거나 특수한경우 혹은 팀단위가 작은 경우 팀장을 경험할 수 있다. 어떻게 하면 팀을 잘 이끌어나갈수 있는지 어떻게하면 타 팀대비 우리팀이 일을 적게할 수 있는지에 대한 고민이 시작된다. 아직 휘하 개발자들을 능히 다룰수 있는 스킬이 부족함으로 성격이 온순한 사람들은 혼자 일을 전부 다 하게되고 성격이 터프한 사람은 밑에 개발자에게 일종 짬처리를 한다. 개발자가 PM이 되기위한 중요한 시기임으로 조직관리에 대해 선임개발자에게 많이 배워야되는 시기이다. 적절하게 짬처리도 시킬줄 알아야 지치않고 오래일할수 있으며 적절하게 윗선에서 처리해줘야 휘하 개발자들과 트러블없이 좋은 직장상사로 남을수 있다. 이 시기부터 개발직군에 대한 회의감을 자주 느끼곤 한다.(겨우 5년 밖에 안됬는데!) 하지만 아직 회의감을 느끼기엔 너무 이르다. 개발자의 길은 멀고도 험하다.

고급개발자(10년차 이상)
이 시기가 되면 앵간한 프로젝트는 별로 무섭지가 않다. 이미 경험해볼때로 경험한 상태이고 단지 신규 프로젝트가 복잡하면 개발가능여부보다는 집에 일찍 들어갈수 있을까가 더 걱정이다. 개발자 10년차는 정말 중요한시기이다. 왜냐면 개발자의 연봉 상한선이 어느정도 정해져 있기때문에 이 시기가 지나면 개발PM으로 전향하거나 기술영업 혹은 운이 따라야되는 사업으로 전향하는것을 선택당하기 때문이다. (물론 자의적인 선택을 강요 받는다) 이미 개발자의 덕목(귀찮이즘)이 온몸에 베어있음으로 신기술이나 새로운 언어등등 신세대 트랜드를 쫓아가기에 자신의 나이를 실감하게 된다. 그래도 낙담하지는 말자 우리에겐 오랜 개발로 쌓아온 많은 노하우(꼼수)와 연배의 지혜가 있기 때문이다. 새로운 트렌드를 직직접적으로 접하면서 다시 배움의 길로 빠져드는것도 좋지만 다양하고 넓게 기술의 트랜드가 어떻게 흘러가고 왜 흘러가게 되었는지 지속적으로 모니터링해주는것으로도 충분하다. 이러한 모니터링과정은 추후 PM업무 시 트랜드를 열심히 따라가는 신입이나 중급개발자들을 보다 더 쉽게 컨트롤 할 수 있으며 적어도 그들의 이야기를 들어는 줄수 있게 된다.
고급개발자가 되면 경력도 많고 나이도 있음으로 이직이 쉽지 않다. 무엇보다 가정이 있는 가장인 경우가 많음으로 이직을 다짐하기에 더욱 어려운 환경에 처한다. 어차피 회사마다 추구하는 개발스타일이나 툴들, 개발지침들이 달라지고 바닥부터 올라왔던 개발자가 아님으로 팀에 대한 융화도 생각해야되고 회사입장에서는 어쨋든 부담이다. 개발 10년차가 되면 사실 단순 개발직군에서는 연봉상한선에 도달한다. 보통 6,000만원까지가 개발자 연봉 상한선이라고 생각하면 좋다. 앞으로 자식들 대학까지 보낼생각이면 연봉은 한참 더 올라야됨으로 많은 고민을 해야되는 시기이다. 이 때부터 개발에 대한 능력치보다 팀운용능력이나 영업능력, 사업능력등과 같은 개발과 조금 다른 분야에 대한 능력치가 있어야 연봉상승이 가능하다.

개발PM
여기서 말하는 PM은 단순히 팀장이라는 직급을 이야기하지 않는다. 휘하의 직원이 있다고 절대 PM이 되는것이 아니다.
PM은 상황에 따라 팀원들의 공공의 적이 될줄도 알아야되고 팀원들의 든든한 기둥이 될줄도 알아야된다. 중간관리자로써 경영자로부터 신임을 얻을줄 알아야되고 팀원들을 위해 경영자와 협상테이블에 끌어들일줄도 알아야된다. 개발PM은 휘하의 팀원들로부터 개발에 대한 모든 의문점들을 해결해줄수도 있어야된다. 개발직군은 마치 전장에 나가는 기사와 같다. 휘하의 개발자로부터 개발에 대한 능력치를 의심 받는순간 더이상 그 휘하의 개발자로부터 절대로 인정받질 못한다. 개발PM의 역할은 일을 벌리는것이다. 일을 벌린다는 의미는 조직의 시스템을 정비하여 효율성을 극대화시키는것을 의미한다. 개발에 대한 지침을 세우고 개발물에 대한 문서화등을 진행함으로써 일을 만들어낸다면서 휘하의 개발자들로부터 엄청난 핏박을 들어야된다. 하지만 그 벌린일들로 인해 업무에 효율성을 가져다주고 경영자와 휘하 개발자들의 업무가 조금이라도 줄었다면 성공적인 일벌리기가 된것이다. 이렇게 개발PM은 조직을 효율적으로 운영할 수 있는 가이드를 세우고 휘하의 개발자들의 개발케파를 정확하게 분석해서 개발업무 지시를 효율적으로 지시해야한다. 휘하의 개발자들의 개발케파를 파악하지 못하는 PM은 절대 PM이라고 보기 힘들다. 조직이 작은 기업의 경우 혹은 직급상 형식적으로 PM을 사용하는경우가 있는데 잡다구리한 일들을 처리하는 PM은 여기에 해당되지 않는다

기술영업
말빨이 되는 혹은 이빨이 쎈 개발자들은 기술영업도 좋은 연명(?)수단이 된다. 일반 영업직 대비 기술에 대한 이해도가 높아서 고객을 보다 쉽게 설득하고 고객보다 더 많은것들을 알고 있는경우가 대다수라 회사입장에서는 계약시 더 유리한 고지를 점하게 된다. 무엇보다 기술적인 사항을 알고 있음으로 영업시에 내부검토과정을 줄여줄수 있어서 빠른 수주가 가능하다. 기술영업도 일반 영업직과 비슷함으로 영업량에 따라 연봉이 천차만별이다. 영업직이 개발회사에서 인정받기 가장 좋은 케이스는 개발자 자기자신이 봐도 쓰레기같은 제품을 팔을수 있어야된다. 이런 영업직들은 많은 개발자로부터 사랑(?)받을수 있다. (왜냐면 개발자 자신들은 계속 쓰레기를 만들어도 팔아주니깐) 기술영업의 핵심은 기술을 잘 모르는 고객을 등쳐먹는(?)능력과 고객이 요구하는 기술내용을 정확하게 개발자에게 전해주는 능력이다. 고객이 그네를 만들어달라고 영업직에게 이야기해주면 개발자에게 그네를 만들기위해 체인과 안장등을 만들어야된다고 이야기해줄수 있어야된다. 대부분 프로젝트에서 기술영업의 부재로 그네를 시소를 만드는경우가 허다하다. 이런일들로 회사의 존폐 위기에 처하기도 함으로 굉장히 중요한 중역중 하나이다.

진정한 의미의 풀스텍 개발자
여기서 말하는 풀스텍은 단순히 백엔드 프론트엔드를 말하는것이 아니다. 요즘하도 풀스텍 풀스텍거려서 개자이너 디발자와 같은 신조어가 생길정도이다. 여기서 말하는 풀스텍은 SW+HW를 말하는것이다. SW직군은 HW가 굉장히 어렵게 생각하고 HW직군은 SW를 굉장히 어렵게 생각한다. 시간날때 틈틈히 전기적인 학문이나 짜투리지식들... 나아가 PCB설계를 배워둔다면 유아독존 최강의 풀스텍개발자가 될 수 있다. SW는 여러가지 의미로 부가가치가 높다. 이는 가상의 제품을 만드는것이라 부가가치가 높다고 하지만 실상은 인력에 의존적이다. 하지만 HW는 실물이 있는 제품임으로 SW에 비해 노동집약성이 낮다. 특히 한국은 제조업중심의 RnD와 지원사업들이 즐비하고 SW보다 HW를 더 우선시하는 경향이 있다.

사업
여기서 사업은 개발자의 전직과정중 대표적인 치킨집은 제외한다. 오랫동안 개발영역에서 고여(?)있으면서 쌓은 노하우와 고객대응능력등을 겸비해야하며 무엇보다 운이 중요하다. 사업에서 운은 99%이고 1%가 노력이다. 노력하지 않아도 사업으로 성공할수 있다는것을 의미하는것이 아니라 노력을 아무리해도 성공하지 못하는것이 사업이라는것을 의미한다. 경영자로써 기업의 돈을 운용하는 능력도 중요하고 인맥도 많아야되고 휘하의 직원들을 관리하는 능력도 중요하고 고객을 대응하는 영업력도 중요하다. 정말 아무나 하는것이 절대 절대 아니다.

개발자가 타회사로의 이직할때
개발자의 이직의 문제는 연봉도 중요하지만 실제로 어떤 언어 어떤 환경을 경험했는지가 중요하다. 어학계열직과 마찬가지로 일본어를 하는 사람이 불어를 요구하는 기업으로 이직할때 경력사항을 인정받지 못하는것 처럼 개발자도 언어의 경험이 실제 경력사항과 대등하다. 하지만 어학계열직과 달리 프로그램의 언어는 사실 로직도 비스무리하고 용어만 달라질뿐 타 언어로의 접근이 비교적 쉽기때문에 틈날때마다 새로운 언어를 습득해보는게 유리하다. 각각의 언어들은 그 탄생 목적이 있어며 프로젝트에서 각각의 언어들을 목적에 맞게 잘 조합하여 사용한다면 개발케파도 상승하게 된다.(물론 퇴사후 타개발자가 유지보수를 할경우 죽어나겠지만)
통상적으로 타직군과 마찬가지로 개발자의 이직도 직전 회사의 연봉을 인정하는 경우가 대부분이고 기업 마다 개발지침이나 틀, 사무적인 업무등등등이 달라짐으로 경력개발자도 일정기간 수습과정을 거치게 된다. 대부분 개발자들이 이직을 결심하는 이유중 하나는 연봉, 상사문제, 업무과중등이 있으며 이직하고자 하는 회사의 연봉도 중요하지만 기업의 문화를 잘 살펴보는게 더 중요하다. 대다수 연봉이 높은 기업들은 우리가 상상하는 워라벨보다는 무지막지하게 살인적인 개발스케줄이 대부분이다(그니깐 그 연봉 주지...) PM으로써 이직시 중요한사항은 경영자와의 합이 굉장히 중요하다 경영자가 PM에게 힘을 실어줄수 있느냐 없느냐 차이가 PM으로써 성공할 수 있느냐가 사실상 결정된다. 1~2년 개발자들도 근래에 들어 많이 이직을 하고 있는 추세이나 사실 신입개발자로 치부함으로 이직하고자하는 기업입장에서는 그냥 똑같은 신입으로 치부하고 무엇보다 단기이직사항이 잦을 경우 추후 이직시 굉장히 불리한 조건에 놓이게 됨으로 유의하자(이직을 많이한 개발자는 기업에서도 달갑게 보지않는다)

서버개발자와의 차이
소규모 조직의 경우 별도의 서버관리자나 서버개발자를 두지 않는 경우가 많다. 덕분에 일반개발자도 서버를 핸들링하는 경우가 많다. 서버개발자는 엄연히 서버상에서 동작해야하는 운영체제의 커널업데이트나 WAS와 같은 어플리케이션을 관리(최적화)하는 작업들을 수행하며 규모가 커질경우 리플리케이션이나 HA와 같은 복잡구리한 서버를 관리하기 된다. 대부분 개발자들이 서버개발자들은 하는것도 없고 맨날 농땡이피우는것으로 보여지는것이 많으나 실제로 서버HW부터 OS, NW, APP범위까지 굉장히 광범위한 사항들을 관리하고 있으며 어플리케이션에 트러블이 발생하는 순간 야근, 서버가 다운되면 야간에 출근 등등 굉장히 고된작업이다. 최근 가상화 클라우드가 유행처럼 번지면서 도커도 많이들 사용하고 서버의 환경에 따라 유기적으로 구성이 변화되는 요구사항들이 증가됨에 따라 서버개발자들은 더욱 일의 강도가 늘어나고 있는것도 사실이다. 일반개발자는 무에서 유를 창조하는 조물주라고 한다면 서버개발자는 조물주가 만든 모든것들이 잘 동작하게끔하는 태양과도 같은 존재이니 일반개발자들이 서버개발자를 무시하는 일은 없도록 유의하자 또한 개발물에 대한 성능적, 보안적 퍼포먼스가 미흡하더라도 서버개발자와 유기적인 협력을 통해 그 퍼포먼스를 보완할 수 있음으로 자주자주 커뮤니케이션하는것이 중요하다.


위에 기술한 내용들은 정답일수도 있고 정답이 아닐수 있다. 각자 사람들이 살아가는 인생의 방법에 따라 정답이 될수도 아닐수도 있다. 어떤 사람은 두발로 산을 건너 빠르게 갈수도 있고 어떤사람은 자전거를 타고 빠르게 갈수도 있다. 사람마다 삶에 대한 목표도 다르고 삶을 살아가는 방식도 다르다. 단순히 개발직군으로의 전직을 고민한다면 조금이나마 도움됬으면 하는 바램으로 끄적였다.