프로그래머 로드맵

2007. 10. 14. 01:13 얼리어답터 리뷰/IT정보

출처:http://blog.naver.com/borninfree/60011196858 (끝까지 읽어보시길. 하단에 첨부파일 있음.)

마이크로소프트웨어로부터 개발자들에 관한 특집을 기획한다는 얘기를 듣고 글의 방향에 대해 고민을 하게 되었다. 기술적인 내용에 관한 글이라면 주제가 명확하므로 내용에 대한 고민이 주가 되지만, ‘개발자를 중심에 둔 특집’이라는 주제는 개발자들을 보는 관점에 따라 전혀 다른 내용이 될 수 있기 때문에 방향성에 대해 많은 고민을 하게 되었다.

이런 저런 고민 끝에 필자가 컴퓨터를 처음 시작하던 때로 돌아가 ‘지금의 내가 과거의 나에게 들려주고 싶은 이야기’를 쓰기로 하였다(해석하기에 따라서는 다소 냉혹한 글이 될 수도 있으니 심호흡을 먼저 하기를, 그리고 이 글을 읽고 난 후 코딩하기 싫어지는 부작용이 생길 수도 있으니 심신이 허약한 사람은 조심하기를 바란다). 우선 직업 만족도와 밀접한 이야기로부터 시작하기로 한다.


직업 만족도
주위의 사람들과 얘기를 하다보면 엔지니어가 본인의 적성에 맞으나 다시 전공을 선택한다면 다른 분야로 가고 싶다는 사람들을 많이 만나게 된다(물론 자식들은 절대 공대를 안 보낸다고 하는 사람들도 많다). ‘이공계 위기’라고도 표현되는 기술직의 기피는 우리가 생각하는 것보다 여러 분야에서 심각한 영향을 미치고 있다.

필자가 느끼는 이공계 위기의 영향 중 하나는 필자가 근무하는 산업체(대기업)의 경우, SI 회사임에도 전산을 전공한 실력 있는 신입 사원을 구하기가 정말 힘들다는 것이다. 최근 극심한 취업난으로 인하여 기업의 입장에서는 과거보다 신입 사원 선택의 폭이 넓어졌지만, 필요한 엔지니어를 구하지 못하는 가장 큰 이유는 많은 회사들이 우수한 인적 자원들을 만족시켜 줄 수 없기 때문이다.

회사가 원하는 인재들의 경우 보수나 안정성 또는 병역 특례와 같은 현실적인 문제로 인해 대기업을 회피하고, 안정되고 급여가 높은 일부 벤처기업이나 외국계 회사에 입사하려는 경향이 높다. 특히 엔지니어적인 기질을 강하게 가진 사람들은 벤처 기업을 선호하는 경향이 강하다. 실제 회사에서 미리 선발하기로 결정하고 물밑 작업을 한 인재들 중 상당수는 다른 회사로 가는 경우가 많다(사람을 보는 눈은 거의 비슷한 듯하다. 특정 기업에서 선발한 사람은 대부분 다른 기업에서도 선발된다).

유학 등을 통해 교수가 되거나 전공을 바꾸어 다른 분야로 진출하는 경우도 많다. 신입 사원들로 선발되는 사람들은 전체 취업자들 중 극소수이지만 회사 입장에서는 채용하고 싶은 사람들은 고용하기도 힘들 뿐더러 지키기도 힘들다. 필자가 근무하는 곳의 이직률은 상당히 높은 편이며, 회사를 그만 둔 사람들 중 한의대나 사범대와 같은 전혀 새로운 길로 가는 사람들도 많다. 이러한 일들의 가장 큰 원인은 엔지니어의 사회적 지위 하락 및 국내 전산 관련 기업의 한계에 있다고 생각된다.

이공계 출신의 사회적 위치
우선 경제적인 면에서 엔지니어의 위치를 분석하기 위하여 각 직업별 수입을 조사하였다. 우선 의사들의 수입을 검색하였는데, 굳이 의사를 택한 이유는 필자가 대학에 입학할 때만 하더라도 공대의 인기 학과와 의대의 입학 점수차가 크지 않았는 데 반해 현재는 너무나 극적으로 점수차가 나기 때문이며, 현재 이공계 위기의 주범으로 지목되기 때문이다. 검색 결과는 당혹스럽게도 의사들의 수입을 알 수 없거나 조사된 수치를 믿을 수 없다는 것이었다.

<그림 1>의사(출처 : ‘한국 직업 전망 2003’ 한국산업인력공단)


 

<그림 2>시스템 소프트웨어 개발자


