시나몬 브레드
개발과 관련된 이야기를 하는 곳입니다. 쉽게 찾을 수 있는 소개 형식의 글 보다는 실무를 통해 얻어진 깊이있는 정보와 전체 흐름을 이해할 수 있는 지식을 다루려고 노력중입니다.
개발자 이직 취직 가이드, 면접 후기1

약 6개월간 긴 준비 끝에 나름 괜찮다고 평가받는 IT 업체로 이직을 하게 되었다. 이 과정에서 이름만 들으면 알 수 있는 IT 업체 5곳에 이력서를 넣고, 4곳에 면접까지 진행했으며 마지막으로 면접을 본 업체에 최종 입사까지 하게 되었다. 필자는 이전까지 주로 작은 개발업체에서 일했었기 때문에 이번 입사지원과정에 생소한 것들이 많았다. 이렇게 진행하면서 얻은 나름대로의 노하우를 공개해보고자 한다. 이 글을 읽는 소프트웨어 개발자들에게 많은 도움이 되기를 바란다.

참고로 이 글은 필자의 개인적인 견해와 경험이므로 글을 읽는 분들의 상황과 100% 일치하지 않을 수 있다. 필자는 경력 약 13년 차 정도의 자바언어를 주력으로 하는 서버 개발자로 신입사원이나 저 경력차 개발자의 상황과는 다를 수 있다.

먼저 업체들의 일반적인 구인 과정을 소개하고, 다음으로 각 단계에서 준비할 것들을 짚어보려고 한다.



일반적인 개발자 구인 과정

필자가 신입사원 시절에는 IT기업으로 이름이 알려진 업체는 naver, daum 정도 말고는 거의 없다시피 했다. 그에 비하면 요즘은 대기업이라고 부를 만한 IT업체들이 적지 않다. 그리고 아직은 스타트업 단계지만 개발자 친화적인 문화를 가지고 있고, 투자금도 넉넉한(?) 기업들이 많아서 개발자들이 일하기 괜찮은 업체로 가기 위한 선택권이 어느 때보다도 넓어졌다고 생각한다. 하지만 괜찮은 업체들은 그만큼 실력 있는 개발자들을 채용하려고 하기 때문에 적당히 해서는 합격이 쉽지 않다.


보통의 일반 중소기업이라면 사실 서류전형 후 바로 실무자 면접에서 합격 여부가 갈리는 식으로 평범하지만 규모가 큰 기업, 그리고 개발자의 가치를 중요하게 생각하는 기업이라면 이보다는 좀 더 여러 단계를 거쳐 선발하게 된다. 또한 채용진행과정이 상당히 길다. 최종 합격통보를 받기까지는 보통 2달은 예상하는것이 좋겠다.

 실제로 경험해본 결과 회사별로 구인 과정이 똑같지는 않았지만일반적으로 아래와 같은 절차로 진행된다.

    • 서류전형
    • 코딩 테스트
    • 전화 면접
    • 1차 면접
    • 2차 면접


위의 각 과정에 대해서 간략하게 소개한다.


서류전형

큰 업체는 보통 자체 구축된 채용 시스템을 통해 입사지원을 하게 된다. 각사가 서로 다른 포맷과 입력항목을 가지고 있으므로 지원하려는 회사의 채용시스템에 지원을 해서 입력방식을 미리 확인하면 좋다. 특히 자기소개서 같은 경우는 업체별로 원하는 내용 원하는 글의 분량등 많이 틀려서 미리 확인해두고 따로 천천히 작성하면 좋을것 같다. 어쨋든 지원하려는 업체마다 비슷한 내용을 반복적으로 입력해야 하는 번거로움이 있을 수 있다.

개인 활동을 어떻게 하고 있는지 물어보는 경우도 있다. Github에 개인 프로젝트를 진행하고 있느냐, 오픈소스에 컨트리뷰트를 해 본 경험이 있느냐, 개발 지식공유 블로그 같은 것을 운영하고 있느냐 이런 활동들이 도움이 될 것으로 생각한다.

코딩 테스트

온라인, 혹은 오프라인으로 주어지는 문제를 코드로 작성해서 제출한다. 문제 수준은 기본적인 프로그램적 사고를 할 수 있는지 물어보는 문제가 대부 분지만 지원하는 포지션에 따라 특정 알고리즘을 구현하거나 응용하는 수준의 문제도 제출된다. 약간 복잡한 SQL문을 작성하는 문제도 있었다. 온라인 코딩 테스트는 보통 약 3시간 동안에 3~4 문제를 풀어야 한다. 오프라인 테스트는 좀 더 복잡한 프로그램을 24시간 안에 제출해야 하는 형태도 있다.

