개발자 인터뷰는 같이 일할 만한 사람인가를 알아보기 위한 자리입니다. 그래서 기술 면접에는 동료 개발자나 팀 리더가 참석하게 되죠. 이 때 그들이 우리를 판단하는 것처럼 우리도 그 회사가 일하기 적절한 회사인지 질문을 통해 판단할 수 있습니다.
면접관의 질문이 끝났다면, 이제 당신이 미래의 동료가 될 개발자들에게 물어볼 차례입니다. 이번 포스트에서는 개발자 인터뷰 또는 기술 면접에서 면접관에게 할 만한 질문 몇 가지를 정리해봤습니다.
1. 팀(프로젝트)에 몇 명의 개발자가 있는지
먼저 앞으로 일하게 될 팀에 개발자가 몇 명 있는지 물어봅니다. 이 질문은 면접관에게도 그다지 민감한 질문은 아닐텐데요. 만약 프로젝트 단위로 운영되는 팀이라면 본인이 투입될 프로젝트에 개발자가 몇 명인지 물어보면 되겠죠?
신입 개발자라면 될 수 있으면 많은 개발자와 함께 일할 수 있는 회사를 추천합니다. 그리고 멘토링 제도나 사수 제도가 있는지도 물어보세요.
반대로 이미 경험이 많은 능숙한 개발자라면 혼자 일하는 것이 오히려 더 효율적일 수도 있습니다. 본인이 어떤 규모의 팀을 원하는지 미리 생각해보고 면접관에게 질문해보시길 바랍니다.
2. 코드는 어떻게 관리/배포 되고 있는지
말도 안되는 소리로 들릴 수도 있지만, 어떤 회사는 코드를 그냥 파일 시스템에 관리하기도 합니다. 심지어 이메일에 파일을 첨부해서 백업하는 회사도 있죠.
회사가 코드를 관리하기 위해 어떤 version control tool 을 사용하는지 꼭 확인하세요. 대부분 GitHub이나 SVN, Azure DevOps 같은 툴을 사용하거나 회사 자체의 버전 관리 툴을 사용합니다. 이 때 pull request 같은 코드 apprving 프로세스가 있는지도 확인하세요. 더불어 코드 배포 툴이나 배포 프로세스도 체크해보시길 바랍니다.
3. 기술 역량 향상을 위한 교육 및 학습 기회가 있는지
최근들어 많은 회사들이 개발자의 학습이 얼마나 중요한지 알기 시작했습니다. 그래서 개발자에게 기술 서적을 무료 지원하기도 하고, 학습 시간을 따로 제공하기도 하죠.
개발 역량 향상을 위한 교육 및 학습 기회는 개발자 복지 중 중요한 부분이기도 한데요. 어떤 교육을 제공하는지, 어떤 학습 기회를 받을 수 있는지 질문해보세요.
4. 개발 방법론 또는 일반적인 프로젝트 기간
좋은 회사는 잘 정립된 프로젝트 프로세스를 가지고 있습니다. 반대로 어떤 회사에는 따로 정리된 개발 방법론이 없기도 하죠. 따라서 팀에서 어떤 개발 방법론을 통해 프로젝트를 하는지 질문 해보세요.
그리고 일반적인 프로젝트 기간도 확인해보세요. 어떤 프로젝트는 몇 주에 끝나기도 하고 어떤 프로젝트는 몇년을 가기도 하는데요. 개발자 성향에 따라 다양한 프로젝트를 짧게 경험하는 것을 좋아하기도 하고 그렇지 않기도 합니다. 따라서 이 질문을 통해서 회사의 개발 방법론이나 프로젝트 기간이 본인 개발 성향에 잘 맞는지 판단해보시길 바랍니다.
5. 동시에 몇 개 시스템을 관리하는지 (또는 몇 개의 프로젝트에 투입되는지)
이 역시 개발자의 성향에 따라 선호하는 바가 다를 수 있습니다. 동시에 여러 프로젝트나 시스템을 책임진다면 짧은 시간에 다양한 경험을 할 수 있습니다. 하지만 여러 프로젝트에서 발생하는 이슈를 동시에 처리해야하고, 하나의 개발 스택에 대해 심도있는 기술을 익히지 못하기도 합니다.
6. 다른 오피스 또는 사이트로 이동할 가능성
이는 회사의 유형에 따라 조금 다를 수 있습니다. 대체로 SI 회사는 고객사에서 제공하는 공간에서 일하는 경우가 많기 때문에 자주 오피스를 이동하게 됩니다. 반면 웹 서비스 회사나 소프트웨어 솔루션 회사는 오피스 이동이 거의 없죠.
개발자 성향에 따라 다르겠지만, 일반적으로 고객 접점에 따라 오피스를 이동하면서 일하는 것이 어렵습니다. 게다가 고객사에서 제공하는 오피스는 개발 환경이 나쁜 경우가 많습니다.
7. 휴가는 어떻게 관리되는지
이 질문은 얼마나 휴가를 많이 주는지에 대한 질문이 아닙니다. 이 질문은 과연 회사의 비지니스가 본인 없어도 잘 돌아가는지 여부를 파악하기 위함입니다.
어떤 회사는 서비스나 시스템 운영에 대해 빠삭하게 알고 있는 한 사람에 의존하는 경우가 있습니다. 이런 경우 그 사람이 없으면 서비스에 문제가 생긴 경우 제대로 대처하지 못하게 되는데요. 만약 그 사람이 본인이고 하필 휴가 중에 장애가 난다면 정말 상상만해도 끔찍하죠.
따라서 이 질문을 통해 여러 개발자가 서로 크로스 트레이닝이 되는지, 시스템에 대한 지식을 얼마나 공유하는지를 살펴보시길 바랍니다. 우리의 휴가는 소중하니까요.
8. 장애나 긴급 상황에서의 프로세스가 어떻게 되는지
서버가 다운되거나 DB가 고장나거나 앱이 해킹되기도 하죠. 시스템을 운영하다보면 별의 별 상황이 다 생깁니다. 따라서 이런 상황에 대비한 프로세스가 있는지 확인해보아야 합니다.
DB는 어떻게 백업 되는지, 어떤 보안 기술이 적용되고 있는지, 로깅 시스템은 어떻게 되어 있는지 등을 물어보세요. 면접관의 대답에 따라서 얼마나 시스템이 관리되고 있는지 확인할 수 있을 겁니다.
9. 정리하며..
앞서 말했듯이 기술 면접(=개발자 인터뷰)은 소개팅과 비슷합니다. 따라서 서로 궁합이 잘 맞는지 확인하여야 하는데요. 회사가 여러분을 선택하듯이 여러분도 어떤 회사를 선택할지 질문을 통해 미리 가늠해보세요. 그리고 위 질문들 외에 면접관에게 할만한 또다른 질문들이 있다면 댓글을 통해 공유 부탁드립니다. 아무쪼록 좋은 회사에 취직하여 개발자로서 한 걸음 더 성장하시길 바랍니다.
ps. 이번 포스트는 Dev.io에 실린 A Web Dev Interview 라는 포스트 내용을 기반으로 제 개인적인 생각을 추가하여 작성하였습니다.
'Dev Talks > Developer Life' 카테고리의 다른 글
좋은 개발자가 갖춰야 하는 마인드 셋 (요약) - 2편 (0) | 2019.09.20 |
---|---|
좋은 개발자가 갖춰야 하는 마인드 셋 (요약) - 1편 (0) | 2019.09.20 |
머신러닝 공부 순서, 방법 및 강의 정리 (2) | 2019.01.16 |
[나의 퇴사 이야기] #6 새로운 도전: 1인 개발자 1인 기업가 (3) | 2017.01.05 |
[나의 퇴사 이야기] #5 퇴사 : 뜻밖의 기회 그리고 결심 (0) | 2017.01.05 |
댓글