<그림 1>과 <그림 2>에서 보면 의사와 시스템 소프트웨어 개발자의 수입이 2배 밖에 차이가 나지 않는다는 결과를 보고 자료의 신뢰성에 상당히 의문을 가지게 되었다. 이러한 의문점은 거의 모든 자료에서 발생되었으며, 자료들간의 수치에도 상당한 차이를 보여 결국 의사들의 수입은 ‘알 수 없음’으로 결론을 내렸다.

사실 시스템 소프트웨어 개발자의 수입이 203만원이라는 사실도 현실과는 차이가 있다고 생각된다. 앞의 자료는 고3 입시에도 사용되는 기초 자료인데, 청소년들의 현실 인식을 방해하는 잘못된 자료이므로 자진 폐기해야 한다.

수입의 차이는 시장 경제에서 당연히 발생할 수밖에 없는 문제라고 할지라도 각 직업별 수입의 정확한 통계조차 없고, 그러한 상황에서 이공계로 가서 나라를 구해야 한다는 식의 정부 방침이나 언론 플레이는 오히려 ‘자식들은 공대에 보내지 않겠다’는 이공계 엔지니어의 결심을 단단히 하는 데 큰 도움을 주고 있다.

<표 1>의 내용은 5년 후나 10년 후 이공계 종사자들이 인문 사회계보다 비경력 이동, 하향 이동, 시장 이탈 비율이 높음을 나타내며 이는 직업 안정성이 낮음을 의미한다.

<표 1> 전공별 경력 및 비경력 이동 경향(단위 : %, 출처 : ‘이공계 기피현상에 대한 원인 분석: 이공계 졸업생의 노동시장 성과를 중심으로’, 2004 경제학 공동학술대회. 박성준 2004)


또 다른 자료인 <표 2>는 자영소득에 있어 의약학 전공자의 상대 소득은 대단히 빠른 속도로 증가하여, 이공계 출신자와 병원이나 약국 등을 운영하는 의사·약사와의 임금격차는 갈수록 커져가고 있다는 것이다. 그리고 앞으로도 소득 격차는 심화될 것을 보여준다.

결국 신문·방송·정부 정책이 무엇이건 간에 앞으로 이공계 종사자들의 삶이 획기적으로 개선되지는 않는다는 것을 의미한다. 재미있는 점은 미국의 경우에도 해외 아웃소싱 문제가 대선 이슈가 될 정도로 전산직의 상황이 나빠지고 있다는 것이다.

<표 2> 이공계 대비 이공계의 상대 소득 및 추이(단위 : %, 출처 : ‘이공계 인력의 경제적 지위 및 근래의 변화’, 5회 한국노동패널 학술대회, 류재우)


컴퓨팅 시장의 변화와 국내 전산 업체의 한계
ZDNet에 의하면 미국 내 컴퓨터 관련 전공자의 수는 계속 감소하고 있는 것으로 나타나고 있는데, 메사추세츠 공과대학(MIT)과 같은 초일류 대학에서도 이러한 증상은 예외 없이 나타나고 있다. 예를 들면 캘리포니아 대학 버클리 캠퍼스의 컴퓨터과학 전공 학부생 수도 226명으로, 지난해 봄의 240명보다 감소했다.

우리나라와 마찬가지로 미국 내에서도 이공계(전산학) 위기론의 진위 여부에 관한 다양한 의견이 표출되고 있는데, 조사분석기관 랜드 씽크탱크가 최근 발표한 조사 결과에 따르면 ‘과학·기술·공학·수학 관련 인재가 미국 내에 부족하다는 주장이 자주 등장하지만 1990년 이래 인재가 부족하다든지 혹은 향후 부족해질 것이라는 증거는 보이지 않고 있다’고 위기론을 인정하지 않는 입장도 있다. 특히 전산학의 경우 인도나 필리핀 등의 영어권 국가에 대한 아웃소싱에 의해 고급 프로그래머 수급은 언제든지 가능하다는 결론에 도달하는 분위기이다.

실제 미국의 컴퓨터 관련 업계에서는 보안과 같이 아웃소싱이 어려운 기술이나 프로젝트 관리, 컨설팅, 교육, 또는 품질보증과 같은 비즈니스 측면의 역할이 강조되어 가고 있으며, 외국 하청 업체와의 원활할 의사소통을 위한 외국어의 중요성이 강조되고 있다(조만간 우리나라에서도 개발자에게 C나 자바 언어보다 영어라는 언어가 더 중요한 시기가 도래할 수 있다).

문제는 우리나라의 개발자들은 저개발 국가들에 비해 상대적인 고임금과 영어 문제로 인하여 아웃소싱의 대상국이 될 수 없다는 것이다. 아웃소싱 대상국은 기분 나쁜 위치일 수도 있으나 냉정하게 생각할 때 소프트웨어 개발 분야에서 우리나라의 수준은 상당히 떨어져 있다는 것을 인정한다면 좋은 기회가 될 수 있다.

