요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

여러분의 기술 면접에 도움을 드리고자 이 글을 작성합니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

내가 개발 인터뷰에서 면접자에게 감동한 이유

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

여러분의 기술 면접에 도움을 드리고자 이 글을 작성합니다.

 

본문은 위시켓과 번역가 윌리(Willy)가 함께 만든 해외 콘텐츠 기반 번역문입니다. 다양한 분야의 기사를 큐레이팅 및 배포하는 일루미네이션(ILLUMINATION)에서 발행한 글로 작가는 제임스 윌리엄스(James Williams)입니다. 그는 코피비(COFEBE)의 설립자로 엔지니어를 위한 도구를 개발하고 있습니다. 본문은 작가가 개발자를 뽑는 인터뷰에서 겪은 일에 대한 내용으로 개발자를 뽑을 때, 어떤 질문이 좋을지, 어떤 점들이 중요한지에 대해 참고해보셔도 좋겠습니다.

 

소프트웨어 개발자 면접은 한 편의 희비극을 보는 것 같습니다.

 

개발자는 인간적인 요소를 간과하다 번번이 면접에서 떨어지고 맙니다. 알고리즘 준비는 열심히 했지만, 개발자로서의 열정이나 이 일을 얼마나 좋아하는지 보여주는 데 실패하는 것이죠. 면접 자리에서 자신을 포장하며 기술력을 내세울 수 있지만 이러한 가면을 통해 지원자의 독창성과 인간적인 진솔함을 본다는 것은 힘든 일입니다.

 

면접이라는 상황이 주는 압박감으로 인해 움츠러들게 되고 불안감에 짓눌려 고양이 앞의 쥐와 같이 얼어붙곤 합니다. 심지어 일상적인 질문이 나오더라도 가사를 잊어버린 오디션 참가자처럼 말을 더듬게 됩니다. 이러한 단순한 무대 공포증을 넘어 가장 기본적인 비즈니스 예절마저 그르치는 경우도 있습니다. 간혹 면접자가 줌(Zoom) 인터뷰에 카메라와 마이크도 켜지 않은 채 참석해 난감할 때가 있습니다. PC를 더듬거리며 카메라와 마이크를 켤 때쯤이면 면접시간은 이미 10분이 흘러가 있으며 저를 맞이하는 것은 당당한 인상이 아닌 머쓱하고 초라한 모습의 면접자입니다.

 

지난 2주 동안, 저는 고통스럽고 어색한 인터뷰 경험에 시달렸습니다. 차라리 인터넷이 끊어졌으면 좋겠다고 속으로 되뇌며 몇 분마다 시계를 쳐다봤습니다. 어떤 개발자는 자신의 이력서에 대해 아는 바가 없었고, 어떤 개발자는 자신을 소개하지 못했습니다. 면접 자리가 긴장된다는 것은 이해하지만 한 면접자는 심지어 저를 호칭할 때 자신의 이름으로 부르기까지 했습니다.

 

헤드헌터나 임직원의 추천, 또는 링크드인(LinkedIn)을 샅샅이 뒤져 찾아낸 개발자라 할지라도 면접은 지루하고 실망스럽기 마련입니다. 요즘엔 딱히 기대되는 면접자가 없으며 인터뷰 자리는 마치 구내식당의 점심 메뉴와 같이 따분할 뿐입니다.

 

하지만 이번 주, 저의 슈퍼히어로들이 나타났습니다. 흡사 어벤저스와 같은 이 개발자들은 저에게 신선한 영감을 선사해 주었습니다. 그중 한 개발자와의 인터뷰는 특히 더 즐거웠고 저에게 전에 없던 활력을 불어넣었습니다.

 

사실 큰 기대를 가지고 시작한 면접은 아니었습니다. 반복된 실망감으로 기대치는 바닥을 찍었지만, 마음 한구석에는 기적이 일어나기를 바라고 있었던 것 같습니다. 누군가 이 기도를 들어주기를 바라면서 말이죠. 인터뷰 한 시간 전, 후보자의 이력서를 검토했습니다. 인상적인 이력서였지만 면접에 들어서면 언제나처럼 열정 없는 기계적인 대답이 흘러나올 것으로 생각하고 있었습니다.

 

커피 한 잔을 내려받고 책상에 앉아 줌의 "회의 참가" 버튼을 눌렀습니다. 첫 번째 질문을 하기도 전에 저는 면접자에게서 신선한 충격을 받았습니다. 면접자는 먼저 인터뷰 기회와 저의 시간을 내어준 것에 대한 감사의 표현을 건넸습니다. 요즘 찾아보기 힘든 겸손함이 느껴졌습니다. 또한, 그는 긍정적인 제스처와 함께 카메라를 똑바로 응시하며 환한 미소를 보여줬습니다!

 

