회사에 퇴직 인사를 다니면서 직원들로부터 들은 말을 종합하면 크게 세가지였다: 대성해라, 부럽다, 나도 방법을 알려달라. 첫번째는 나와 철학이 좀 다르고 당장 글로 답할 성질의 것이 아니므로 어제 도넛가게에서 찍은 다음 사진속 프루스트의 말을 인용해 짧게 답하려 한다.
이 글은 세번째 커멘트인 방법에 관한 이야기로, 테크 업계에 관심 갖고 있는 이들을 위한 이직시장 분석이다. 필자는 금융공기업에서 비전산 출신으로 입사해 컴퓨터과학을 따로 공부해 디지털 전환 관련 부서에 창립멤버로 합류하여 일하다가 그 경험을 인정받아 네카라 중 한 곳의 경력자 채용(정규직)에 합격했음을 참고로 말씀드린다.
업종
통상 네카라쿠배(당토직야) 라고 불리는 빅테크/IT서비스회사는 B2C 즉 일반 소비자 대상 서비스업을 영위한다. 포털, 메신저를 중심으로 각종 중개업을 통해 수수료를 수취한다. 통상 기술적 수준이 높고 처우가 좋다고 여겨지는 곳이 이런 회사들이다.
이 회사들과 달리 B2B, 즉 다른 회사의 시스템구축 등 용역을 제공하고 대가를 받는 회사를 SI (system integration) 업체라고 한다. 해당 회사의 예로는 대기업 계열사인 삼성 SDS, LG CNS 등이 있고 중견, 중소기업도 다수 존재한다. 다양한 산업에 속한 회사에는 SI 업체를 고용하여 프로젝트를 관리하는 직무(PM)가 있으며 그 업무 목표는 각 회사의 업무를 지원하기 위한 전산시스템 개발 및 시스템 운영 등이다. 위 목적을 위해 기업 내부에 고용된 개발자도 있으나, 시스템 규모가 커짐에 따라 직접 개발 방식이 SI 업체를 통한 아웃소싱으로 전환되었고, 그에 따라 전산직의 성격이 현재는 PM 직무나 간단한 유지보수와 운영을 겸하는 업무가 주를 이룬다.
그리고, 테크기업들은 자기 회사, 자기 업종이나 직군이 아닌 회사 출신에 대한 일종의 합리적 편견이 있다고 알려져 있다. 이는 구직자가 소프트웨어를 잘 활용하는 것을 넘어 얼마나 자신의 직무에 해당하는 양질의 프로그램을 만들 수 있는지를 보기 떄문이며, 그러려면 최대한 자기 회사의 자기 직무와 유사성이 높기를 기대하기 때문이라고 한다. 그리고 B2C 업체는 SI 업체, 그리고 금융 전산에 대해 가지는 편견이 크다고 한다. 은행 재직 개발자에게는 미안한 말이지만, 소위 금융전산은 전산의 무덤이라는 말이 있다. 그렇기에 만일 이곳에 재직중인 전산직군이나, 비전산직군이 있다면, 최신 기술스택을 이용하는 부서를 만들거나 그쪽으로 이동하고 따로 상당한 노력을 기울여서 역량을 보여주어야 그 문턱을 넘을 수 있다.
https://m.segye.com/view/20210809512975
IT인재들 “은행은 개발자 무덤”… 온갖 러브콜에도 외면
금융권은 ‘IT(정보기술) 개발자들의 무덤’으로 불린다. 전통 금융권은 그만큼 개발자들이 가장 후순위로 고려하는 직장인 셈이다. 9일 금융권에 따르면 금융사들은 디지털 전환에 사활을 걸고
www.segye.com
필자도 최소 30% 이상, 성과급 별도로 연봉의 상승을 약속한 모 카드사의 디지털 전환 부서에 헤드헌터를 통해 지원 제의를 받았고 최종 합격했으나, 결국 같은 금융권으로 이동하면 커리어를 바꿀 수 없을 것이라는 판단에 지원을 철회했고, B2C 업체(네카라)에 지원하여 그중 한 곳에 합격했다.
언어
가장 많은 질문을 받는 것 중 하나가, 무슨 언어가 메인이냐? 는 것이다. 사실 언어는 비슷비슷해서 c/c++을 배우면 자바나 파이썬으로 쉽게 이동할 수 있다. 포트란과 매트랩은 과학기술의 연산을 위해 널리 이용되어 왔고, R은 데이터마이닝 등 통계 분야에서 활용되어 왔으며, 최근에는 Julia도 저변을 넓히고 있다고 한다.
그러나 어떤 언어만을 고집할 수는 없고, 속한 팀에 따라 자유자재로 언어를 배워서 일할 수 밖에 없다. 마켓메이킹을 하는 미국의 모 회사는 OCaml을, 라인의 일부 팀은 구글이 개발한 Go를 쓴다고 한다. 어떤 프로그래머는 언어를 일년에도 한 개 씩 배운다고 한다. 어떤 언어를 많이 해봤느냐 보다는 한 언어라도 능숙하게 구사해 본 경험이 있다면 좋을 것이다. 언어가 다른 듯 해도, 그 언어의 저변에 깔린 철학과 구성 원리를 이해한다면 비주얼베이직 혹은 VBA를 보더라도 각 셀이 객체가 되고 메소드를 실행하는 객체지향 언어라고 쉽게 이해하게 될 것이다.
언어 외
언어는 껍데기이고 그 뼈대가 되는 것이 알고리즘과 자료구조이다. 이를 잘 구상하고 구현할 수 있는 능력을 입사시험에서 대부분 테스트한다. 다만, 언어마다 구현하고자 하는 자료구조와 알고리즘을 더 쉽게 구현할 수 있도록 함수 등이 준비가 된 정도가 달라서 문제에 따라서 이를 적절히 선택하는 것이 필요하다. 예를 들어 큰 수를 다룰 때는 변수의 사이즈를 지정하지 않아도 되는 파이썬이 유리하다. 문자열을 다룰 때도 손쉽다. c++에서는 STL 에 속하는 자료구조들이 파이썬에서는 기본 자료구조로 쉽고 짧은 구문으로 구현이 가능하다. 하지만 c++에서 가능한 operator overloading이나 function의 argument와 type을 통한 overloading은 Python에서는 지원이 되지 않는다.
그 다음은, 도메인 지식이다. 결국 개발자는 자신이 일할 도메인을 선택하게 되는데, 전통의 front-end (web), back-end (web 이외) 외에 요새는 data 관련 직무를 묶어서 부르기도 하며, 다시 data는 data engineering (각종 데이터 인프라 구성 및 운영), data scientist (SQL 등으로 데이터 추출, 정제, EDA, 피쳐 엔지니어링, 주로 기존 library를 이용해 모델 적합 및 해석), data analyst (데이터 추출~분석과 보고, Tableau 등으로 시각화), machine learning engineer (최신 논문을 읽고 이를 코드로 직접 구현, 실험하여 library를 만들거나 연구 논문을 저술) 등 업무 성격을 나눠볼 수 있으며, 업무 도메인도 일반 ML 연구, NLP, 추천 등으로 다양하다.
전반적으로 회사가 클수록 분업이 잘 되어 있어 그 직무의 구분이 더 세세하게 되며, 기술스택도 매우 구체적이고 세분화되어 있어 유사한 업무경험이 없다면 바로 이를 지원해서 가기는 어려울 것이다. 그러므로 업계 유수의 회사들의 목표 직무의 job description을 보고 자신의 기술스택을 점검해 보고 관련 업무 경험을 쌓는 것이 필요하다.
입사추천 또는 스펙
재직자의 입사추천은 통상 서류전형에 영향을 준다고 한다. 그러나 평소에 업무를 통해 충실한 포트폴리오를 만들고 서류를 잘 작성했다면 서류전형 통과가 어렵지는 않을 것이다. 어떤 회사의 경우는 강한 추천을 할 경우 코딩테스트까지 면제를 해줄 수 있다고 하지만, 결국 수 차례의 과제 혹은 기술면접(화이트보드 코딩 혹은 IDE 코딩)을 통과해야 한다. 심지어는 외국계 회사의 HR로부터 직접 지원해보라는 연락을 받을 수 있는데, 그렇더라도 결국 채용 하고자 하는 팀과 면접을 보아 합격을 하고 연봉협상 결과가 좋아야 이직을 할 수 있다. 헤드헌터는 합격 후 첫 연도 계약연봉의 몇십%를 지원자 추천에 대한 대가로 받는 것이 상례이다. 그렇기에 합격을 시키려고 많은 노력을 한다. 하지만 헤드헌터가 보기에 합격에 적합한 지원자라 하더라도 회사 HR이 서류에서 불합격시키는 경우가 적지 않다. 구글을 필두로 한 테크기업의 채용은 매우 신중한 것으로 알려져있다. 왜냐면 한 명의 기준 미달 입사자가 조직의 생산성을 ‘저해할’ 우려가 있기 때문이다. 따라서 여러 차례의 단계를 거쳐 다양한 ‘no’ 단서가 없는지 찾아낸다.
그러므로, 지인이 없다고 실망할 필요는 없다는 것이 결론이다. 우선, 아직 이직이 목전에 다다르지 않았다면 평소에 네트워킹을 통해 지인을 넓혀가며 신뢰를 쌓고 그 직무에 대해 알아가면서 무엇을 어떻게 준비하면 될지를 알면 좋다. 하지만 그렇지 않다고 해도 평소에 일을 하고 싶은 분야에 대해 해왔다면 관련 공고가 뜰 때 바로 입사지원을 하면 된다. 결국 코딩테스트, 과제, 면접을 붙으면 되는 것이다. 수익성을 목표로 하는 테크기업이 누군가를 친분관계로 인해 붙여줄 것인가를 반문해 본다면 그렇지 않을 것 같다는 결론에 다다르게 될 것이다. 반면에 컨설팅, 로펌과 같은 이른바 elite professional service firm의 경우는 구성원과 문화적 유사성이 있는 경우 채용될 가능성이 높다고 하지만, 그런 경우는 이 글의 초점이 아니다. 또, 큰 딜을 물어올 수 있는 집안의 자제를 그냥 입사시켜줄 수 있다고 하나, 그건 어느 산업이든 마찬가지 아닐까. B2C는 한 개발자가 어떤 ‘딜’을 따올 수 있는 것이 아니라, 기술로 많은 유저의 경험을 제고하고 그 결과 수익이 따라오는 구조라고 할 수 있겠다.
한편, 박사와 같이 학위 등 객관적 스펙이 좋아야 하는지에 대해서는 짐작할 수 있듯이 해당 업무를 수행하기에 필요한 역량을 학위과정을 통해 폭넓고 탄탄하게 쌓을 수 있었다면 해당 학위가 입사에 긍정적으로 작용한 것이겠지만, 학위가 있다고 해서 그 학위만을 보고 관련 역량이 없는데 선발하지는 않을 것이다. 예를 들어, 필자의 동료로부터 듣기로, 필자가 합격한 포지션에 자신의 공학박사 과정 동기가 지원했다가 5번째 중 2번째 단계에서 낙방했다고 한다. 코딩테스트는 통과했으나 실무형 과제 부분에서 떨어진 것이다. 박사학위 과정 동안 많은 코딩을 했겠지만 해당 직무에 맞춘 프로그래밍 경험이 없는 경우 과제나 면접에서 떨어질 수 있다.
동향
2023년 초, 빅테크 회사들이 (우리나라 기준) 고용을 멈추고 있다고 한다. 당분간은 신입 개발자 공채는 없을 것이라고 하며 드물게 경력 채용만 열릴 것이라고 한다. 라인의 경우는 경력자 채용도 당분간은 멈추었다고 한다. 결국 전반적인 경기 둔화속에서 대기업들도 몸을 사리면서 인력 자연감소를 통해 한파를 나는 모습이다. 그러나 이런 상황에서도 준비를 차츰 현재나 아니면 다른 직장에서 해 나간다면 언젠가 자신이 원하던 회사의 좋은 직업을 얻게 되지 않을까 생각한다.
'Soft Talks' 카테고리의 다른 글
환경 (0) | 2023.03.13 |
---|---|
나는 왜 이 회사를 사랑하는가 (0) | 2023.02.10 |
Online Judge Runtime Error (RE/RTE) 원인: I/O (0) | 2022.11.27 |
면접 전에 꼭 할 일 (0) | 2022.11.19 |
카카오 개발자 영입 합격수기 (2) | 2022.10.03 |