실제 필자가 외국의 소프트웨어 발표장을 방문할 때마다 대부분의 제품들이 인도인들에 의해서 개발되어 있는 것을 재확인하고 있으며, 회사에서 같이 일할 때도 인도인들의 코딩 능력에 감탄을 하게 된다. 굳이 표현하자면, ‘무엇을 기대하든 그 이상을 만들어 낸다’라는 정도의 코딩 능력을 보여 준다.

만약 우리가 핵심 소프트웨어의 아웃소싱 대상국이 되었다면 소프트웨어 기술의 획기적 발전 및 고부가가치화도 가능하리라 생각해본다. 실제 국내 개발은 웹 개발이나 PC상의 소프트웨어 개발에 집중되어 있는데, <그림 3>에서 보듯이 웹 개발 분야는 전산 분야에서도 가장 수입이 낮은 분야이다.

<그림 3> 전산직 관련 소득 분포(출처 : ‘한국 직업 전망 2003’ 한국산업인력공단)


운영체제, 데이터베이스, 미들웨어와 같은 핵심 솔루션 개발 능력이나 온라인 게임을 제외한 고부가 가치 게임 소프트웨어 개발 능력이 취약한 국내 실정을 고려해 볼 때, 고급 기술을 익힐 수 있다는 가정만 있다면 단기간의 아웃소싱 대상국의 위치도 좋은 방안이 될 수 있을 것 같다(우리나라에 소프트웨어를 아웃소싱하겠다는 외국 업체는 없을 것으로 생각되지만).




핵심 소프트웨어 개발 능력 부재는 SI나 SM 중심의 소프트웨어 시장 형성으로 이어지며, 기술 개발보다는 비즈니스에 치중하는 결과를 유발하여 개발자가 설 땅을 줄이는 결과를 가져오게 된다. 실제 대부분의 웹 개발은 국내에서도 아웃소싱되어 지고 있으며, 필연적으로 저임금 개발자를 양산하고 있다.

시작과 변화
<그림 3>에서 보듯이 전산직이라도 수입 면에서 큰 차이가 남을 알 수 있다. 또한 <그림 3>에서는 나타나지 않았지만 전산 전공자들 중 핸드폰이나 통신 장비 개발 분야 엔지니어들도 많으며, 한국의 산업 구조상 순수 소프트웨어 개발자들보다 일반적으로 몸값이 비싸다고 할 수 있다.

만약 전산을 지원한 대학교 신입생들에게 진로 상담을 한다면, 웹 개발 분야를 깊이 있게 연구하고 싶은 신입생이 있다면 진로에 대해 다시 한번 고려해 볼 것을 권하고 싶다(물론 다시 공부해 의대를 가라고 하는 종류의 권고는 개인의 적성 및 취향을 무시하는 발언이므로 컴퓨팅 부분에서만 답을 찾기로 한다).

중요한 것은 소득 분포도 변화하므로 시장의 변동을 주시하면서 자신의 상품가치를 향상시키기 위해 노력해야 한다는 것이다. 비인간적이긴 하지만 너무나 당연한 이 말을 제대로 인지하고 있는 사람들은 많지 않은 것 같다. 특히 대학생들의 경우 사회 감각면에서 직장인들보다 약할 수 있는데, 회사에 취업을 원한다면 구직자는 회사에 의해서 구매되는 상품이라는 생각으로 가치를 높이기 위하여 노력해야 할 것이다.

만약 필자에게 전산 개발 분야 중 다시 시작하고 싶은 분야를 고르라고 한다면 소프트웨어 개발 분야가 아닌 하드웨어와 결합된 분야를 공부하고 싶다. 그 이유는 소프트웨어 개발의 경우 점점 더 개발할 수 있는 분야가 좁아지고 있는데 반해 방송·통신·자동화를 기반으로 한 하드웨어와 결합된 소프트웨어 개발 분야는 증가될 것으로 전망되기 때문이며, 이러한 분야에서 우리나라는 강점을 가지고 있기 때문이다.

물론 이외에도 개인의 적성이나 시장 환경, 국내 관련 산업의 발전 정도 등 많은 요소들이 고려되어야 할 것이다. 이제 몇 가지 단순한 자료를 이용하여 고민의 과정을 간단히 같이 해보기로 하자(자료의 진위 여부보다는 고민의 과정 자체가 중요함을 강조한다).

<그림 4> 프로그래밍 마켓 셰어(출처 : 닷넷 vs. 자바 ; Competition or Coexistence, Gartner symposium 2004)


