취업/SW
1. 개요
개발자의 취업을 다룬 문서. 취업/이과의 다른 분야 취업과 다르다 보니 분리되었다.
개발자에 대한 전반적인 내용은 코더, 프로그래머, 대한민국/IT, 특정한 전문분야에 대한 내용은 게임 제작사, 게임 프로그래머, 비디오 게임 제작자 등 별도의 문서들을 참조바람.
2. 스펙
- 경력: 밑에 여러가지 나와 있지만, "이전에 어느 회사에 다녔는가"가 모든 스펙을 씹어먹는다. 예를 들어 명문대 출신 20년차 중소기업 프로그래머보다 구글의 고졸 신입 / 학부 인턴 프로그래머가 더 높은 연봉을 받고, 이직시에도 더 높은 평가를 받는다. 더 나아가, 구글 등의 기술적으로 상위 티어의 회사들은 하위 티어의 회사들의 경력을 인정해주지 않으며, 무조건 신입 연봉을 제시한다. 회사에 들어와서 능력을 증명해야 제대로 된 대우를 받을 수 있다. 예를 들어 네이버나 카카오에서 중소 기업 경력을 인정받기 힘들고, 구글에서 네이버/카카오의 경력을 인정받기 힘들다. 하지만 아무도 불만이 없는 것이, 상위 티어 회사들의 신입 연봉이 하위 티어 경력자의 연봉보다 높다...회사들도 이것을 잘 알고 있으며, 그래서 하위 티어에서 좋은 대우를 받기는 구조적으로 힘들다.
- 병역: 산업기능요원/IT, 컴퓨터공학과 전문연구요원, 전산병, 정보체계관리 등이 유리하다.
- 대회: 한국정보올림피아드, ACM, 해킹방어대회 등
- 연구: 대학원, 논문, 학술대회 발표
- 학벌: 개발을 업으로 하고 싶다면 코딩 테스트가 중요하다. 카카오는 100% 코딩 테스트로만 개발자 공채를 진행하고 있는데 61.4%는 인서울대학이나 해외대학이 선발되었다# 인서울대학이 아닌 경우에는 카이스트, 포항공대와 같은 과기원 졸업생도 포함되어있으며, 경희대, 성균관대, 아주대, 인하대와 같은 수도권 명문대도 포함된 숫자이다. 전국 대학학생수의 20%인 인서울대학 학생이 61.4%의 높은 비율을 차지하는 이유는 학교별 쿼터를 두지 않고 무조건 실력 순서로 선발하여 명문대 비율이 높다. 심지어 명문공대 출신의 사장들도 자기와 몇년간 일하며 실력이 검증된 경우가 아니라면 자기 학교 출신이라고 무조건 뽑지 않으며, 코딩 테스트를 실시한다. 구글도 개발자 뽑을 때는 10% 정도는 고졸 이하다.
- 평점: 채용 공고에 따라 차이는 있지만, SW분야 자체가 다른 공학 분야들보다 '학점이 아니고선 대학을 갓 졸업한 사람들의 실력을 빠르게 가늠할 기준이 없다'는 문제에서 조금 자유로운 편이다.
- 포트폴리오: 기술력, 협업 능력, 개발에 대한 열정을 평가한다.
- 기술력: 개발자로서의 기술력을 확인하기 위해서 국비지원 학원 출신부터 전공자까지 개발 관련 포트폴리오가 채용 기준에 포함되는 경우가 많다. 보통 학교나 학원에서 진행하는 졸업 작품이나 준비생들끼리 결성한 팀 프로젝트가 기반이 된다. 흔한 주제는 Java를 이용한 스마트폰 앱 개발/웹 개발, 아두이노를 이용한 RC카나 드론 등이다. 다만 이런 경우 코더 소리를 듣지 않게 차별화된 무언가가 있는 것이 좋다. 임베디드 시스템, 영상 처리, 블록 체인, 기계학습 등 신기술이나 복잡한 알고리즘을 이용한 포트폴리오를 만드는 경우도 있다. 다만 이런 능력이 요구되는 전문 프로그래머를 뽑는 자리에 지원한다면 석사 출신들과 경쟁해도 꿀리지 않을 수준의 성과를 보여야 한다.
- 협업 능력: 기업에서 진행하는 프로젝트는 기본적으로 협업이기 때문에 포트폴리오를 통해 협업 능력을 증명할 수 있으면 좋다. 따라서 혼자서 진행한 프로젝트보다는 마음이 맞는 2명 이상이 모여서 진행한 프로젝트가 취업 스펙으로써의 가치가 높다.
- 개발에 대한 열정: GitHub의 활동 기록[1] 등 객관적인 이력이 있으면 좋다.
- 셋 다: GitHub을 포트폴리오로 사용하는 경우 프로젝트의 코드 내용 및 관련 설명을 통해 어떤 기술을 적용하였는지, 코드 내용을 통해 코딩 스타일이 어떤지, 협업에 적합한지 확인할 수 있다. 물론 여러 명이 함께 진행한 프로젝트라면 협업 능력을 증명하기에 더욱 좋다. Tensorflow 등 유명한 오픈 소스 프로젝트에 기여한 기록이 있다면 그만큼 기술력과 협업 능력이 출중하다는 것을 증명하는 셈이므로 더할 나위 없이 좋다. 열정 부분은 앞에서 설명했으므로 생략한다.
3. 무난한 취업 난이도, 하지만 엄청나게 넓은 처우 차이
수요와 공급은 많지만 처우의 스펙트럼이 넓고 피라미드식 승자 독식구조를 가진다. 수요는 많으나 슈퍼스타의 공급은 적다는 양극화에서 모순이 기인한다.
현대 사회에서 컴퓨터가 쓰이지 않는 곳은 거의 없기 때문[2] 에 수요가 많다. 따라서 문외한이라 할지라도 고졸 이상의 학력에 6개월 정도만 배우면 취업은 '''어렵지 않다'''. 실력없는 코더라 할지라도 갈 곳이 많다. 주로 SI, SM에 이런 일자리가 많다. 하지만...
고급 인력의 승자독식 구조 때문에 양질의 일자리를 갖는 것은 '''매우 어렵다'''. 흔히 처음 개발자의 모습을 떠올리는 사람들은 흔히 네카라쿠로 불리는 기업들을[3] 기준으로 상상하는 경우가 많다. 현실은 카카오는 신입사원 공채에 응시한 1만여명을 대상으로 블라인드 채용을 실시해 최종 합격자 44명을 선발했다. 경쟁률 229:1인 셈이다. 그들이 상상하는 개발자의 모습은 정말 이상적인 케이스고 그 밑의 케이스는 회사마다 사람마다 극단적으로 차이가 난다. 국내에서 취업하는 신입 혹은 3년차 이하의 주니어만 놓고 비교하더라도 개발자의 처우는 아래와 같이 달라질 수 있다.
- 국내에 지사가 있는 월클급 회사에서는 주니어도 영끌 9천까지 바라볼 수 있다
- 국내 IT 대기업 기본급은 3천 후반 ~ 5천 정도이므로 영끌 4천 ~ 6천 정도다.
- 다만, 회사마다 상여금과 복지로 인한 부가적인 소득/혜택 등이 천차만별이다.
- 물론 일부 극소수의 중소기업(스타트업 포함)들은 어지간한 대기업 못지 않은 대우를 자랑한다.
- 물론 이 경우 그들의 실력은 어지간한 대기업 공채는 때려부술 수준이지만, 중소기업을 원해서(혹은 병역특례로) 온 사람들이다.
- 중소기업은 대부분 연봉 3천 초반으로 분포되어 있다. 물론 2천 대로 후려치는 곳도 적지 않다.
- 실력이나 회사 보는 눈이 없다면, 전공자에 석사인데도 연봉이 3천만 원 이하인 경우가 존재한다.
- A: 개발자는 업무량도 많고 이에 반해 처우도 좋지 않은 직업이다
- B: 개발자는 워라벨 및 업무자유도도 높고, 처우도 만족스러운 직업이다
고급인력이 다른 공학과 달리 유독 개발자 업계에서만 승자독식이 가능한 것은 코드만 보면 코더와 엔지니어가 눈에 확 드러나 보이고 팀의 역량과 개인의 역량이 확연히 구분 가능한 몇 안 되는 업계이기 때문이다. 다른 업계의 사기업에서는 아무리 잘 났다 하더라도 부장 승진 정도는 되어야 20% 정도 연봉 차이가 나고, 그 전에 실적을 바탕으로 연봉 차이를 요구하면 버르장머리가 없네 헛바람 들었네 주제를 모르네 하면서 핀잔이나 듣기 때문에 비슷한 연차에 비슷한 연봉을 받는 사람이 많지만, IT에서는 코더에 비해 15배 이상의 부가가치를 창출하고 5배의 연봉을 받아가는 게 가능하다. 2010년대 구글 인사 최고책임자는 구글/조직문화에 대해 논하면서 우수인재에게는 100배의 연봉을 줘도 아깝지 않으며 개발자의 실력 분포는 표준정규분포가 아닌 멱급수 분포를 이루고 있다고 평했다. 그래서 넓어 보이는 진로, 많아 보이는 선망받는 직장은 개발자 업계에서 그 고급인력들만이 승자독식한다. 이들은 '연구원, 과학자, 엔지니어' 등으로 불린다.
3.1. 전공자 vs. 비전공자 (신입)
보통은 전공한 전공자가 좋은 인상을 준다. 복수전공자 역시 정상적으로 전공 실력을 쌓는다면 채용된다. LG CNS는 철학과 출신의 데이터 분석 복수전공자를 채용한 적이 있다. 이 지원자는 대학 시절 컴퓨터 동아리 활동으로 앱을 개발해 구글 플레이스토어에 올린 경험이 있었다. 이 경험이 높은 직무 역량으로 평가되었다.
인문계 출신이나 학원 출신들은 대부분 단순히 코딩 정도만을 할 줄 아는 소위 양산형 프로그래머인 경우가 많다. 그리고 이들은 대개 전문적 지식이 부족한 문제가 있다. 인문계 취업난으로 인해 인문계열 학생들이 IT 쪽으로 복수전공/부전공을 시도하며 비전문적인 프로그래밍 분야로 몰리고 있고 프로그래머를 양성하는 교육기관/학원이 다수 생겼으나, 채용자들은 이들을 저질 공급으로 보고 별로 신뢰하지 않는다. 따라서 비전공자일 경우 코딩 테스트를 잘 봐야 한다. 코딩 테스트는 인상이 아닌 결과로 결정되기 때문이다.
전공자라 해도 학원에서 양산된 소위 양산형 프로그래머들보다 크게 경쟁력이 없을 경우는 좋은 대우를 받기 어렵다. 예를 들어 미리 입력해놓은 정보를 사전 나열식으로 보여주기만 하는 뷰어는 학원 출신도 만들 수 있으므로 이런 것을 포트폴리오로 제출한다면 전공자로서 좋은 평가를 받기 어렵다. 또 C/C++이나 알고리즘/자료구조 등의 지식이 부족한 상태로 전공에서 어려운 과목을 듣게 된다면 체계적으로 지식을 쌓기 어려워 결과적으로 비전공자보다 나은 실력을 얻기 어렵다.
SI 업체는 특정 프로그램이나 솔루션을 개발하는 IT 업체에 비해 비전공자를 많이 뽑는다. LG CNS의 경우 개발자 중 30% 이상이 인문사회계열 전공자다.
결론적으로 전공자에게 주어지는 메리트는 "없다". 구세대 대기업들(삼성/엘지 등)은 전공을 중시하지만 신세대 IT 대기업들(네이버/카카오 등)은 졸업장이 있다고 해서 유리한 부분이 전혀 없으며[4] , 모든 것은 인터뷰(코딩면접 포함)가 결정한다. 이런 경향이 생긴 것은 "전공졸업자"이지만 코드한줄 제대로 못짜는 사람이 너무 많이 존재하기 때문이다. 그래서 업계에서는 대학 졸업장을 그다지 신뢰하지 않으며, 인터뷰를 통과하지 못하면 얄짤없다. 다만, 전공자에게 주어지는 혜택이 아주 없는 것은 아닌데, 인터뷰를 볼 수 있는 기회가 훨씬 더 많이 주어진다. 예를 들어 교내 리크루팅 행사나 선배의 소개 등으로 학생 때부터 꾸준히 기회가 주어지고, 서류 탈락하는 경우도 훨씬 적다.
3.2. 사고력 vs. 구현
일반인들, 즉 비전공자들은 컴퓨터공학과를 프로그래머를 양성하는 교육기관으로 생각하는 경향이 있다. 따라서 스파게티 코드나 프로그램 최적화 등의 문제보다는 자신들의 회사와 관련된 구현을 해낸 게 있냐 없냐에 훨씬 큰 비중을 둔다. 국내 대기업의 인사면접, 임원면접 역시 비전공자 위주의 면접관으로 치러지기에 그쪽 경향이 강하다. 하청, 파견 위주 기업의 경우 일을 잘 했는지 평가가 그런 비전공자 위주의 갑 회사들에 달려있기에 비슷한 경향이 있다. 이들이 볼 때 관련된 구현을 해낸 게 없는 지원자는 그냥 입만 살아 있는 이론가로 취급한다.
그러나 IT만 전문적으로 하는 회사들, 그 중에서도 독자적인 솔루션을 판매하는 회사들의 경우 다르다. 이런 기업에서는 '''비슷비슷한 쉬운 문제를 많이''' 푸는 게 아니라 '''누구도 해결하기 어려운''' 문제를 하나라도 푸는 게 중요할 수 있기 때문이다.[5] 이런 기업에서는 쉬운 문제는 이미 다른 사람들이 다 풀어놨고, 시장을 선도하기 위해 풀어야 할 어려운 문제들 위주로 남아 있다.
사실 프로그래밍은 컴퓨터공학과에서 배우는 것들 중 '''일부분에 지나지 않는다'''. 단순히 프로그래밍만 배우고자 한다면 학원에서도 어느 정도는 배울 수 있다. 요즘에는 아예 전문적으로 6개월 과정으로 전부 가르쳐 주는 취업학원도 있다. 그러나 이 정도 배워서는 직접 알고리즘을 짜는 데 약하다. 그래서 프로그래머가 문제의 풀이법의 줄거리를 알려주기 전까지는 자신의 힘으로 문제를 어떻게 풀어낼지 알아낼 수 없는 것이다. 그런 어려운 문제를 풀 수 있는 사람은 드물기에 그런 사람만이 연봉을 높게 받는다.
다른 사람의 코드를 가져와 사용하는 코더로서의 행동을 '자신이 프로그램 코딩을 했다'는 식으로 이야기하면 거짓말로 간주하고 탈락시킨다. 2016년 하반기 LG전자 신입사원 면접 탈락 사례다. 한 지원자가 다음과 같이 이야기했다. "저는 대학교 때 자바와 안드로이드를 집중적으로 공부해 코딩을 배웠습니다. 프로그램 코딩을 1만줄을 할 수 있습니다." 면접관이 다시 질문했다. "실제 1만줄을 본인이 직접 짠 겁니까, 아니면 인터넷에서 가져온 겁니까." 이 질문에 지원자는 머뭇거리다 떨어졌다. 인사 담당자는 "실제로 소프트웨어를 전공한 대학생이라도 코딩을 자기 실력으로 1만줄 이상 하는 것은 쉽지 않다"며 "꼬리에 꼬리를 무는 질문에도 대답이 술술 나오는 깊이 있는 지원자를 원한다"고 했다.
4. 조직문화
IT 업계에서 뛰어난 개발자들 중에는 상명하복 한다고 평가받는 사람들의 비율이 다른 집단보다 낮다. 업계 자체가 변화가 빠르고, 갈 수 있는 기회가 많아 폐쇄적인 산업이 되기 힘들다. 타 학문에 비해 신생학문이라 기득권층이 생기는 역사가 짧으며, 상명하복 체제가 조직 경쟁력 향상에 큰 도움이 되지않는다. 애초에 비효율적인 걸 싫어하니 알고리즘에 관심을 갖는 것이다. 그 성향이 직장생활에서 의전이나 술 강요, 회식, 강제 야근, 절대복종 등 비효율적인 것을 거부하는 것에서 그대로 드러난다. 그렇다 보니 국내 탑티어 대기업에서 연봉을 높게 주겠다고 해도 미국 박사, 외국계 출신, 소문난 해커 같은 사람들은 잘 취업하지 않으려고 든다. 이 때문에 낮은 연봉에도 불구하고 국내 제조업 탑티어보다는 기술력 높고 직장문화 자유로운 곳을 더 선호하는 개발자들이 많다.
그걸 반대로 이용해 일부러 똥군기 심하다고 소문난 곳 위주로 지원해서 업계에서 당장 써먹을 프로그래밍 구현 잘 한다고 말하는 등 틈새를 잘 비집고 들어가는 경우도 있다.
5. 문과에서의 진입
SW 개발자의 취업은 예나 저나 코딩 실력이 100%를 차지한다. 그래서 실력이 있다면 교육을 뭘 받았든, 어디서 교육받았든 아무 상관이 없다. LG CNS에서는 철학과 출신의 컴공 복수전공자를 선발한 적이 있다. 앱 개발 경험이 있었기 때문이다. 구글 역시 영어영문학과-철학과 복수전공자에 인공지능 스타트업 출신의 개발자를 채용한 적이 있다.
그러나 다수 집단에서 차이가 관찰된다. 삼성전자에서 인문,사회계열과 예술계열 출신만 뽑아 소프트웨어 교육을 시키고 채용하는 삼성 SCSC 제도를 실험했다. 당시 해본 사람들(2017)에 따르면 너무 어렵고 힘들었다고 한다. 성균관대 경영대의 SCSC 이수자를 인터뷰한 결과, “막상 공부를 해보니 컴퓨터공학과를 원래 전공한 학생들의 학습 속도를 따라가기가 벅차다”, “따로 예습과 복습을 기본으로 해야 수업을 겨우 따라갈 수 있어 다른 활동을 거의 할 수 없다. 이 때문에 원래 전공인 경영학 공부에 쏟을 시간이 줄어드는 것 같다”고 했다. 인문사회계끼리만 들어도 상위 10% 정도만 잘 따라가고, 전체 30% 정도는 사교육을 받고 있다고 한다. 심한 경우 휴학하고 프로그래밍 학원에 다닌다고도 했다.
문이과가 고등학교 때부터 갈라졌으니 배려해 달라는 의견도 있다. 서울대에서는 2015년 실제로 이렇게 했다. 경영대 학장이 공대 학장에게 인문사회계도 노력하면 A받을 수 있게 해달라고 건의하자 그대로 시행했다고 한다. 또 이를 배려해 인문사회계열끼리만 듣는 프로그램이 개설되는 경우도 있다.
전공에 따른 장점을 살리지 않고 소위 '보도방'으로 알려진 파견직 SI 중소기업에 취업할 경우 연봉은 1800~2200 수준으로 고졸과 다름없다. 따라서 전공이나 적성과 관련있는데다 수요가 많은 분야를 고를 필요가 있다. 2019년에 문과가 강점을 보이는 분야는 주로 Data Analyst 쪽이다.
기업이 컴공 학위 소유자를 선발하는 이유는 학위의 네임밸류와 같은 간판효과 때문에 선발하는 것이 아니라 알고리즘, 자료구조 등에 대한 지식을 갖고 있기 때문이다. 학위는 그것을 보조적으로 인증하는 추가 정보일 뿐이다. 그러므로 전공자만큼 임금을 받으려면 코딩 테스트를 통해 실력을 증명할 필요가 있다.
5.1. 경제학, 사회과학
현대 사회에는 다양한 수치해석 기법이 사회현상 분석에도 사용된다.
통계적 방법에 따른 엄밀한 모형을 세우고 계산경제학적 프로그래밍이 가능할 경우 컴퓨터 전공자가 할 수 없는 데이터 구축 능력을 보유하게 된다. 그 중 대표적인 분야는 광고 수익구조 모델링, 정부의 규제에 대응해 규제 효과를 분석해서 법경제학적인 논리 개발, 게임 기획자의 밸런싱이다. 경제학과 대학원에서는 계량경제학을 통해 자료가 갖추어야 할 통계적 조건과 엄밀성에 대해 깊게 학습하고 경제 모형을 컴퓨터로 세워서 현실 경제상황을 시뮬레이션하는 훈련을 하기 때문이다. 이들은 코딩 실력 보고 뽑는 게 아니라 수치해석이 가능하므로 뽑는 것이다. 이들이 데이터 수집 방법과 모형, 초기 단계의 코드를 만들어놓으면 컴공 출신의 Data Engineer들이 프로그램 최적화를 한다.
유명한 미시경제학 교과서 저자인 할 배리안은 2002년부터 구글 애드센스에 관여했다. 그 외에도 우버, 에어비앤비 등은 미시경제학 분야를 전공한 경제학자들을 채용하고 있다. [6] 학부 경제학과 졸업생의 경우에도 구글, 페이스북에 셰릴 샌드버그가 큰 기여를 했다. 게임계에서도 이브 온라인의 밸런싱을 경제학자들이 담당한다.
5.2. 자연 언어 처리
언어학과의 경우 한국외대가 이런 커리큘럼을 운영하고 있다.
6. 컴공 외 이과에서의 진입
Domain 지식[7] 을 이용하는 경우, 모델링이 요구되는 경우, 그리고 전공 무관으로 코딩하는 경우 셋으로 나뉜다.
Domain 지식을 이용하는 경우는 전공 지식을 가진 기술자로 입사한 뒤 현업에서 컴퓨터 지식을 활용하는 경우다.[8] 화학공학, 전자공학, 기계공학 등 일반 공학 전공자나 수학, 물리학, 생물학 같은 자연과학 전공자들의 경우 문과보다는 낫다고 할 수 있다. 기본적으로 컴퓨터 공학에서 요구하는 수학이나 공학 설계 능력을 가지고 있고, 대학교 커리큘럼에서도 프로그래밍 과목이 한 두 가지씩 포함 된 경우가 많기 때문이다. 특히 각 전공분야 중 SW와 융합된 부분이 많은 분야에 종사할수록 유리하다.
도메인 지식을 메인으로 내세우려면 문제가 발생했을 때 해결할 수 있어서 해당 분야 전문가들에게 인정받아야 한다. 학부 시절 간단한 졸업 작품을 만들어 본 수준이라면 대학원에서 해당 분야 수치해석 관련 논문이 있는 사람에게 밀릴 수밖에 없다. 문제가 발생해도 쩔쩔매는 사람들을 고용해서는 문제를 해결할 수 없기 때문이다.
모델링이 요구되는 분야라는 것은 주로 수학, 물리학, 통계학 전공자, 또는 이공계 아무 전공의 박사를 뽑아서 전공과 관계없는 시뮬레이션이나 기계학습을 시킬 때 등장한다. 이 경우 일단 입사시킨 뒤 알고리즘, 자료구조를 가르쳐가며 코딩 테스트를 통과할 것을 요구한다.
한편 일반 개발 능력을 메인으로 내세우려면 대학에서 원론적으로 배우는 능력은 거의 쓸모가 없어지고, 반대로 각종 최신 라이브러리 사용법과 코딩 트릭들에 대해 교육받는 직업학교 출신들에게 경쟁에서 이길 수 있다고 확신하기 힘들다. 소프트웨어 개발자 취업 시장은 각종 공학도는 물론 경영학 전공자라도 자기와 조금만 도메인이 겹쳐도 뛰어들 수 있기 때문이다.
그래서 관련 전공자들에게도, 졸업 후 각종 부트캠프 광고들이 들어오는 것은 이유가 있는 것이다. 사실 대부분의 전공자들도 특정한 도메인 지식에 특화되기보다 이런저런 잡다한 전공지식 사이에서 방황하다가 졸업하게 된다. 그리고 일부 도메인 지식을 가진 사람들도 해당 분야가 기계학습 같이 핫한 분야가 아니라면, 국내에서는 극단적으로 낮은 TO 때문에 해외취업에만 도전해야 하고, 취업에 실패한다면 어쩔 수 없이 다른 분야에서 일거리를 찾아야 하는데, 이 경우 C++나 파이썬 같은 것을 이용한 경험 정도만 인정받는 정도이다.
7. 취업 대상
7.1. 산업별 구분
- 제조업 SW 직무 - 처우가 좋은 곳은 삼성전자, LG전자, SK하이닉스, 삼성디스플레이, LG디스플레이, 현대자동차 등.
- 제조업 내에서 SW를 쓰는 것은 주로 펌웨어나 임베디드 시스템 등 Mid-low 레벨 업무다.
- 특히 리눅스 커널처럼 매우 low 레벨로 가는 경우 이를 제조하는 하드웨어 제조사로 가야 한다. 국내에서는 삼성전자 외에는 리눅스 커널을 다수 커밋하는 회사가 드문 편이다.
- 반대로 제조업 회사에서 응용 어플리케이션 개발 등의 High level 개발을 직접 수행하는 경우는 드물다. SI계열사로 넘기거나 관련 프로젝트가 아예 존재하지 않을 가능성도 있다. 삼성전자 무선사업부 등은 직접 응용 어플리케이션을 개발하기도 한다.
- 각 그룹의 SI 계열사와 함께 공장의 MES(Manufacturing Execution System)이나 ERP 등을 담당하게 될 수도 있다.
- 휴대폰, 네트워크 기기 제조사의 경우 보안 개발자의 자리도 있다. 해커 문서로.
- 국내 제조업 계열 회사들은 당장 위에 예를 든 회사들을 보더라도 그 규모가 굉장히 큰 편이라 입사지원시부터 직무를 나눠서 받는 경우가 많고 각 직무별로 업무는 천차만별이다. 본인이 원하는 업무가 무엇인지 확실히 알고 지원하는 전략이 필요하다. 특히 제조업체에 SW직무로 입사 할 경우 회사내에 SW직무의 TO는 매우 다양하게 분포되어있어 본인이 생각하는 SW업무와 굉장히 이절적인 업무를 하는 곳에 배치 받게 될 수도 있으니 직무의 성격을 확실히 알고 지원 할 것!
- 제조업 내에서 SW를 쓰는 것은 주로 펌웨어나 임베디드 시스템 등 Mid-low 레벨 업무다.
- SI - System Integration의 약자이다. 기업내외에서 발생하는 각종 데이터들을 효율적으로 조회하고 가공할 수 있도록 시스템을 통합하는 업무를 한다. 대표적으로 삼성SDS, LG CNS, SK C&C 등의 재벌그룹 계열사가 있으며 대기업 계열 SI업체는 기본급이나 복지를 그룹 내 타기업 수준으로 보장한다. 반면 중소SI기업의 경우 대기업 SI의 하청 업체가 되는 경우가 많다. 업무와 환경에 대한 자세한 내용은 SI 문서 참조.
- B2C 기업
- 네이버, 카카오, NHN, 배달의 민족, 라인, 토스 등 일반적인 소비자들을 위한 IT 서비스를 개발하는 기업을 의미한다. 보통 크게 보자면 안드로이드, iOS, 윈도우즈, 웹 어플리케이션 환경에서 유저 친화적인 IT서비스를 제공하는데 그 목적을 두고 있다.
- 금융권
- 국민은행, 신한은행, 카드사, 증권사 등 금융사의 IT 직무: 주로 금융권 전산망의 시스템 운영 및 차세대 전산망 개발시 원청 감독 역할을 맡는다. 금융권은 IT기술이 발전하면서 구식의 시스템을 버리고 새로운 시스템으로 옮겨가는 차세대 프로젝트를 시작하는 경우가 종종 있으며 이때 이런 차세대 프로젝트를 완수하기 위하여 2~3년의 단기간 동안 다수의 인력 투입이 필요하다. 하지만 다수의 개발인력을 평상시에도 유지하기에는 비용이 너무 많이 소모되니 이런 프로젝트 개발이 필요 할 때에만 적절한 인력 수급과 계획 수립을 위하여 SI업체에 시스템 개발을 의뢰한다. 계약이 체결되면 각 SI업체는 가능한 대로 인력을 수급하여 프로젝트에 투입하고 이때 프로젝트를 발주한 각 금융사는 자사 직원으로 협력사 인원들을 관리 감독하는 포지션이 되어버리는 경우가 많다. 구축이 완료되고 나면 협력업체와의 계약을 종료하고 자사직원으로만 시스템 운영을 하는 경우도 있고 협력업체와 SM계약을 유지하는 경우도 있는데 만약 후자라면 관리(management)쪽 업무 비중이 커질 가능성이 높다. 업무의 성격은 자사에 들어오고 나가는 돈의 흐름을 DB에 저장하고 관리하는 것이며 결국 핵심은 'A로 부터 B로의 돈의 흐름'이므로 [9] 데이터, 송수신 하나하나가 실제 돈과 관련되어있어 서버에 1초라도 문제가 없어야 하고 안정성이 보장되어야 하므로 굉장히 보수적인 문화를 가진 편이다. 금융권에서 유일하게 자체 개발팀을 보유한 곳이 카카오. 카카오뱅크 같은 경우, 타 금융 회사들과 달리 50명 이상으로 이뤄진 전담 개발팀이 존재하고 위 문단의 B2C 기업과 같은 구조로 운영한다.
- Quant Developer: 프로그램의 규모가 클수록 C++가 지배적이다. Red-black tree 자료구조를 구현할 수 있어야 한다. C++을 할 줄 알더라도 Python을 통한 데이터 분석 능력이 필요하다. 특히 C++로 무거운 프로그램을 빠르게 다루어야 할 경우 정적 다형성-동적 다형성의 차이, 가상 소멸자 등에 대한 이해가 요구된다.
- 게임사 - 3N(Nexon, NCsoft, Netmarble) 및 블루홀, 스마일게이트 등. 보다 자세한 업무 내용은 게임 프로그래머 문서로.
- 보안 및 솔루션 업체 - 안랩, 티맥스소프트, 한글과컴퓨터, 금융보안원 등.
- 통신사 - SKT, KT, LG U+ 등. 통신사에서 직접 내재화하는 기술로는 클라우드 데이터베이스 관리, 자연 언어 처리 (음성 합성, 서버 개발) 등이 있다.
- 공공기관 전산직, 전산직 공무원
7.2. 기업 형태 및 규모별 구분
1. 외국계 IT 대기업
실리콘밸리 기업 중 한국 내 개발자를 집중적으로 뽑는 곳은 페이스북, 구글, 아마존, MS 등이다. 보통 이 경우는 자사 한국인 개발자를 모교로 보내 후배를 알음알음 영입하게 하거나 관련 대회 수상자들에게 프로젝트나 일자리를 제안하는 식의 영입을 선호한다. 서울대 KAIST 등 국내 명문 공과대학 출신을 기준으로 2019년 초봉은 연봉 13만달러 선. 애초에 학교이름이나 학력은 고려대상이 아니며, 능력만 입증되었다면 학사도 많이 뽑아가고, 미졸업자도 인턴으로 마구마구 데려간다. 미국 비자를 받을 수 있는 자격이 있는가가 중요하다. 석사를 선호하는 것처럼 보인다면 석사가 이 부분에서 유리하기 때문이다.
다만 특별히 한국에 연구 개발 센터를 갖추지 않는 한, 대부분 외국계 기업의 한국 지사는 영업직이나 일반 사무직을 뽑는 비율이 개발자보다 훨씬 많은 경우가 많은 편이다.
2. 국내 IT 관련 대기업 - 3. 스타트업
4. 해외취업
상술한 경우와 다르게 외국에 직접 지원서를 넣는 경우를 말한다. 대부분 막대한 비자 비용을 회사가 지출하려고 하지 않기 때문에 구글 같은 Tech Giant나, 혹은 실리콘밸리의 일부 모험적인 스타트업들만이 외국인을 직접 영입하는데 관심을 가질 수밖에 없고, 그리고 이런 기업들은 이미 수많은 엘리트들이 높은 연봉 같은 것에 이끌려 도전하므로 어려울 수밖에 없다.
반대로 잘 알려지지 않은 기업이나 중소기업일수록 오히려 비자 문제에 까다롭다.
반대로 잘 알려지지 않은 기업이나 중소기업일수록 오히려 비자 문제에 까다롭다.
7.3. 취업 국적별 구분
1. 일본/취업: 2019년 현재 일본의 구인난, IT기술자 우대와 맞물려 일본어까지 공부해놓으면 일본으로 취직을 하는경우 취업깡패라 할 수 있다(...) 2020년 스가 총리가 된 후 디지털 청 설립으로 행정의 디지털화로 인해 일거리가 늘어날 전망이다.
2. 미국/취업
미국에서 취업하기 위해 필요한 H-1B 비자에서 승인된 53만개 지원서 중 약 42만개가 컴퓨터 관련 일자리다. 외국인 유학생 중 수학+CS 비중이 약 12%인 것을 생각해보면, 다른 전공보다 7배 이상 확률이 높다고 간주해도 무방하다.
다만 이것도 만만하지 않다. 저 42만명 중 가장 많이 뽑는 기업들은 인도계 IT 하청업체들이다. 그래서 한국에서보다 더 많은 세후임금을 받을 수 있는 수는 42만명보다는 적다. 마이크로소프트, 구글, 아마존, 시스코, 오라클, 페이스북 등등 유명 대기업이 있지만, 2017년 한해 마이크로소프트에서는 3,300명에게 비자 스폰서를 해 줬다. 그렇다 보니 한국보다 세후 임금이 높을 만한 대기업들은 경쟁률이 높다. 구글 경쟁률은 약 600:1 정도다.
이 600:1의 경쟁률을 통과하면 상당한 경제적 보상이 있다. 2017년 S&P 500 조사에서 2위를 차지한 페이스북과 4위를 차지한 구글은 연봉 중간값이 $240K, $197K에 달했다. 페이스북(연봉 2위)과 구글은 대졸 초봉이 175K에 상당한다[10] . 설사 비자를 탈락했다 해도 이런 회사에서는 런던 등의 해외 지사로 발령낸 후 다시 H1B에 도전하게 기다려 준다.
3. 원격 근무
프리랜서 직업이나, 일부 IT관련 벤처 기업들의 채용 공고 중 Remote 근무가 있다. 원격 근무로 취업한다면 비자나 생활비 문제로부터 자유롭고, 한국과 무역 수교가 되지 않는 나라를 제외하고는 취업이 가능하다. 물론 북한이나 중동/아프리카의 막장 나라를 빼고는 그럴 일이 없다. 그리고 임금이 선진국 기준으로 지불된다면 한국이나 다른 후진국 사람들이라면 오히려 큰 돈을 벌 수 있는 기회가 된다.
다만 아무 사람이나 뽑았다가는 일을 재대로 할지 관리할 수 없을 것이고, 당연히 사내 교육 같은 것을 통해 일을 가르치기도 힘들 것이니, 원격 근무로 신입을 뽑지 않을 것이고, 처음부터 일을 할 수 있는 경력자에, 프리랜서들 사이에서 좋은 평판을 가진 사람만 뽑을 것이기 때문에 뽑히기 힘들다.
신입이라면 도메인이 자기와 완전히 겹치면서, 오픈 소스 이력이 화려할 경우에만 도전해볼 만할 것이지만, 알다시피 TO 자체가 좁고, 그 좁은 TO에서도 당연히 수많은 능력자들 중 편하게 일하고 싶은 사람들이 죄다 지원할 것은 감안해야 한다.
8. 중소기업 고르는 팁
※ 기술적 내용 외에는 중소기업/구인난, 블랙기업, 열정 페이 문서 참조.
- 장비: 24인치 듀얼 모니터 이상 지급하는지 또는 노트북+24인치 모니터 지급하는지 체크하는 게 기본이다. 모니터 한 대로 개발하는 곳은 피해야 한다.
- 경영진: 개발자 출신 사장에게 가야 한다. 그게 아니더라도 개발자를 중요하게 생각하는 사장에게 가야 한다. 그런 경우 듀얼 모니터나 맥북 정도는 기본적으로 지급할 것이다. 개발자 출신이 아니어서 소프트웨어에 대한 지식이 없는 사장 중에 개발자를 막 대하고, 코딩하는 기계로 생각하는 경향이 있는 사장들이 있다. 이 사장들은 상용 개발 툴, 듀얼 모니터 등의 필요성을 못 느낀다.
- 개발환경: 지나친 구형 개발 환경을 쓰는 회사는 피하자. 문제는 면접통과하기 전에 이 점을 체크할 방법이 거의 없다. 개발 환경을 확인하겠다고 하면 산업스파이 취급을 받기 일쑤고, 면접 때 물어보면 이상한 놈으로 찍히는 정신나간 회사도 간혹 있다. 물론 오랫동안 이어져 온 회사라서 구형 코드베이스를 꽤 많이 가지고 있다면 좀 정상참작의 여지가 없진 않다만, 컴파일러나 IDE 같은 걸 상위 버전으로 바꾸면 얻어지는 성능 향상과 편의성 같은 건 무시하기 힘들다.
- Java: JetBrains 제품을 사용하는지, Java 버전을 몇을 사용하여 개발해야 하는지 알아보자. 2017년 기준으로 Eclipse, Java 6을 쓰는 회사라면 피하자.
- C++: 신규 개발을 하는데 아직도 C++98을 주력으로 쓰는 곳들이 있다. 아무리 재정난이어도 Visual Studio 6.0을 쓰거나 하면 혁신할 생각이 전혀 없다고 봐도 좋다. 개발자가 C++11 이상 문법을 아예 쓰지 않는다고 할 지라도 컴파일러의 자동 최적화에서 성능에 큰 차이가 난다.
- SQL: 2017년에 SQL Server 2003을 쓰거나 SQL Standard Join이 안되는 Oracle을 쓰는 회사도 있다.
- SI 회사: 피하자. 중소SI는 대부분 대기업SI의 하청일을 한다. 하청이 원청보다 대우나 복지 및 연봉이 좋은 경우는 거의 없다.[11] 대기업SI 회사들이 공공사업에 참여하기 어려움에도 무너지지 않고 조 단위 매출을 내며 버티는 이유는 계열사들의 SI 수요가 끊이지 않기 때문인데 중소SI는 대기업만큼의 수요를 창출할 수 없는 편이며 결국 수요가 적은 산업은 몰락할 수밖에 없다. 되도록이면 자체 솔루션을 개발 및 판매하는 회사로 가자.
- 플랫폼: 그러나 자체 솔루션이라 하더라도 넥사크로, 엑스플랫폼, 마이플랫폼 등의 요상한 국산 소프트웨어를 쓰거나 만드는 곳이라면 피하자. 회사에게 있어서 수익성은 좋겠지만, 개발자에게 있어서 실력은 떨어진다.
9. 자기소개서
자소서는 구체적으로 써야 한다. IT, 소프트웨어에 능통하던 한 인서울 대학 출신 지원자는 LG전자 서류에서 떨어졌다. 인사 담당자는 구체성이 없었기 때문이라고 설명했다.
- "프로그래밍에 관심이 생겼습니다. 관련 수업을 다양하게 듣고..." (탈락 자소서) → "‘모바일 어플 개발자’가 되기 위해 학부 시절부터 3년간 안드로이드, iOS, Java, C 같은 프로그래밍 언어를 공부했습니다. " (인사 담당자가 제시한 예시)
- "관련 수업을 다양하게 듣고 애플리케이션도 만들어봤습니다. 소프트웨어 관련 경진대회도 출전해 수상했습니다. LG전자의 일원이 될 자격을 갖췄다고 자부합니다.” (탈락 자소서) → "해당 언어를 구체적으로 사용하기 위해 6개월간 같은 학부팀 5명과 팀을 짜 00모바일 어플을 개발했습니다. 저는 5명 가운데 00업무를 맡았습니다. 가장 어려웠던 부분은 00가 있었습니다. 이걸 극복하기 위해 00을 했습니다. 그 결과 어플을 개발해 교내 소프트웨어 대회에서 우수상을 탔습니다" (인사 담당자가 제시한 예시)
10. 코딩 테스트
코딩 테스트는 온라인 혹은 오프라인에서 컴퓨터로 직접 문제를 푸는 것을 의미한다.
2000년대 후반까지만 해도 국내 기업에서는 거의 코딩 테스트가 없었다. 그러나 2010년대 들어서 대부분의 SW직무 및 기업은 인적성을 코딩테스트로 대체하는 곳이 많다. 6번 취업대상 문단에서 언급된 기업 대부분 역시 인적성 대신 코딩테스트로 그 전형을 대신한다. 코딩테스트를 통과하면 면접을 보며 면접시 자신이 코딩테스트 때 푼 문제의 코드를 중심으로 면접을 진행하는 편이다. 물론 코딩테스트 외에 자소서의 내용도 추가적으로 물어 본다.
해시, BFS, DFS, 힙, 완전탐색, 동적 계획법 등으로 해결하는 문제가 주로 출제되는 편이다. C++에서는 vector 등의 STL을 이용해야 한다.
코딩테스트를 준비하기 위해서 SW전공자들은 주로 백준 혹은 프로그래머스 등의 알고리즘 문제 사이트에서 준비하는 편이며 각 기업의 코딩테스트 이후 기출문제도 곧바로 유출되는 편.[12] 좀 더 다양한 문제를 풀어보고 싶다면 HackerRank, LeetCode 등의 해외 사이트를 이용하는 것도 좋다.
신입을 뽑는 코딩 테스트라고 해서 만만한 것은 아니다. 대한민국 95% 이상의 대학교에서는 컴퓨터 공학과에서조차 이러한 알고리즘 문제를 해결하는 방법을 가르치지는 않는다. 심지어 컴퓨터 과학 박사나 업계에 근무하는 시니어급 경력자들도 코딩 테스트용 문제를 풀다가 낭패를 보았다는 경험담이 많다. 그래서 아무리 전공자라도 꾸준히 위의 웹사이트에 나온 문제들을 풀어보면서 숙달되어야 한다.
삼성전자 SW직무는 그룹사 전체에 적용되는 인적성인 GSAT를 시행하지 않고 오프라인 코딩테스트로 대체한다. IDE는 2018년 하반기 기준 C/C++ 비주얼 스튜디오 익스프레스 2013, Java Eclipse Mars, 파이썬 PyCharm 2018.2.3이다.
10.1. 컴퓨터가 없는 경우
이런 경우 지필 시험이나 화이트보드 손 코딩 형태다. LG전자의 지필 코딩 시험은 C언어와 JAVA 중 고를 수 있다. 면접에서는 화이트보드 손 코딩으로 문제를 푼다. 2016년 LG전자는 ‘묵찌빠 게임', ‘한국 동전으로 1210원의 거스름돈을 주려고 할 때 가장 적은 수의 동전으로 주는 방법'을 예시 문제로 들었다.
구글 같은 경우도 참고 영상처럼 공식 홍보 영상에 손코딩을 한다. 손코딩 인터뷰의 경우, 구현 자체보다 "어떤식으로 문제에 접근하는가"가 주요 평가 대상이다. 구글 정도 되면 구현도 정답이어야 하며, 시간도 촉박해서 문제를 보자마자 솔루션을 떠올릴 수 있을 정도가 되어야 한다.
10.2. 과제
어떤 회사는 특정 요구조건의 앱을 몇일 안에 완성해서 오라는 종류의 과제로 코딩 테스트를 대신하기도 한다. 프론트엔드 쪽에서 자주 보이는 경향이 있다. 알고리즘보다 실제 구현 능력을 좀 더 잘 볼 수 있지만, 과제 규모가 커질 수 없는 만큼, 큰 스케일의 코드를 작성하는 능력은 볼 수 없다는 단점이 있다.
11. 경력직
그 동안의 경력에 따라 결정된다. 경력이 훌륭하다면 학교, 학과가 어디인지는 거의 관심을 갖지 않는다.
다만 소프트웨어와 무관한 분야에서 일한 경력만 가지고 업종을 바꾸는 경우라면, 비전공자가 아닌 전공자들도 오래전에 학교에서 배운 것에 자신이 없기 때문에 학원을 등록하는 경우가 대다수다.
12. 여담
- ITBANK에서 연락이 오므로 주의한다.
- 공공기관, 또는 SI 업계의 발주처에서는 프로그래밍과 관계없는 면접관이 개발자의 실력을 평가하는 경우가 있다. 이 경우 PPT의 아름다움, 또는 얼마나 거짓 약속을 부풀리는가가 더 높은 평가를 결정짓기도 한다. 절대로 개발 실력이나 실현 가능성에서 승부를 보려고 하면 안 된다.
- 모 직장인 익명 커뮤니티의 한 개발자가 가짜사나이를 패러디한 가짜개발자라는 제목의 글을 써 관련 커뮤니티에서 화제가 되었다. 하도 많은 사람들이 "나도 코딩이나 한번 배워볼까?"라는 식으로 개발자를 단기간에 배워 진입할 수 있는 가성비 좋은 도피처 정도 만으로 생각하는걸 풍자했다고.[13]
[1] 유저 페이지에 최근 1년간의 활동을 표시하는데 매일 꾸준히 활동할수록 좋다.[2] 이 점은 군대 특기병 선정에서도 마찬가지이다. 컴퓨터가 쓰이지 않는 곳은 거의 없기 때문에 수요가 상당하다.[3] 네이버, 카카오, 라인, 쿠팡의 앞 글자를 딴 단어.[4] 물론 졸업장 자체가 유리한 부분은 아니지만, 학부에서 배우는 주요 내용은 면접에서 아주 중요하게 다뤄진다. 대학 졸업 자체로 메리트가 생기는 것은 아니지만, 학부 과목을 진지하게 수강했다면 당연히 이들 기업에 취업하는 데 크게 긍정적으로 작용한다.[5] 예를 들어, 구글은 '검색 엔진 최적화'라는 단 하나의 문제를 역사상 누구보다도 잘 풀었기에 창업한 회사다. 반면 SI 업계처럼 일반화가 어려운 분야에서는 쉬운 문제 여러 개를 빨리 해내는 사람이 더 매출에 도움이 된다고 평가할 것이다.[6] 관련 근거들: 2015년 2018년[7] 소프트웨어공학에서 '도메인'이란 알고리즘, 자료구조, 운영체제 등 어디서든 사용될 수 있는 기본 공통 지식을 가리킨다. 참고로 업계에서 비즈니스적인 의미로 사용하는 '도메인'이란 (세부 구현이 아닌) 업무 프로세스나 운영 등 보다 큰 틀의 지식을 뜻한다.[8] 코딩 테스트를 거쳐 컴퓨터공학도와 경쟁해서 입사한 뒤 전공 지식을 활용하는 경우도 있을 수 있으나, 전공별로 지원자격을 제한할 경우 서류 통과가 어렵다.[9] 이것이 금융의 정의 이기도 하다.[10] 근거 : base salary 112K, 구글 주식 25k~55K (per year), 싸이닝 보너스 10-60K[11] 이런 산업구조를 타파하기 위해 '공공SW사업 대기업참여제한'이라는 제도를 만들었으나 중소기업의 출혈경쟁으로 오히려 대기업이 수주했을때보다 계약금액이나 조건이 더 안 좋아지면서 악순환이 이어지고 있다.[12] 출제문제는 비공개인 곳이 대부분이나 익명제보로 인하여 유출되는 듯하다.[13] 이런 케이스들의 취업 현실은... 적절하게 컴공화한 인물 이름과 밈은 덤...