전화면접

미리 지정한 시간에 전화를 걸어오면 약 30~40분간 면접관의 질문에 답을 해야 한다. 질문내용은 일반적으로 알아야 할 개발 관련 용어에 대한 설명이나 간단한 알고리즘을 말로 풀어보라는 식이다. 자바 서버 개발자라면 http, spring 관련 지식, JPA 관련 지식에 대해서 물어볼 확률이 높다.

용어 설명이라는 것이 머리로는 이해해도 말로 다른 누군가에게 설명하기는 생각보다 쉽지 않다. 알고 있는 내용을 말로 풀어서 설명을 해보는 연습이 필요하다.


1차 면접

이직 과정의 핵심은 역시 1차 면접이라 할 수 있다. 전화 면접과 마찬가지로 개발 용어에 대해서 물어보거나, 간단한 개발 문제를 직접 풀어보라는 등의 질문을 한다. 이 과정에서 화이트보드나 종이에 손 코딩을 하게 될 수 있다. 그리고 지금까지 진행했던 가장 큰 프로젝트에 대해서 자세하게 설명하고 그 내용에 대해서 아주 깊이 있는 설계 방법이나 애로사항 등에 대한 질문들을 받게 될 수 있다. 또 대형 시스템에 대해서 얼마나 이해하고 있는지도 물어본다. 실제로 어떻게 설계를 할지 그림을 그려야 할 수 있다. 그 외 경력이 좀 된다면 부하직원을 어떻게 리딩 할지 등 직급에 맞는 역할에 대해서도 물어볼 수 있다. 여러 명이 동시에 들어와서 면접을 보는 경우도 있고 1대 1 면접을 여러 명과 진행하는 경우도 있었다. 면접관이 면접 진행 과정을 글로 적고, 그림을 그렸다면 사진도 찍어간다. 이 자료를 바탕으로 내부 평가를 통해서 결정하게 된다고 한다.


2차 면접

보통 작은 업체들은 사실상 1차 면접이 끝이지만, 큰 기업들은 2차 면접도 중요하다. 인성 면접이 2차에 이루어지게 된다. 필자는 이번에 2차 면접은 합격한 마지막 업체밖에 경험이 없기 때문에 정보가 제한적이긴 해서 간단한 경험담만 전달한다. 인성 면접이라고 해서 입사지원 이유나 성격의 장단점, 등과 같은 내용을 준비를 해갔으나 1차 면접과 별 차이가 없는 기술면접의 연장이었다. 다만 차이점은 좀 더 포괄적인 질문들로써 개발 과정에서 어려운 문제를 어떻게 해결했는지, 개발자로서 어떻게 성장해나가길 바라는지와 같은 질문들을 받았다.


지금까지 각 단계에 대해서 간단하게 한번 짚어 보았다. 이제는 좋은 자리로의 이직을 위해서 장기적인 관점에서의 준비와 단기적인 관점에서의 준비로 나누어서 한번 생각해보기로 한다.




장기적 준비

필자가 생각하는 장기적인 준비라는 것은 결국 실력 있는 개발자로 성장해 나가는 것이다. 내가 실제로 좋은 개발자라면 특별히 더 노력하지 않아도 입사전형 과정에서 저절로 티가 날것이다. 혹시라도 어떤 족집게 과외를 받고 본인의 실력에 넘치는 포지션에 이직하는 것은 본인에게도 해당 업체에게도 손해만 될 것이다. 

새로운 기술에 대해서 항상 관심을 가지고 공부하여 실 프로젝트에 적용해보려는 자세를 가지는 것이 좋다고 생각한다. 기존에 문제가 무엇이었고, 그 해결하기 위해 어떤 아이디어를 적용했는지를 이해하려고 해보면 새로운 기술을 더 쉽게 배울 수 있다. 그리고 회사일을 통해서는 실제 적용해보기 어려운 특정 기술이나 관심 분야에 대해서 개인 프로젝트를 진행해보는 것이 도움이 될 수 있다. 다만 개인 프로젝트라는 것은 저녁시간, 주말 시간 같이 놀거나 쉬어야 할 시간에 진행해야 한다는 것이 어려운 점이다.


다음글 개발자 이직 취직 가이드, 면접 후기2 에서 필자가 이직을 마음먹고 어떤 준비를 했는지 소개 한다.

  Comments,   0  Trackbacks
댓글 쓰기