이는 마치 5살 어린이가 엄마 손을 붙잡고 디즈니랜드에 입장하는 듯한 표정이었습니다. 저는 그가 기술에 대해 이야기하고 자신만의 시각을 공유할 준비가 되어 있음을 단번에 알아차릴 수 있었습니다.

 

저는 먼저 기본적인 자기소개와 업무 경험에 대해 이야기해달라고 요청했습니다. 그의 이야기가 시작되자 감탄할 수밖에 없었습니다. 그의 개인적인 이야기에는 시작과 중간 그리고 끝이 있었습니다. 저는 그가 삶을 즐기는 사람이며, 우리가 속한 첨단 산업과 커뮤니티의 일원으로서 그가 느끼고 있는 행복감을 저도 느낄 수 있었습니다. 시작한 지 3분 만에 그는 자신이 가진 기술을 돋보이게 만들었고 저에게 깊은 인상을 주었습니다. 그러고 나서는 저에게 원하는 답변이 됐는지 물었습니다. 이제 오히려 제가 마치 놀이공원에 놀러 온 어린아이가 된 것 같았습니다.

 

랜선 너머로 인간적이고 유쾌한 감정이 전해졌습니다. 사실 이 시점부터 이미 내가 찾던 사람이라는 확신이 들었습니다. 하지만 이게 전부가 아니었습니다. 그는 질문 하나하나에 간결한 답변을 이어나가며 저를 감동시켰습니다. 지금은 우리 회사의 새 식구가 된 그가, 당시 제가 건넨 질문에 어떻게 대답했는지 보시죠.

 

 

사용하는 개발 환경과 도구에 대해 소개해주세요.

저는 면접 중 이 질문에 대한 답변만큼은 꼭 기록해둡니다. 얼핏 보면 간단해 보이는 이 질문은 사실 몇 년 전 다른 직원이 알려준 비밀 무기로, 면접자가 소프트웨어를 대하는 자세와 어떤 통찰력을 가졌는지 알려줍니다. 개발자는 자신이 사용하는 개발 환경을 설명할 때 자신이 가진 열정과 호불호를 드러냅니다. 개발자의 마음속을 비추는 창과 같죠.

이러한 질문을 던짐으로써 상대방의 마음을 속속들이 읽어낼 수 있습니다. 마치 정물화를 바라보듯, 작업 환경을 알게 되면 그 개발자가 어떠한 방식으로 일하는지 면밀히 관찰할 수 있습니다.

 

이러한 질문에 면접자는 피카소의 붓터치처럼 한 번에 하나씩 답변을 주었습니다. 그가 보여준 자화상에는 키보드와 책상, 그리고 OS 부팅 화면에 어떤 아스키 아트(ASCII Art)[1]를 설정해 놓았는지가 상세히 담겨있었습니다. "엔지니어"라는 명칭에 대해 스스로 자부심을 가지고 있었으며 자기 주도적인 성격을 지녔다는 인상을 받았습니다.

 

또한, 그가 유닉스(Unix) 철학[2]과 기술적인 것들에 푹 빠져 있다는 것을 알 수 있었습니다. 명령줄(Command-line)[3] 색상부터 사용 중인 코드 에디터와 소스 코드에 이르기까지, 모든 곳에서 자부심이 묻어 나왔습니다. 그는 기술이라는 붓을 손에 쥔, 말 그대로 아티스트였습니다. 저의 머릿속에서는 그가 우리 팀원들과 일하는 모습이 그려지기 시작했습니다. 모든 면접자가 바라는 순간이 온 것이죠. 상상해 보세요. 면접관이 당신과 함께 커피를 마시며 담소를 나누는 그림을 그리고 있다면? 만약 여기까지 왔다면, 면접관은 여러분을 실격시키기 위해 당황스러운 질문을 던지는 대신 당신이 왜 적임자인지 설명하기 위한 질문을 찾을 것입니다.

 

 

취미가 무엇인가요?

없는데요?!

대략 5번 중 2번은 이 재미없는 답이 돌아왔습니다. 이럴 때마다 “네, 수고하셨습니다. 다시 연락드릴게요.”라고 말하며 면접을 마무리할까 라고 생각했습니다. 속으로는 앞에 있던 노트북을 집어던지고 모든 SNS를 끊어버리고 싶은 심정이었죠.

 