개발자로서 혹은 학생으로서 틈틈이 새로운 프로그래밍 언어를 배우기로 결정했다고 가정해 보자. 우리들은 언어 선택에 앞서서 <그림 4>와 같은 자료를 통하여 향후 자바 개발자의 수요는 2005년까지 증가하였지만 그 이후는 안정된 수요 증가를 보여주고 있으며, 향후 자바 개발자의 부족은 점차적으로 해소될 것이라는 사실을 인지하고 있어야 한다.

또한 MS 계열의 언어는 C#이나 닷넷으로 급격히 교체될 것으로 예상되므로, 현재 VB를 배우려하는 초급 개발자나 C/C++를 배우려는 개발자는 시장의 흐름과 자기가 원하는 개발 분야를 주의 깊게 보아야 한다.

<그림 5> The cost of developer migration(출처 : Deploying .NET and Java: Interoperability and Integration, Gartner 2004)


<그림 5>는 개발 언어가 바뀜에 따라 개발자를 다른 언어에 적용하는 데 필요한 비용을 보여주고 있다. <그림 5>에서 알 수 있듯이 패러다임이 변경되는 부분에서(예를 들면 명령형 언어인 Cobol 개발자에서 객체지향인 자바 개발자로의 변신) 비용이 많이 발생됨을 알 수 있다.

물론 국내와 미국의 경우 많은 차이가 있는데, 국내의 경우 신기술을 선호하며, 사원들의 교육 부분에서도 더 적극적이라고 볼 수 있다. 중요한 점은 기업에 입사할 경우(특히 대기업일 경우) 특별히 신입사원이 원하는 분야가 없다면 회사에서 필요한 일을 하게 되는데, 신입사원 때 한 일이 자신의 회사생활 전체를 결정할 수도 있다는 것이다.

<그림 6> Adopters of Java Technology(출처 : The Face of the Java Developer Is Changing, Gartner 2004)


<그림 6>은 향후 자바 개발의 방향을 보여주고 있는데, Type A는 개발자 관점에서는 에디터 수준의 개발자를 의미하며 조직 수준에서는 신기술을 적극적으로 사용하는 얼리 어댑터(Early adopter) 성향의 기업을 나타낸다. Type B는 RAD를 사용하는 개발자를 나타내며 조직적인 측면에서는 검증된 기술을 사용하는 기업을 나타낸다.

Type C는 완전히 성숙된 기술만을 사용하는 보수적인 조직을 보여주고 있으며, 4GL과 스크립트 언어 그리고 모델 기반의 코드 자동 생성기를 사용하는 개발자를 보여준다. 전체적으로 이른바 ‘날코딩’이라 불리는 에디터 기반의 프로그래밍보다는 RAD 툴이나 모델링이 많이 사용됨을 알 수 있다.

개인적으로는 지금 전산을 전공하려는 신입생이 있다면, 에디터 기반의 프로그래밍보다는 RAD 툴이나 UML을 이용한 설계 분야에 집중하기를 권하고 싶다. 물론 비즈니스를 위한 영어는 필수적이다(회사에서는 C 언어보다 영어가 개발자에게 더 유용한 ‘언어’일 수 있다).

글을 마치며
이 글을 읽고 전산직의 장래에 관해 생각하는 사람도 있을 수 있고, 더욱 열심히 프로그래밍을 하는 사람도 있을 것이다(물론 당연한 얘기를 새삼스럽게 한다고 생각하는 사람도 많을 듯).

입사하고 학창 시절의 소중함에 관해서 느낀 것은 학교에서 배운 지식으로 직장을 결정하고, 십년이 넘는 기간 동안 가정에 있는 시간보다 직장에서 보내는 시간이 많은 삶을 살게 된다는 것이다. 필자가 학창 시절을 되돌아 볼 때 가장 아쉬운 점은 지금 하고 있는 공부나 연구를 통해서 어떤 사람이 될 것인지, 필자가 하고 있는 분야의 전망은 어떤지, 앞으로 사회가 어떻게 변할 것인지에 대한 진지한 고민이 부족하였다는 것이다.

물론 현재는 사회나 기술의 변화에 따라가려고 나름대로 노력하고 있지만 변화를 선도하는 위치까지는 머나먼 길이 있는 것이 사실이다. 현재 학교에서 열심히 공부하고 있거나 새로운 분야를 시작하려는 사람이 있다면 새로운 기술을 익히는 노력의 몇 백분의 일 만이라도 장기적인 방향성 확립에 투자하기를 권하며 이 글을 마친다. @

* 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다

첨부파일은 한국소프트웨어진흥원(KIPA)의 웹표준가이드. 2005년 12월경에 작성한듯..