프로그래머의 종류
목차
- 1 프로그래머란?
- 2 프로그래머에 대한 대한민국에서의 편견
- 3 프로그래머의 분류
- 4 웹 프로그래머
- 5 웹 프로그래머의 처우
- 6 웹 프로그래머의 진출 분야
- 7 SI/SM등의 전산시스템 프로그래머
- 8 SI/SM의 처우 및 현실
- 9 SI/SM 프로그래머의 진출 분야
- 10 게임 프로그래머
- 11 게임 프로그래머의 처우 및 현실
- 12 게임 프로그래머 진출 분야
- 13 모바일 어플리케이션 프로그래머
- 14 모바일 어플리케이션 프로그래머에 대한 처우 및 현실
- 15 모바일 어플리케이션 프로그래머의 진출 분야
- 16 임베디드/펌웨어 프로그래머
- 17 임베디드/펌웨어 프로그래머의 처우 및 현실
- 18 임베디드/펌웨어 프로그래머의 진출 분야
- 19 알고리즘/오픈소스 프로그래머
- 20 알고리즘/오픈소스 프로젝트 프로그래머의 진출 분야
- 21 마치며…
주변 사람들에게 저의 직업을 물어보면 저는 이렇게 대답합니다. “Software 엔지니어”. 그러나 사람들은 도대체 뭘 하는 직업이고 뭘 하는 사람인지 잘 아는게 어렵습니다. 일부 사람들의 반응은 책상앞에 앉아서 하루종일 빨개진 눈으로 컴퓨터만 쳐다보고 있는 사람으로 오해하기도 합니다. 어떤이는 컴퓨터는 잘 고치냐고 묻기도 합니다^^
그렇다면 프로그래머는 어떤 일을 하고 프로그래머의 종류는 어떤게 있을까요? 진로를 고민하는 청소년들과 취업을 원하는 취업준비생들의 도움이 되고자 한번 정리해 보도록 하겠습니다.
프로그래머란?
대한민국에서는 개발자, 프로그래머, S/W 엔지니어, 코더(?) 등으로 불리우며 컴퓨터라는 도구를 가지고 프로그래밍 언어(C/JAVA/C++/HTML/JS 등 수백가지..)를 사용하여 프로그램을 만드는 직업을 가진 사람을 뜻합니다.
세계적으로 성공한 사람중에는 빌 게이츠를 비롯하여 존 카멕(전설적인 게임 개발자), 페이스북 창립자인 마크 저커버그, 리눅스 창시자 리누스 토발즈 등이 있습니다.
대한민국으로 범위를 좁히면 백신을 개발하여 배포했던 안철수 바른미래당 서울시장 후보가 유명하며, 김택진 엔씨소프트 대표, 송재경씨(리니지 개발자), 이희상씨(엔씨소프트 부사장), 우원식씨(아래아한글 개발자) 등이 있습니다.
프로그래머에 대한 대한민국에서의 편견
사실 프로그래머에 대한 사회적 시선은 현재까지도 대한민국에서는 평판이 좋지는 않습니다. 좋지 않다는 말이 좀 부정적인거 같아서 다르게 바꾸자면 대우가 높지는 않다가 되겠습니다.
대우라는 의미는 여러가지가 있을테지만 그 가치를 평가할수 있는 기준은 바로 ‘임금’이 되겠습니다. 돈을 얼마나 받느냐 인데요. 이 부분은 쉽게 말씀드리면 “천차만별”이라고 보시면 됩니다. 즉, 잘 나가는 프로그래머는 엄청난 부와 명성을 누리지만 그 반대로 일반적인 프로그래머들은 일반 직장인과 별다를게 없다고 보시면 됩니다.
이런 사실은 국내에서와는 다르게 미국 하고는 확연히 차이가 나는데요, IT업계에서 프로그래머들은 미국에서 만큼은 유망직종으로 대우받고 연봉 순위 1,2위를 다투고 있습니다. 이 말인즉 평균 임금 수준은 미국하고는 다르게 테이블이 낮다 라고 보시면 되겠습니다.
그래서 여기에 편견이 생기는데요. 프로그래머들은 상대적으로 적용 연봉에 근로시간은 악명높기로 많다고 알려져 있습니다. 이건 반은 맞고 반은 틀립니다. 왜냐하면 미국같은 환경에서의 프로그래머들이 상대적으로 좋은 대우를 받는다고 하지만, 우리나라라고 해서 전체가 저임금에 야근만 주구장창하는 직업이라고 보기에는 너무 한쪽만 보는게 아닌가 하는 생각이 들기 때문입니다. 저만 하더라도 야근은 잘 안합니다.^^
위에서 언급한 한국에서의 프로그래머들은 사회적 영향력이 굉장히 큽니다. 뭐 다들 아주 잘 아시는 ‘안철수님’은 정치계에 들어와서 이미지가 바뀌었지만, 그 전까지는 한국에 IT업계의 큰 영향력을 끼친 보안업계의 선구자이기 때문입니다. 물론 그도 마찬가지로 그 명성외에 많은 부를 거머쥐었습니다.
즉, 같은 프로그래머라도 어떤 종류의 프로그래머인지, 어떤 환경에서 일을 하고 있는지, 어떤 경력과 성과과 있는지에 따라 임금과 근로시간은 천차만별입니다. 쉽게 얘기하면 각자가 다 다르다 입니다.
소위 SI(System Intergration, 시스템구축) 업계에서 일한 프로그래머의 사례를 보고 열악한 근무환경과 상대적으로 적은 연봉, 불안정한 위치, 장시간의 근로시간등으로 알려진 모습으로 인해 IT업계의 비하 혹은 프로그래머를 하지 말라는둥의 표현에 겁을 먹을 필요는 없다고 생각합니다.
오히려 최근에는 다른 포스트에서도 언급했지만, 4차 산업의 기반을 IT인력, 즉 프로그래머로 보는 경향이 높아져서 관련 인력이 지속적으로 필요하며, 처우나 대우는 점점 더 좋아질꺼라고 보는게 제 시각입니다. 또한 자신이 어떻게 하느냐에 따라 앞길은 달라질수 있습니다. 이거는 비단 우리나라에서 IT를 하는 프로그래머 뿐만 아니라 다른 업종 종사자들에게도 해당되는 얘기입니다.
프로그래머의 대한 부정적 시선을 들게 한 사례들은 없었다고 부정할 수는 없습니다. 왜냐하면 그런 사실(안좋은 처우와 대우, 장기근로)이 있었다는게 팩트이기 때문입니다. 그렇다고 해서 모든 프로그래머가 처한 환경은 분명히 아니라는 것을 말씀드립니다. 향후에는 분명 좋아졌으면 좋아졌지, 안좋아질 수는 없을꺼라는게 제 생각입니다.
프로그래머의 분류
지금까지 프로그래머에 대하여 이런 저런 얘기를 해봤는데요. 프로그래머가 뭐하는 사람인지는 대략 아시겠죠?ㅋ 그렇다고 모든 프로그래머가 똑같은 일만 하고 살진 않을꺼 같은데요, 프로그래머도 업종과 성격에 따라 하는일이 다 다릅니다. 대략적으로 어떤 프로그래머가 있는지 확인해 보겠습니다.
- 웹 프로그래머
- SI/SM등의 전산 시스템 프로그래머
- 게임 프로그래머
- 모바일 어플리케이션 프로그래머
- 임베디드 소프트웨어/펌웨어 프로그래머
- 알고리즘 프로그래머
- 오픈소스 개발 프로그래머
이 외에도 다른 분야의 프로그래머들이 존재하지만, 이 정도의 분류로 한번 정리해보도록 하겠습니다.
웹 프로그래머
HTML, JAVA Script, PHP 등의 프로그래밍 언어를 사용하여 우리가 매일 같이 사용하는 웹(WEB)사이트를 개발 및 구축을 하는 프로그래머입니다. 위에서 언급한 언어외에 Python이나 C(CGI) 등으로도 웹 프로그래밍을 할 수도 있습니다.
웹 프로그래머는 웹사이트를 구축할때 겉으로 표시된 화면뿐만 아니라 실제 사용자가 웹에서 요청한 데이터 프로세스를 처리하는 데이터베이스(DataBase)를 제어하는 일도 할수 있습니다. 대표적으로 MySQL을 많이 사용합니다.
웹 사이트에서 유저가 보여지는 부분, 즉 화면상의 GUI를 개발하는 프로그래머를 프론트-엔드(Front-end) 개발자/프로그래머라고 합니다. 우리나라의 대표적인 포털인 네이버를 보면, 웹 브라우저에서 네이버를 접속해서 화면에 보여지는 부분을 프론트-엔드 개발자들이 개발한다고 보시면 되겠습니다.
반면에 웹 사이트는 단순히 보여지는 부분 외에 실제 사용자가 요청한 데이터를 쪼개고 붙여서 서버의 데이터베이스에 저장하는 별도의 과정을 거치게 됩니다. 이런 파트를 담당하는 프로그래머가 백-엔드(Back-end) 개발자/프로그래머라고 보통 불리웁니다.
Front-end 개발자는 HTML/JavaScript/CSS 등의 언어를 주로 사용하며, 웹 사이트 구축시 웹 디자이너와 협업을 통해 개발을 진행하게 됩니다. 그래서 인지 Front-end 개발자는 디자인적인 측면에 대한 시각이 높아지지 않나? 라는 생각이 듭니다. 아무래도 보기좋은 사이트가 사람들의 시선을 더 많이 끌게 되겠죠? 그래서 디자인 요소에 대한 고려를 많이 하게 됩니다.
반면, Back-end 개발자는 사이트의 표면을 개발하는 파트가 아니다 보니 디자인의 고려보다 기능과 효율, 안정성등의 요소를 더 고려하게 됩니다. 주로 PHP를 사용하여 데이터를 서버의 데이터베이스 저장하거나 사용하자 원하는 결과를 처리하기 위해 어떻게 구현할것인가에 대한 고민을 많이 하게 됩니다.
물론 웹 프로그래머를 위의 2 분류로 딱 나눌수는 없습니다. 이유인즉 개발범위가 겹치는 부분도 있기 때문입니다. 따라서 대략적으로 저렇게 분류한다는 것을 알면 될꺼 같습니다. 웹 프로그래머중에는 2가지 다 할수 있는 분들도 많이 있으므로 본인이 어떻게 하느냐에 따라 다를꺼 같습니다.
웹 프로그래머의 처우
웹 프로그래머는 IT분야에서는 응용 범위가 넓은 기초적인 부분을 담당하고 있습니다. 현재 누구나 하루에 한번쯤은 본인의 스마트폰이나 PC로 뉴스 기사나 정보검색을 하고 있는데, 이런 시스템을 웹 프로그래머가 다룬다고 보면 됩니다.
하지만 그에 비해 국내의 웹 프로그래머의 처우 및 환경은 녹록치 않습니다. 일단 웹 프로그래머의 진입 장벽은 대체적으로 낮은 편(그렇다고 쉽다는 뜻은 아닙니다)이어서 최근의 취업 현실을 볼때 비 전공자가 취업을 위해 단기간으로 학원에서 교육을 받고 진입을 하는 케이스가 많습니다. 그래서 인력 수급도 대체적으로 많이 되는 편이고, 이런 인력들이 중소/영세 개발사로 진입하면 상대적으로 낮은 대우(적은 연봉)와 열악한 환경에 직면할 가능성이 높습니다.
그래서 되도록이면 대형 포털사나 중견 업체로 입사를 하는게 현실적으로 가장 좋은 케이스지만, 자리는 한정되어 있어서 쉽지는 않습니다.
물론 본인이 웹개발을 즐기고 차근차근 커리어를 쌓다보면 좋은 대우를 받고 이직을 할수 있으며, 프리랜서로 활동할 수도 있습니다. 아직까진 한국의 웹개발 현실에서는 대기업에 입사하지 않는 이상 좋은 대우로 시작하기는 어렵지만, 최근의 웹의 중요성 대두와 법정 근로시간 단축등으로 인해 대우와 환경은 점점 나아지리라고 생각합니다.
웹 프로그래머의 진출 분야
웹 프로그래머는 IT분야의 기초적인 부분답게 진출할 수 있는 업종 및 분야가 다양합니다. 그럼 몇가지 예를 들어보도록 하겠습니다.
국내의 대표적인 회사로는 최대 포털 사이트인 네이버와 다음/카카오톡을 소유한 카카오가 있습니다. 이 두 회사는 웹 프로그래머들이 일할수 있는 회사중에 대표적인 곳이며, 국내외 영향력이 상당한 회사입니다. 기타 이들 회사 외에도 어느정도 규모가 있는 포털을 소유하고 있는 회사에서 일할 수도 있고, 고객사의 웹 사이트 구축을 설계하고 개발해주는 개발사에서 일을 할 수 있습니다.
또한 장치나 장비의 Control을 하는 GUI를 개발하는 제조업체에서 일을 할수 있으며, 이미 구축된 웹 사이트의 유지보수를 대행해주는 유지보수 업체에서도 일할수도 있습니다.
최근에는 웹(WEB)의 중요성이 점점 대두되어, 웹 프로그래머의 수요가 많이 필요한 상황이기도 합니다. JavaScript로 구현할수 있는 범위가 확대되고 있는 상태여서 언급한 곳 외에도 많은 곳에서 웹 프로그래머를 필요로 하고 있습니다.
SI/SM등의 전산시스템 프로그래머
국내에서 막연히 프로그래머라고 하면 떠올리게 되는 분야에 종사하는 사람들입니다. 아마 국내에서는 가장 많은 인력의 프로그래머가 종사하고 있다고 과언이 아닐듯 싶습니다. 그만큼 널리 알려져있고, 부정적인 이미지도 강한 분야입니다. ( 부정적인 이미지는 국내에서 강합니다. )
SI(System Intergration)는 시스템 구축의 약자로 기업이나 공공기관의 전산시스템을 개발 및 구축업무를 하는 분야를 뜻합니다. 여기서 SI에 웹 프로그래머도 포함될수 있겠네요^^
보통 전산시스템은 Client와 Server로 구성되어 있는데, Client단은 여러 종류가 있겠으나 Windows 기반의 Application과 WEB 등으로 구성이 많이 되고 있습니다. Server는 Windows Server 혹은 Linux서버가 되겠네요.
Client는 C++, JAVA, C#, WEB(HTML/JavaScript) 등으로 구현을 하며, Server는 C++, JAVA, PHP(WEB) 등으로 구현합니다. 전산시스템은 성격에 따라 여러가지가 종류가 있겠지만, 대표적으로 금융, 물류, 회계, ERP 등이 있겠습니다.
SM(System Management)은 시스템 운영 및 유지보수를 뜻하는 용어로써, SI 분야의 프로그래머들이 개발한 시스템을 운영 혹은 유지 보수 업무를 담당하는 프로그래머 들을 지칭합니다. 전산 시스템을 구축하고 나서 운영하다보면 각종 문제와 버그가 발생하게 되는데, 이런 부분을 SM 프로그래머가 처리 및 문제해결을 진행하게 되는 것입니다.
따라서 SM은 고객사의 불만사항이나 요청에 응대를 하거나 기존의 SI 프로그래머들이 개발한 Source를 수정 및 보완하는 작업을 하게 됩니다. 아무래도 사람상대를 하는 업무가 좀더 많다고 보면 되겠습니다.
SI/SM의 처우 및 현실
사실 국내에서는 SI/SM의 처우나 환경이 악명이 높습니다. (SI가 상대적으로 더 높다고 합니다…) 국내에는 3대 SI 대기업이 있는데요, 삼성 SDS, SK C&C, LG CNS 로 대표되는 회사들입니다.
이들 회사들의 매출원은 주로 기업이나 공공기관의 발주를 받아 프로젝트를 진행하여 완성함으로써 발생합니다. 그런데 이들 대기업들은 프로젝트를 진행할때 자사의 인력들을 직접 프로젝트에 투입시키기 보다는 하도급업체에 외주를 줘서 프로젝트에 포함시킵니다. 소위 갑을병정식의 계약이 이루어지는 것이지요.
그래서 SI 대기업의 직원들은 실제 프로젝트 개발을 진행하기 보다 프로젝트 관리 위주로 참여합니다. 따라서 실제 업무는 SI 대기업에 발주를 받은 협력업체에서 프로젝트 개발을 진행하고 관련 프로그래머들이 협력업체에서 투입됩니다. 여기서 빠른 프로젝트의 진행을 위해 일정을 급격이 줄이는 현상이 발생하는데, 바로 장기간의 근로시간이 발생하게 되는것입니다.
사실 이런 부분은 국내의 경제 구조적 문제가 가장 큰 원인으로 보는게 맞는거 같습니다. 비단 IT분야의 기업들의 문제가 아닌 타 업종에서도 비슷한 현상은 발생하기 때문이지요. 여기에 협력업체에 소속되어 있는 프로그래머들은 장기간의 근로에 더해져 낮은 연봉 및 주말에도 쉬지 못하는 열악한 처우에 빠지게 되는 것입니다.
이런 현상으로 인해 많은 SI/SM 프로그래머들이 열악한 현실을 견디지 못하고 프로그래머일을 그만둔다던지, 해외로 눈길을 돌리던지 하는 현상이 발생해왔고, 40대가 넘어가면 치킨집을 차린다는 우스갯소리가 만연하게 되었던거 같습니다. 이런 부정적인 현실은 대학가에도 널리 퍼지게 되어 학생들에게도 프로그래머를 기피하게 되는 결과를 초래하기도 했습니다.
그럼에도 현재까지 이런 문제가 개선이 되질 않고 있는데 반해, 어려운 취업 현실의 상황속에서 이공계 분야가 취업이 잘된다는 인식 하에 비전공자도 SI/SM분야에 뛰어들고 있는게 현실입니다. 이쪽도 학원에서 교육을 받고 SI 개발사에 취업하는 인력들이 많이 있는데 그만큼 진입 장벽이 상대적으로 낮아서 인력 수급도 많이 되는 대신, 중간에 그만 두는 인력들도 많은 악순환이 반복 되고 있습니다.
너무 부정적인 얘기만 한거 같은데요^^ 그럼에도 잘 이겨내고 열심히 Skill을 쌓고 특정 분야에 커리어를 쌓아가다 보면 좋은 연봉과 대우를 받고 이직도 가능하고 프리랜서로 전향하거나 본인의 사업을 하는 프로그래머들도 많이 있습니다. 어째보면 본인이 하기 나름인거 같습니다.
SI/SM 프로그래머의 진출 분야
국내에서 가장 유명하고 규모가 큰 대기업에 진출할수 있습니다. 대표적인 곳이 삼성 SDS, LG CNS, SK C&C입니다. 이들 회사들은 규모가 큰 뿐더러 연봉이나 처우도 다른 회사들보다 월등히 좋습니다. 만약 본인이 SI/SM 프로그래머를 희망하신다면 위의 회사들을 입사하시는게 좋은 케이스일꺼 같습니다.
물론 위의 회사들외에도 많은 SI/SM 분야의 회사들이 있습니다. 보면 대기업의 계열사들은 SI/SM 회사를 보유하고 있습니다. 이들 회사 또한 연봉이나 처우가 괜찮은 편에 속합니다. 혹은 중견 그룹 SI/SM 계열사에 취업을 노려보는 것도 대안이 될수 있습니다.
만약 본인이 규모가 큰 기업에 입사할 여력이 되지 않으면 중소 규모의 SI 개발사들도 대안이 될 수 있습니다. 물론 상대적으로 규모가 작은 개발사의 경우 갑을병정으로 표현되는 을, 병, 정의 입장이 되기 때문에 낮은 연봉과 열악한 현실에 직면할 수 도 있습니다. 하지만 열심히 커리어를 쌓으면 본인에게 큰 자산이 될수 있기 때문에 열심히 노력하여 Skill을 쌓다보면 좋은 결과과 나올것이라고 확신합니다.
게임 프로그래머
쉽게 얘기하면 게임을 개발하는 프로그래머를 의미합니다. IT 산업중에서 게임이 차지하는 비중은 상당히 높으며, 영향력 및 이슈도 많은 분야중에 하나입니다.
대표적으로 미국의 ID Soft사를 설립한 존 카멕은 전설적인 게임 프로그래머로 알려져 있으며, 그가 개발한 게임은 대표적으로 둠, 퀘이크 시리즈 등이 있습니다.
그 외로 게임 개발자로 유명세를 탄 프로그래머는 꽤 많습니다. 우리나라에서는 대표적으로 엔씨소프트의 김택진 대표가 있겠네요. 리니지 개발로 유명한 사람입니다.
최근에는 Windows 기반의 PC 게임(C++, MFC)에서 Android/i-phone 등의 모바일 게임으로 전환이 많이 된 추세입니다. 그래서 모바일 개발 환경의 게임 프로그래머가 비중이 많아 졌을걸로 추정됩니다.
게임 프로그래머의 처우 및 현실
게임 프로그래머 또한 명과 암이 존재합니다. 보통 게임 프로그래머들은 컴퓨터/전산학과 전공자 들이 많이 진출하는 편입니다. 게임 개발 자체가 많은 기능 구현을 필요로 하고 High Skill을 필요하기 때문에 진입 장벽이 꽤 높은 편이라고 볼 수 있습니다.
대신에 게임 산업의 특성상 단기간의 급박한 일정내에 게임 개발을 완료하여 출시해야 하기 때문에 업무 강도와 근로 시간은 꽤 높은 편에 속합니다. 게임은 많은 사용자를 확보하여야 매출이 늘어나는 특성상 빠른 출시는 중요한 포인트가 되는 것입니다.
이로인해 게임 프로그래머들은 단기간의 일정에 게임 개발을 완료하기 위하여 장기간의 근로상태에 직면할 수 밖에 없는 상황에 이르게 됩니다. 특히 게임 출시 직전에는 거의 잠잘 시간도 부족할 정도로 개발 업무를 진행할수 밖에 없는 상황에 처하게 되는 것이지요.
이런 국내 업계의 현실이다 보니 많은 게임 회사들이 인력 이동이 매우 잦은 편에 속한다고 볼 수 있습니다. 워라벨을 생각할 수 없는 게임 프로그래머들이 다수라고 보면 됩니다. ( 물론 예외인 경우도 존재합니다… )
반면에 경력 초기에는 적은 연봉일지라도 어느정도 커리어를 쌓게 되면 좋은 대우를 받을 수 있는게 게임 프로그래머이기도 합니다. 소위 스타 개발자들은 억대 연봉 그 이상을 받고 스카웃 되어 게임 프로그래머 일을 하고 있습니다.
즉 업계 특성상 장기간의 근로가 행해지기도 하지만, 괜찮은 경력은 금전적인 혜택을 누릴 수 있는게 게임 프로그래머라고 볼 수 있겠습니다.
최근에는 대형 게임개발사들의 장기간의 근로가 문제시 되고, 정부에서도 워라벨에 대한 가이드를 제시하여 법적으로 제제를 하려고 노력하고 있으니 향후에서는 좀더 나은 환경에서 게임 개발을 할수 있을꺼라 기대를 하고 있습니다.
게임 프로그래머 진출 분야
국내에서는 3대 메이저 게임 회사가 있습니다. 엔시소프트, 넥슨, 넷마블 게임즈가 있는데요, 이들 세 회사는 연봉이나 처우 및 복지는 아주 좋은 편에 속합니다. ( 물론 입사는 쉽지 않겠죠? )
이들 회사에 입사를 하면 메이저 게임의 개발 및 유지보수 업무를 진행할 수 있으니, 게임 개발이 목표인 분들은 이들 게임 회사 입사에 도전해 보시면 될꺼 같습니다.
그 외에 중견/중소 게임 개발사들이 있습니다. 스마일게이트, 컴투스, 네오위즈 게임즈, 선데이 토즈, 게임빌 등이 있는데, 이들 게임 회사도 자사 게임의 성공으로 꾸준히 매출을 올리고 있는 회사들입니다. 이들 회사에 입사를 해서 게임 개발을 할 수도 있겠습니다.
기타 게임 개발은 작은 규모의 벤처나 게임 제작사들이 많이 있습니다. 이들 회사들은 상대적으로 적은 연봉과 열악한 환경이겠지만, 본인이 게임 개발에 대한 열정이 있고, 만약 게임이 성공한다면 그만큼 성과의 혜택을 볼 수 있다는 장점이 있습니다.
게임 프로그래머를 꿈꾼다면, Windows 기반의 MFC나 Android기반의 JAVA, i-Phone 기반의 Object-C 등을 익히면 됩니다.
모바일 어플리케이션 프로그래머
최근 10여년 전부터 대두되된 프로그래머입니다. 애플의 아이폰과 안드로이드 폰이 보급되면서 새로운 분야로 각광을 받게 된 프로그래머라고 볼수 있겠습니다.
스마트폰의 깜짝 등장으로 스마트폰 어플리케이션의 수요는 기하급수적으로 많아지기 시작했고, 이들 프로그래머 인력 또한 많이 늘어나고 또한 기존 인력이 전환을 하기도 했습니다.
최근까지는 블루오션이었던 모바일 어플리케이션 프로그래머는 어느정도 현재는 포화상태에 이르면서 주춤해졌지만 현재까지도 프로그래머가 진출할수 있는 분야에서 많은 부분을 차지하고 있습니다.
모바일 어플리케이션 프로그래머에 대한 처우 및 현실
모바일 어플리케이션 분야는 SI/SM에 속하기도 하고 게임 프로그래머에 속하기도 하는등 약간 복합적인 성격을 띄고 있습니다. 모바일 어플리케이션 분야가 금융, 공공기관, 멀티미디어 등의 여러 분야의 프로그램들이 있기 때문에 어느 특정 부분을 찍어서 말하기는 어렵습니다.
즉 본인이 원하는 분야에 따라 모바일 어플 프로그래머도 진출하기 때문에 만약 금융권이나 공공기관의 앱을 개발한다면 SI/SM에 속할수도 있고, 모바일 게임을 개발한다면 게임 프로그래머일수도 있기 때문입니다.
최근에 모바일 어플 프로그래머의 수요가 높아지자 비 전공자도 취업을 위해 단기 교육을 받고 프로그래머로 활동을 하고 있는 경우가 많습니다. 그래서 특정 분야 외에는 진입 장벽이 높은 부분은 아니라고 볼수 있습니다.
그래서 대기업에 입사하지 않으면 처우와 환경은 또한 녹록치 않는 부분이 현실입니다. 중소나 벤처 앱 개발사에서 개발을 하게 되면 적은 연봉과 장시간의 근로에 처할 확률이 높습니다.
그럼에도 다른 분야와 마찬가지로 본인의 노력 여하에 따라 숙련된 Skill과 커리어를 쌓게 되면 좋은 대우와 환경에서 보람을 느끼며 개발을 할수 있는거 또한 분명한 사실입니다. 특히 모바일 앱 개발 같은 경우 앱 스토어에 본인의 아이디어만 괜찮으면 취미로 개발하더라도 많은 수입을 올릴 수 있는 이점이 분명하다는 장점이 있습니다.
본인이 앱 개발에 대한 열정이 있으면 충분히 보람과 함께 금전적인 이득도 취할수 있는게 모바일 어플리케이션 프로그래머라고 할 수 있겠습니다.
모바일 어플리케이션 프로그래머의 진출 분야
사실 모바일 앱 프로그래머는 분야가 굉장히 다양합니다. 물론 Client단이라는 위치는 분명하지만 본인이 원하는 분야에 따라 진출할 수 있는 분야가 제각기 다르기 때문입니다.
게임 개발을 원한다면 모바일 게임 개발사에서 일을 할수 있습니다. 좀전에 언급했던 대형 게임 개발사도 모바일 게임을 출시하고 있으니, 괜찮은 대우와 복지의 혜택을 받으면서 개발을 할 수 있다고 보시면 됩니다.
그 외에 SI/SM 회사에서도 모바일 앱 프로그래머들이 진출 할 수 있고, 스마트폰 제조사인 삼성전자, LG전자 등의 전자기업이나 현대/기아차 같은 자동차 제조기업, 네이버/카카오 같은 인터넷 포털 사이트, 앱 개발을 전문으로 하는 앱 개발사 등등 본인 의사에 따라 얼마든지 진출할 수 있는 분야가 다양하다고 보시면 됩니다 .
영어를 잘하시면 해외 진출(미국)도 가능하니 기회는 얼마든지 있다고 생각하면 될꺼 같습니다.
임베디드/펌웨어 프로그래머
현재 제가 하고 있는 분야의 프로그래머입니다. 지금까지 살펴봤던 프로그래머와는 성격이 약간 다른 분야이기도 합니다.
임베디드/펌웨어 프로그래머(이하 임베디드)는 특정한 목적을 가진 장치/장비(컴퓨터)를 다루는 프로그래머를 지칭합니다. 즉 사용자의 특정 목적을 가진 장치/장비, 예를 들면 MP3 플레이어, IPTV 셋탑박스, 자동차 블랙박스 등을 동작시키는 프로그램을 개발하여 기능을 원활하게 동작시키는 업무를 총칭한다고 볼수 있습니다.
이들 프로그래머는 임베디드 장치 개발 부분에 따라 성격이 조금씩 다르기도 하는데요, 임베디드 장치의 부팅을 담당하는 부트로더를 개발하는 Part가 있고 OS의 커널이나 드라이버를 개발하는 Part, 임베디드 장치의 내부 Middle ware나 API를 개발하는 Part, 외부로 표시되는 GUI나 WEB을 개발하는 Part등으로 세분화 되기도 합니다. (물론 전 Part를 다 혼자서 할수 있는 능력자가 존재하기도 합니다.)
임베디드 S/W 프로그래머는 개발 진행시 Hardware(하드웨어)의 특성이나 지식을 필요로 하기 때문에, 관련 전공자들이 진출을 많이 합니다. 보통 정보통신, 전자공학, 제어계측공학 등의 전공자들이 주로 진출하며, 컴퓨터공학이나 전산학과 출신들도 간혹 진출하기도 합니다.
시스템 구조를 잘 파악해야 하기 때문에 비 전공자가 진출하기는 어려운 분야이므로 아무래도 진입장벽이 약간은 높다고 보시면 되겠습니다.
임베디드/펌웨어 프로그래머의 처우 및 현실
임베디드 프로그래머는 보여지는 거보다 행해지는거에 대해 고민을 많이 하게 되는 분야인거 같습니다. 실제 사용하는 언어로 코딩을 주구장창 하는게 아닌 시스템이 원활하고 문제없이 돌아가는걸 주로 고민하기 때문에 Hardware의 동작과 원리에 대하여 파악해야 하고 거기에 S/W를 맞춰야 하는 작업들이 굉장히 많습니다.
따라서 실제 하는 업무에 비해 결과는 바로 나오지 못하여 상대적으로 보람을 느끼지 못하는 분야이기도 하는데요, 이렇다 보면 재미없기도 하고 때론 다른 분야로 전환 하고 싶기도 한 분야입니다.
임베디드 프로그래머는 삼성전자나 LG전자로 대표되는 전자기업에서 일을 할수 있습니다. 그렇게 되면 연봉이나 처우는 괜찮습니다만 장기간의 근로시간과 업무에 대한 스트레스에 직면할 수 있습니다.
그외에는 주로 제조기업에서 소속되어 일을 하게 될 수 있는데요, 우리나라 제조기업의 특성상 프로그래머들의 시각이 현재까지도 회사의 일부분이라고 인식하는 CEO나 임원들이 존재합니다. 그로 인해 하드웨어적인 시간으로 업무를 판단하는 기준이 있고, 위의 삼성전자/LG전자 같은 전자 대기업이 아닌 이상 낮은 연봉과 열악한 환경에서 근무하게 될 수도 있습니다.
그럼에도 저같은 경우는 임베디드 프로그래머의 대한 매력이 있다고 생각하는데요, 그 이유중에 하나는 향후 제조 기반의 산업이 Software를 탑재하는 경우가 많아지고 있을 뿐만 아니라 관련 인력은 공급에 비해 수요가 많지 않아서 대우는 점점 좋아지게 될꺼라고 생각하기 때문입니다.
또한 IOT 디바이스의 수요가 많아지고 자동차등의 산업에서 Software가 필요하고 실제로 탑재되고 있기 때문에 많은 분야에서 임베디드 프로그래머의 수요는 많아질 것으로 생각됩니다.
국내에서도 정부나 기업에서 중요성을 점점 인지하고 있기 때문에 향후 가능성은 괜찮을 것이라고 생각이 듭니다. ( 물론 아직도 열악한건 현실입니다. )
임베디드/펌웨어 프로그래머의 진출 분야
임베디드 프로그래머 또한 진출 분야는 본인의 의사에 따라 다양할 수 있습니다. 보통 주로 전자/통신/제조 관련 기업에 진출하는 프로그래머가 비율이 높다고 보시면 됩니다.
국내에서는 굴지의 삼성전자/LG전자 등에서 일할 수 있고, SK하이닉스나 반도체 제조기업(팹리스)등에서 일할 수 있습니다. 또한 방위산업체인 한화탈레스 같은 곳에서 일할 수 있으며, 한국항공우주 같은 항공기 제조업체에서도 일할 수 있습니다.
통신/네트워크 분야로 눈을 돌리면 SK텔레콤 계열사나 네트워크 장치/장비 제조회사로 진출이 가능합니다. 저 또한 네트워크 장치/장비 제조회사에서 개발을 하고 있습니다.
최근에는 자동차 부품 제조업계에서 임베디드 프로그래머의 수요가 높아지고 있습니다. 자동차의 내부 멀티미디어 시스템이나 자율주행 같은 미래 기술 확보에 따른 임베디드 프로그래머들이 많이 필요해졌기 때문입니다. 그래서 본인이 원하면 이쪽 분야로도 진출이 가능하다고 보시면 되겠습니다.
아직 국내에서는 우주산업/로봇 등의 제조업이 활성화 되지 않았지만 점점 그 수요도 높아질꺼 라고 생각합니다. 국내에서는 청소로봇 같은 로봇을 제조하는 기업이 몇군데 있으며, 한국항공우주 같은 곳에서 우주 산업 기술과 관련하여 임베디드 프로그래머들을 필요로 하고 있습니다. 이들 기업이나 기관에 진출하고 싶으면 임베디드 프로그래머를 목표로 하시면 될꺼 같습니다.
임베디드 프로그래머를 목표로 하신다면 C/C++/JAVA/어셈블리 같은 언어를 익혀야 합니다. 특히 C는 임베디드 프로그래머들이 가져야 할 스킬중에 필수라고 보시면 될꺼 같습니다.
예전에는 WinCE 같은 윈도우즈 계열의 임베디드 OS를 사용하기도 했지만 최근에는 임베디드 리눅스 혹은 안드로이드를 많은 임베디드 장치에 탑재하여 개발하고 있습니다. 따라서 리눅스를 다룰줄 아는게 거의 필수 요건으로 생각하시면 될꺼 같습니다.
알고리즘/오픈소스 프로그래머
마지막으로 알고리즘/오픈소스 프로그래머입니다. 이 분야는 사실 국내 업계가 반성해야 하고 향후 국내업계에서도 활성화가 되어야 한다는 생각에 별도로 제가 분류를 해봤습니다.
우리나라 IT업계, Software 업계는 근본적인 문제가 있습니다. 이건 우리 산업 구조의 전반적인 문제라고 보면 될꺼 같은데요, 바로 기반적인 기술이 없다는 겁니다.
무슨 얘기나면, 스마트폰을 예로 들어 봐야 겠습니다. 스마트폰을 구성하는 요소중에 하드웨어를 제외한 소프트웨어를 봤을때 국내에서 손수 개발하여 탑재한 솔루션의 비율이 얼마나 될까요? 10% 미만일 것입니다. 그것도 삼성폰을 봤을때 내부 커널이나 드라이버의 커스텀 수정이나 자사의 앱등으로 한정되어 있을겁니다.
이말인즉 국내 자체만의 솔루션이 없다는 뜻이 됩니다. OS는 안드로이드이고 통신 및 내부 동작에 필요한 솔루션 또한 해외의 것을 주로 사다가 씁니다.
스마트폰 뿐만일까요? SI업계에서 개발시 사용하는 솔루션도 마찬가지이며, 게임회사에서 사용하는 그래픽 라이브러리, 개발 환경 또한 해외의 것을 구입하여 개발을 합니다.
즉, 국내 기업들은 해외의 솔루션을 사용/구입하여 짜 맞추어 개발을 완료한다는 뜻이 됩니다. 마치 자동차를 제조할때 해외에서 엔진을 비롯한 많은 부품을 수입해 들여와서 국내에서는 조립만 하여 판매를 하듯이 말이죠.
이런걸 봤을때 국내 기업들의 경쟁력은 향후에는 한계가 있기 마련입니다.
그래서 소프트웨어의 핵심인 알고리즘 및 자체 솔루션을 개발하는건 큰 의미가 있다고 봐야 할것입니다. 하지만 국내에서는 그런 솔루션을 개발하는 회사가 그리 많지 않습니다.
현재는 관련업을 취급하는 회사가 많지는 않지만 향후에는 이런 회사들이 많아져야 하거니와 S/W 프로그래머들의 처우와 환경이 좋아지려면 S/W자체에서 부가가치를 만드는 노력을 지속해야 할것입니다.
여기에 추가해서 오픈소스 프로그래머를 언급하였는데요, 오픈소스 프로그래머는 특정 기능을 수행하는 프로그램을 개발한 후 소스와 프로젝트를 인터넷 상에 공개하여 많은 프로그래머의 리뷰와 참여를 통해 솔루션을 발전시키고 개발하는 업무를 하는 프로그래머를 뜻합니다.
그럼 소스를 오픈시키면 개발에 따른 댓가를 어떻게 받죠? 바로 오픈소스를 사용하는 개인과 기업에게 기술지원을 해주고 거기에 따른 비용을 지급받아서 수익을 창출합니다.
오픈소스 프로젝트의 대표적인 경우는 안드로이드 OS가 있으며, MySQL같은 데이터베이스, Apache(웹서버), 리눅스 OS가 있습니다.
알고리즘/오픈소스 프로젝트 프로그래머의 진출 분야
저는 개인적으로 오픈소스 프로젝트 쪽으로 진출을 해보고 싶습니다.^^ 그만큼 흥미있는 분야이며, 지금은 S/W업계의 대세가 된듯 합니다.
알고리즘을 예로 들면 국내에서는 그 유명한 안철수씨가 설립한 V3 가 있으며, 한글과 컴퓨터의 한글등이 유명한 소프트웨어 솔루션이라고 보면 되겠습니다.
오픈소스를 예로 들면 사실 국내에서는 오픈소스 프로젝트가 그다지 활성화 되지는 않는듯 합니다. 오픈소스를 많이 이용은 하지만 그 반대로 직접 개발을 하는 프로젝트는 드문 편입니다.
그래서 알아봤는데…. 안습이네요 ㅋ 그래도 찾아보니 2개의 프로젝트가 있었습니다.
웹 사이트 CMS(설치형 전자 게시판)에 2개가 있는데요, 바로 XE와 그누보드 입니다. 두 프로젝트가 공교롭게도 웹 CMS네요.
XE는 예전 제로보드로 유명한 솔루션이었고, 현재까지도 활발하게 개발이 이루어지고 있습니다. 네이버에서 후원을 하고 있으며, 국내 웹사이트 또한 XE로 제작되는 사례가 많이 있습니다.
또한 사례는 그누보드 인데요. SIR소프트라는 곳에서 프로젝트를 진행중이며, 저 또한 그누보드를 사용하여 웹사이트를 운영하고 있습니다. 현재까지도 꾸준히 개발 및 패치가 진행되고 있고, 그누보드 테마를 서드파티로 개발하여 보급하는 개발자들이 활발하게 활동하고 있습니다.
현재 국내는 이정도의 케이스로 솔루션/오픈소스 프로젝트가 진행이 되고 있지만, 향후에는 국내 IT업계도 관련된 일을 하는 회사나 단체가 생기고 활성화 될꺼라고 보고 있습니다. 최근에 블록체인 관련하여 솔루션을 취급하는 회사가 설립되고 있고, 자율주행, 머신러닝(AI)등의 솔루션에 대한 관심이 높아지고 또한 개발이 진행되고 있기 때문에 솔루션/오픈소스 프로젝트에 진출할수 있는 기회는 점점 늘어날 것으로 생각됩니다.
다만, 현재에 국내 프로그래머들이 진출하여 급여 및 수익을 올리기에는 아직은 한계가 있는게 아쉽다고 볼 수 있겠습니다.
마치며…
지금까지 프로그래머는 어떤 사람이고, 어떤 분야에서 일을 하는지 대략적으로 정리를 해봤습니다. 정리를 하면서 프로그래머의 처우 및 현실에 대하여 이쪽일을 희망하는 청소년들과 학생들에게 부정적인 시각을 언급하지 않았나 조심스레 걱정도 해봅니다.
하지만, 국내 현실은 아직까지 열악하고 어려울뿐 해외에서는 이미 좋은 대우와 인식을 가진 직업중에 하나기도 합니다. 최근에 정부에서 4차 산업을 언급하면서 코딩교육의 중요성과 기술의 중요성을 인식한 만큼 향후에는 국내 프로그래머에 대한 처우나 현실도 분명 좋아질꺼라고 생각이 됩니다.
저도 현재까지 일을 하면서 초기에는 적은 연봉과 불안정한 미래, 열악한 환경에 한탄을 하기도 했으나 시간이 지나면서 점점 오르는 연봉과 쌓아가는 커리어를 회사에서 인정해 주면서 나름대로 보람을 느끼고 있습니다. 주변 시각이 아직까지도 부정적이고 어렵다고는 하지만, 국내에서 그래도 학벌/스펙에 차별받지 않고 열심히 하면 나름 대우를 받을 수 있는 프로그래머라는 직업에 대해 현재는 후회를 하진 않는거 같습니다.
대신에 끊임없이 공부해야 하고 책상머리에 앉아있어야 하는 상황이 사람마다 틀리듯이 본인의 성격에 따라서 판단해야 할 문제라고 생각합니다^^
자기 자신이 프로그래밍을 하고 싶으십니까? 그런데 낮은 연봉과 불안한 미래가 걱정되십니까? 그렇다면 과감히 도전해 보십시오. 시작은 미약했으나 끝은 창대할것입니다. 대신에… 절대 중간에 포기하지 마세요^^