면접에서 이 질문을 하는 이유는 본인의 열정 그 자체가 취미인 개발자를 찾기 위함입니다. 제가 원하는 것은 어설프더라도 한 걸음씩 내딛는 모습입니다. 제 경험상 최고의 개발자는 여가 시간의 많은 부분을 자기 계발에 투자하는 사람들입니다. 전문적인 개발자는 새로운 것을 배우는 데서 기쁨을 찾습니다. 어떻게든 되겠지라는 생각으로 그저 키보드를 두드리는 것은 마치 농구 코트 가운데서 던진 슛이 들어가기를 바라는 것과 같습니다. 저는 큰 고민 없이 코드를 작성하고 일단 동작만 하면 모든 것이 끝이라는 태도로 일하는 개발자들을 많이 봤습니다. 모든 힘든 일의 끝에는 보상이 따르고, 운이 좋으면 누군가가 여러분이 만든 소프트웨어를 사용하겠죠.

 

제가 인터뷰한 후보는 그가 사랑에 빠진 취미인 햄(HAM) 라디오[4]에 대해 언급하며 여가 시간에 무선 통신을 통해 다른 엔지니어들과 대화하며 기술의 미래에 대해 논의한다고 설명했습니다. 햄 라디오 말고도 다른 취미가 있냐고 물었더니 그는 화면을 공유하며 자신이 만든 자바스크립트(JavaScript) 프레임워크를 보여주었습니다.

 

믿기 힘든 광경이었습니다. 스스로 자신이 가진 기술에 대한 열정을 보여주는 면접자를 만나게 되면 일단 좋은 후보를 찾았구나라고 생각하게 됩니다. 그들의 눈에서 열정을 보고 자연스럽게 면접자들의 눈높이에 맞추려 노력하게 됩니다. 면접자에게 이러한 질문은 진부한 기술적인 주제를 넘어서 자신의 이야기를 들려줄 수 있는 좋은 기회입니다. 본인이 어떻게 회사에 기여할 수 있는지를 어필하고 면접관이 무릎을 탁 치게 만드는 그 무언가를 보여줄 시간입니다. 여러분이 가진 것을 보여줄 수 있다면 면접관은 절로 고개를 끄덕일 것입니다.

 

 

새로운 기술을 어떻게 습득하고 있나요?

A급 인재는 배움의 자세를 지니고 있습니다. 최고의 개발자에게 학습이란 공기와도 같으며 기술은 끊임없이 갈고닦아야 할 대상입니다. 기술이란 바다 위에서 끊임없이 노 저어 나가는 개척자와 같다고 할 수 있죠. 단순히 독서에 대한 욕구가 왕성할 뿐만 아니라 이를 내 것으로 만들고 적용하기 위한 자신만의 방법론을 가지고 있습니다.

 

회사에 합류한 그는 자바스크립트를 더 잘 이해하기 위해 프레임워크를 만들었습니다. 리엑트(React)[5]에 대한 이해가 부족하다고 느낀 그는, 지체 없이 달려들어 코드를 보며 스스로 공부하기 시작했습니다. 그리고 결국은 모든 엔지니어가 도달하는 깨달음의 순간에 다다랐습니다. 여러분이 바로 배움의 주체입니다. 면접관의 눈도장을 찍을 수 있는 방법 중 하나는 본인이 자기 주도형 학습자임을 설득시키는 것입니다. 지원하는 업무에 대해 매우 관심이 있음을 어필해야 합니다. 왜냐하면, 이미 동기부여가 되어있는 지원자를 만나는 것은 매우 황홀한 경험이기 때문입니다.

 

좋은 채용 담당자는 기술에 대한 열정을 보이는 엔지니어를 최우선 후보로 낙점할 것입니다. 하지만 만약 면접자에게서 열정을 본다면 이를 동료들에게까지 말하고 다닐 것입니다. 그 누구도 기술력은 뛰어나지만 동기부여가 결여된 직원을 뽑고서 그들에게 영감을 불어넣어 주지 않습니다. 채용 담당자에게 솔직하게 물어본다면 부정적인 사고를 가진 능력자보다는 기술력이 다소 떨어지더라도 열정적인 후보의 손을 들어줄 것이라는 대답을 들을 것입니다.

 

만약 여러분이 배움의 자세를 갖춘 탐험가라면, 인간적인 진솔함을 통해 여러분의 열정을 보여주시길 바랍니다. 프로그래밍 코드 뒤에 숨겨진 여러분의 이야기를 들려주세요. 스스로에게 물어보세요. 당신이 면접관이라면 누구를 뽑고 싶어 할까요?

 

 

최근에 참여했던 프로젝트의 아키텍처를 그려주세요.

사람들이 이력서에 쓰는 말들이 모두 거짓말은 아니지만, 화려한 미사여구에 넘어가 여러분의 소중한 시간과 비용을 낭비하게 될 수 있습니다. 저는 단순히 퍼블릭(public) 변수[6]와 프라이빗(private) 변수[7]의 차이를 묻기보다는, 면접자가 가진 이해도의 깊이를 가늠할 수 있는 질문을 선호합니다. 제가 궁금한 것은 면접자가 실제로 프로젝트에 얼마나 몸을 담갔는지입니다. 그저 지라(Jira)[8] 티켓을 하루 종일 붙들고 있었는지, 아니면 개발자로서 프로젝트에 정말로 기여했는지 알기 위해서입니다.

 

최고의 엔지니어는 고객 요구사항과 지라 티켓 그 이상의 것을 보여줄 것입니다. 만약 면접자가 "저는 그저 시키는 대로 했는데요"와 같은 답을 한다면, 저는 바로 면접을 정중하게 마무리할 방법을 찾기 시작합니다. 지금까지 얘기했던 면접자의 경우, 질문에 대한 답으로 클래스 계층도(Class Hierarchy)[9]를 그려서 저에게 보여주었습니다. 그는 개선의 여지가 있는 곳을 짚어냈으며, 더욱 놀라운 것은 자신이 잘 이해하지 못한 부분을 스스로 언급했다는 것입니다. 그 자리에서 우리는 프로그래밍 이론과 현실의 괴리에 관한 이야기를 나누었습니다. 함께 대화를 나누며 저는 그가 더 큰 팀의 일원으로서 협력하고 일하는 모습을 떠올렸습니다.

 

만약 면접을 앞둔 엔지니어에게 해 줄 수 있는 조언이 하나 있다면, 한 사람으로서 진솔하게 다가가라는 것입니다.  면접이 합격과 탈락을 결정하는 시험이라기보다 사람 대 사람으로 마음을 열고 대화를 나눌 수 있는 자리가 되기를 누구나 원하지 않을까요? 대부분의 채용 담당자는 당신이 그 적임자이기를 바라고 있습니다. 면접관이 찾던 사람이 바로 여러분이라면, A급 인재를 얻게 될 뿐만 아니라 새 후보 찾기를 멈추고 일상 업무로 돌아갈 수 있게 됩니다.

 

간단한 대화가 큰 차이를 만들 수 있습니다. 특히 자신이 가진 것을 잘 알고 있다면 말이죠. 본인의 경험에 비추어 질문에 답해 보세요. 여러분이 마지막으로 작업했던 API 통합 경험에 대해 이야기하고, 그것과 지원하는 업무에 사이의 접점을 찾아 설명하는 것입니다. 면접관으로 하여금 여러분이 아이디어가 도움이 된다고 믿게 만들 수 있다면 더할 나위 없습니다.

 

한 가지 간단한 비결은 인터뷰에서 면접관이 가진 문제를 해결해주는 것입니다. 그들의 진정한 관심사는 당신에게 건네는 코딩 관련 질문이 아니라 그들이 사람을 구하는 그 이유 자체에 있습니다. 당신의 경험을 그들과 연관 지을 방법을 찾기 위해 충분한 질문을 하십시오. 질문에 대한 답은 여러분이 아닌 면접관이 가지고 있습니다. 만약 여러분이 면접관을 충분히 설득했다면, 화이트보드에 써 내려가는 슈도코드(Pseudocode)[10]에 있는 사소한 오류 정도는 눈감아 줄 것입니다.

 

[1] 텍스트와 특수문자를 조합해서 사진과 그림을 표현한 것.

[2] 최소화되고 모듈화된 소프트웨어 개발 방식을 위한 문화적 규범이자 철학적 접근 방식.

[3] 명령줄 또는 명령어 인터페이스는 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 말한다.

[4] 취미 활동으로 즐기는 아마추어 무선 통신.

[5] 사용자 인터페이스 개발을 위해 페이스북에서 만들고 공개한 오픈소스 자바스크립트 라이브러리.

[6] 변수를 정의한 클래스 외부에서도 접근할 수 있는 변수.

[7] 외부에 노출되지 않고 정의한 클래스 내부에서만 접근할 수 있는 변수.

[8] 아틀라시안(Atlassian)이 개발한 이슈추적 소프트 웨어로 버그 추적, 이슈 추적, 프로젝트 관리 기능 등을 제공한다.

[9] 객체 지향 프로그래밍의 핵심인 클래스와 그 서브클래스 간의 계층 구조를 도식으로 나타낸 것.

[10] 프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어이다. 특정 프로그래밍 언어의 문법이 아닌 알고리즘 그 자체이 집중할 수 있기 때문에 코딩 면접에서 많이 사용된다.

 

> 이 글은 'The Responses I Got From a Software Developer Candidate That Made Me Hire Him'을 각색하여 작성되었습니다.

좋아요

댓글

공유

공유

댓글 0
작가
386
명 알림 받는 중

작가 홈

작가
386
명 알림 받는 중
요즘 해외 개발자들은 어떻게 일할까요? 기획자나 디자이너는요? 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. We are the world.
같은 분야를 다룬 콘텐츠
인기 있는 콘텐츠

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩할 수 있어요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받을 수 있어요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기