5시간의 면접 - 직무에 관한 질문은 단 하나도 없었다
요약
시니어 엔지니어 면접에서 기술적 역량 대신 단순 알고리즘 문제가 출제되는 현 채용 프로세스의 문제점을 비판합니다. ATS와 AI가 생성한 이력서가 지배하는 채용 시장이 실제 인재를 평가하지 못하고 있음을 지적합니다.
핵심 포인트
- 실무 역량보다 단순 알고리즘 문제에 치중된 면접 프로세스 비판
- ATS(지원자 추적 시스템)가 키워드 중심의 문서 평가로 변질됨
- AI 생성 이력서와 유령 프로필이 채용 시장의 불균형을 초래
- 기술적 전문성보다 형식적 최적화가 우선시되는 업계 현황
이번 봄, 나는 진심으로 존경하는 제품을 만드는 회사와 면접을 보았다. 그 제품은 DNS 데이터를 기반으로 구축된 인터넷 인텔리전스 (Internet-intelligence) 플랫폼으로, 현대의 웹을 탐색 가능하게 유지해 주는 조용한 인프라와 같은 존재였다. 맡게 될 역할은 시니어 분산 시스템 엔지니어 (Senior Distributed Systems Engineer)였다. 미션은 핵심 제품을 C에서 Rust와 Go로 다시 작성하는 것을 돕는 것이었다.
나는 정확히 이러한 마이그레이션 (Migration)을 경험한 적이 있다. 나는 Dyn의 C 및 Python 코드베이스 — 동일한 종류의 인터넷 인텔리전스 제품 — 가 인수 후 Oracle 내부에서 Go로 다시 작성될 때 릴리스 프로세스 (Release process)를 감독했던 시니어 릴리스 매니저 (Senior Release Manager)였다. 당시 그 조직은 수백 명의 엔지니어 규모에서 현재 전 세계가 알고 있는 OCI로 확장되고 있었다. 나는 풀 리퀘스트 (Pull requests)를 검토했다. 개발 (Dev)에서 운영 (Prod)으로 이동하는 코드에 승인했다. 릴리스 성공률이 약 80%에서 99.9% 이상으로 상승하는 것을 지켜보았다. 이는 누군가가 하룻밤 사이에 똑똑해졌기 때문이 아니라, 프로세스 (Process)가 정직해졌기 때문이었다. 17년 동안 이런 일을 해왔다. 오전 6시의 랜섬웨어 (Ransomware) 복구 작업. 100개 이상의 공개 리포지토리 (Public repositories). 내가 처음부터 직접 작성한 오픈 소스 기반의 3개 바이너리 풀 텍스트 검색 엔진 (Full-text search engine).
나는 이 회사의 면접 루프 (Interview loop)를 통해 거의 5시간을 보냈다.
분산 시스템 (Distributed systems)에 관한 질문은 단 하나도 없었다.
나의 합격 여부를 결정지은 기술 평가 (Technical evaluation)는 그리드 퍼즐 (Grid puzzle)이었다. 1과 0으로 이루어진 행렬이 주어졌을 때, 섬 (Islands)의 개수를 세는 것이었다. 신입생 수준의 플러드 필 (Flood-fill) 연습 문제였다. 2026년에는 어떤 AI 어시스턴트 (AI assistant)라도 당신이 지정하는 어떤 언어로든 단번에 해결하며, 모든 지원자가 이를 알고 있고, 모든 면접관도 모든 지원자가 이를 알고 있다는 사실을 알고 있다.
내가 탈락한 사실을 다시 논쟁하려고 이 글을 쓰는 것이 아니다. 탈락은 직업의 일부다. 내가 이 글을 쓰는 이유는 프로세스 (Process) 자체가 이야기의 핵심이며, 이 프로세스는 어느 한 회사만의 특이한 사례가 아니기 때문이다. 이것은 업계의 기본값(Default)이며, 양쪽 끝 모두에서 조용히 망가져 있다.
존재하지 않는 인간을 위해 최적화된 파이프라인 (Pipeline)
깔때기(Funnel)의 맨 윗부분부터 시작해 봅시다. 지원자 추적 시스템(Applicant Tracking Systems, ATS)은 대량의 문제를 해결하기 위한 솔루션으로 기업에 판매되었습니다. 즉, 너무 많은 이력서와 부족한 채용 담당자의 업무 시간 문제를 해결하겠다는 것이었죠. 좋습니다. 하지만 ATS는 사람을 평가하지 않습니다. 그것은 이상적인 키워드 프로필(Keyword profile)에 대비하여 _문서(documents)_를 평가할 뿐입니다. 그 프로필이란 아마도 위원회에 의해, 혹은 최근에는 AI에 의해 작성되었을 직무 기술서(Job description)로부터 조립된 유령 지원자(Phantom candidate)입니다.
업계가 아직 웃지 못하고 있는 농담이 여기 있습니다. 그 유령 프로필에 완벽하게 부합하는 유일한 지원자는 바로 합성된(Synthetic) 지원자들뿐이라는 사실입니다. AI가 생성한 지원자들은 그 어떤 정직한 인간보다 키워드 사양(Keyword spec)에 맞춰 이력서를 조정합니다. 왜냐하면 그들 자체가 트렌치코트를 입고 있는 키워드 사양 그 자체이기 때문입니다. 그래서 기업들은 이제 이를 보완하기 위해 신원 확인 연극(Identity theater)을 벌입니다. 제가 참여한 면접 과정에서는 단 한 마디의 기술적인 대화가 오가기도 전에, 배경 흐림(Background blur)을 해제하고, 얼굴 앞에 손가락 세 개를 들고 있으며, 카메라에 정부 발행 신분증을 보여달라는 요청을 받았습니다. 스크리닝 소프트웨어가 봇(Bot)들을 들여보냈기 때문에, 인간은 용의자처럼 취급받게 된 것입니다.
채용 담당자는 다행히 솔직했습니다. 도구(Tooling)가 실재하지 않는 지원자들을 노출시키고 있으며, 이로 인해 자신의 업무가 더 어려워지고 있다고 말했습니다. 이 상황을 한번 생각해보십시오. 회사의 운영자가 화면 너머의 지원자에게, 자신들 사이에 가로막고 있는 소프트웨어에 대해 불평하고 있는 상황 말입니다. ATS는 봇 필터(Bot filter)로서 구매되었으나, 이제는 봇 증폭기(Bot amplifier)로 변질되었습니다. 그리고 그 실패의 대가는 바로 시스템이 찾아내야 했던 바로 그 사람들이 겪는 마찰(Friction)로 지불됩니다.
그 후, 깔때기의 맨 아랫부분에서, 낯선 이의 시간을 5시간이나 할애한 끝에 돌아온 것은 아무런 이유도 첨부되지 않은 자동 거절 통보였습니다. 문장 한 줄조차 없었습니다. 당신의 얼굴, 신분증, 흐릿하지 않은 거실, 그리고 무급의 오후 시간을 요구하는 시스템이, 결과에 대해 설명하는 문자열 필드(String field) 하나를 할애할 여유는 없다는 것입니다. 이러한 비대칭성은 시스템이 누구를 소모품(Disposable)으로 믿고 있는지를 말해줍니다.
AI 시대의 섬 세기
이제 깔때기의 중간 단계인 알고리즘 퍼즐(Algorithm puzzle)로 넘어가 봅시다.
이러한 질문들이 과거에 무엇을 위해 존재했는지 이해합니다. 20년 전에는 누군가가 그리드(grid)를 가로지르는 것을 지켜보는 것이 무언가를 알려주었습니다. 빈 페이지에서 코드를 작성하는 것이 희소한 기술이었기 때문입니다. 하지만 그것은 더 이상 희소한 기술이 아닙니다. AI는 이러한 퍼즐들이 테스트하는 바로 그 계층, 즉 시간 압박 속에서 잘 알려진 알고리즘을 클린룸 구현(clean-room implementation)하는 능력을 범용화(commoditized)했습니다. 플러드 필(flood-fill) 문제는 이미 인덱싱되고, 블로그에 올라와 있으며, 지구상의 모든 모델에 학습된 정형화된(canonical) 정답이 존재합니다. 2026년에 이 질문을 던지는 것은, 구조 엔지니어를 평가하면서 테이블 위에 계산기를 놓아두고는 만지지 못하게 한 채 네 자리 숫자의 곱셈을 손으로 직접 계산하게 하는 것과 같습니다.
그렇다면 이제 퍼즐은 실제로 무엇을 측정할까요? 핵심을 파헤쳐 보면 세 가지 신호가 남습니다: 교과서 내용의 암기, 의도적으로 까다롭게 설계된 문제 문구의 속독, 그리고 양측 모두 이것이 직무와 무관하다는 것을 알고 있음에도 의식을 수행하려는 의지입니다. 첫 번째는 구식입니다. 두 번째는 나중에 다시 다루겠습니다. 세 번째는 조용한 신호입니다. 그것은 순응성(compliance), 즉 "이것이 실제로 아무것도 측정하지 못한다는 것을 우리도 알고 있습니다"라는 말에 고개를 끄덕이며 그래도 수행할 후보자를 선별합니다. 만약 당신이 레거시 C 코드베이스(legacy C codebase)에 대한 냉혹한 진실을 말해줄 시니어 엔지니어를 채용하려 한다면, 고개를 끄덕이는 사람을 찾는 것은 당신에게 가장 필요한 특성을 걸러내는(screening out) 행위입니다. 고개를 끄덕이며 따르기만 하는 팀은 랜섬웨어(ransomware) 협박 메시지가 도착하는 새벽 6시에 완전히 오프라인 상태인 팀입니다. 제가 그 경험이 있기 때문에 잘 알고 있습니다. 그런 일이 발생했을 때 걸려 오는 바로 그 전화의 주인공이 되어 보았으니까요.
한편, 이 특정 역할에 대해 실질적인 신호(signal)를 줄 수 있었던 질문들은 질문되지 않은 채 그대로 놓여 있었습니다. "C를 Rust와 Go로 다시 작성하고 있습니다. 전환 과정에서 FFI(Foreign Function Interface) 경계를 어디에 설정할지 설명해 주세요. 어떤 컴포넌트가 Rust의 소유권 모델(ownership model)을 적용받아야 하고, 어떤 것들이 Go 서비스로 남겨두어도 괜찮을까요? 그 이유는 무엇입니까? 가용성 저하 없이 실시간 DNS 트래픽을 처리하는 모놀리스(monolith)를 어떻게 스트랭글러 패턴(strangle pattern)으로 교체하겠습니까? Dyn-to-OCI 재작성 과정에서 무엇이 잘못되었으며, 당신이라면 어떻게 다르게 하겠습니까?" 저는 이런 질문들을 받을 수만 있다면 돈이라도 지불했을 것입니다. 저는 제가 AI의 도움 없이 직접 작성했던, 수년 전의 변경 사항(diffs)이 담긴 공개 저장소(public repositories)를 보여주겠다고 제안했습니다. 하지만 어느 순간, 면접관은 제가 코드를 작성할 수 있는지조차 판단할 수 없다고 말했습니다. 아무도 확인하지 않았던 것입니다. 증거는 클릭 한 번이면 확인할 수 있는 곳에 있었지만, 면접 프로세스에는 그럴 자리가 없었습니다.
AI의 이중 잣대
이 글의 다른 내용이 어떻든 간에, 여러분을 괴롭힐 만한 괴리(disconnect)는 바로 이것입니다.
AI가 제 이력서를 검토하여 통과시켰습니다. 자동화된 에이전트가 면접 일정을 잡고 저와 소통했습니다. AI가 생성한 가짜 후보자들이 제가 거쳐야 했던 신원 확인 절차를 강요했습니다. 그러고 나서 면접실 안에서는 AI 사용이 금지되었습니다. 저는 2022년 이후로 존재하지 않았고, 이 직무에서도 결코 존재하지 않을 작업 환경을 시뮬레이션하도록 요구받았습니다. 문서도 없고, 도구도 없고, 어시스턴트도 없으며, 감시 카메라와 시계, 그리고 함정 질문만이 존재하는 환경 말입니다.
저는 저 대신 생각하라고 AI를 사용하는 것이 아닙니다. 저는 제 세대가 데이터 시트(datasheet)를 사용했던 방식대로 AI를 사용합니다. 제가 C로 임베디드 시스템(embedded systems)을 구축할 때, 핀 사양(pin specifications)을 찾아보는 것을 부정행위라고 생각하는 사람은 없었으며, 회로를 조립하면서 미분 방정식(differential-equations) 참고 자료를 보는 것을 인격적 결함이라고 여기는 사람도 없었습니다. 모르는 것에 부딪힌 전문가라면 그것을 찾아보고, 그 _이유(why)_를 이해할 때까지 답을 파고듭니다. 그 파고드는 과정 — 즉, 해결책을 문제로 되돌려 검증하는 과정 — 이 바로 실제 엔지니어링입니다. 직무에 필요한 도구들을 금지하는 면접은, 존재하지도 않는 직무를 측정하는 것과 같습니다.
그리고 특히 인터넷 지능 (internet-intelligence) 기업에게는 더 깊은 아이러니가 존재합니다. 현대의 인터넷은 에이전트형 트래픽 (agentic traffic)으로 가득 차 있습니다. 암호화폐 지갑을 소유하고 스스로 비용을 지불하며 당신의 데이터로 침투하는 봇(bot)들은 맥박도, 지문도 없습니다. 이것이 바로 2026년의 위협 표면 (threat surface)입니다. 합성된 후보자 (synthetic candidates)와 실제 후보자를 구분하지 못하는 채용 파이프라인은, 그 회사가 직면한 제품 문제의 작은 예고편에 불과합니다. 이 분야의 기업 중 AI를 핵심 R&D 역량이 아닌, 인사(HR) 소프트웨어 안에 격리해야 할 대상으로 취급하는 곳이 있다면, 그들은 스스로의 사각지대를 입 밖으로 내어 설명하고 있는 셈입니다.
이 형식이 걸러내는 사람들
이제 면접 문화의 대부분의 비판가들이 말하지 않는 부분을 제가 말해보고자 합니다.
영어는 저의 제2외국어입니다. 저는 루마니아 고아원에서 미국으로 왔습니다. 저는 ADA(미국 장애인법)의 보호를 받는 장애를 가진 엔지니어이며, 그럼에도 불구하고 17년 동안 제품을 출시해 왔습니다. 문제 정의가 오해를 불러일으키도록 의도적으로 작성되고, 시간 압박 속에서, 카메라 앞에서, 낯선 이가 지켜보는 가운데 진행되는 '함정 질문 (trick-question)' 면접은, 제2외국어 사용자들과 엔지니어링 능력과는 아무런 상관이 없는 수많은 장애를 가진 이들에게 부과되는 세금과 같습니다. 적대적인 산문 (adversarial prose)을 빠르게 파악하는 것은 하나의 기술입니다. 하지만 그것은 이 직무의 기술이 아닙니다. 코드베이스는 버그를 일부러 기만적으로 작성하지 않으며, 운영 환경의 장애 (production incidents)는 당신이 제2외국어로 배운 언어의 독해 능력을 평가하지 않습니다.
제가 주장하는 바를 정확히 말씀드리겠습니다. 여기서는 정확성이 중요하기 때문입니다. 저는 누구도 저와 같은 사람들을 배제하기 위해 이러한 루프(loop)를 설계했다고 비난하는 것이 아닙니다. 저는 그것들이 설계된 것조차 아니라고 믿습니다. 바로 그것이 문제입니다. 그것들은 다른 시대와 다른 후보자를 위해 작성된 템플릿으로부터 검토 없이 채택된 것입니다. 하지만 필터(filter)가 편향성을 갖기 위해 의도가 필요하지는 않습니다. 만약 당신의 루프가 직무 수행 능력(job performance)과 직교하는 차원들—언어, 처리 스타일, 감시 하에서의 성과—에 체계적으로 세금을 부과한다면, 당신은 스스로 선택하지도 않았고 방어할 수도 없는 선을 따라 당신 자신의 인재 풀을 축소하고 있는 것입니다. 이것은 가치관에 대한 진술이 아닙니다. 이것은 수율(yield)의 문제이며, 일부 관할권에서는 법적 검토(legal-review)의 문제이기도 합니다.
시니어 루프(senior loop)가 갖춰야 할 모습
비판은 쉽습니다. 그러니 이 역할과 같은 직무를 위한 구체적인 대안을 제시하겠습니다.
먼저 후보자의 실제 작업물을 검토하십시오. 만약 그들에게 10년 치의 공개 코드(public code)가 있다면, 면접 전 30분 동안 그 코드를 살펴보고 그들이 스스로의 결정에 대해 방어하게 만드십시오. 가짜를 가장 빠르게 드러내는 것은 바로 그들 자신의 저장소(repository)입니다. 당신이 채용하려는 이유인 당신의 실제 문제—예를 들어 C에서 Rust와 Go로의 마이그레이션—를 바탕으로 디자인 세션(design session)을 진행하고, 구문(syntax)이 아닌 트레이드오프(trade-off) 추론 능력을 평가하십시오. 장애 상황 워크스루(incident walkthrough)를 진행하십시오. 당신이 처음부터 끝까지 책임졌던 오전 6시의 호출(page)에 대해 말해달라고 하고, 제가 그 실타래를 풀어가게 하십시오. 직무에서 허용하는 모든 도구(AI 포함)를 사용하여 작고 실제적인 작업에서 페어(pair)를 이루어 진행해 보고, 그들이 도구가 생성한 결과물을 어떻게 검증하는지 지켜보십시오. 그 검증 본능(verification instinct)이 바로 이 시대의 시니어 기술입니다. 그리고 모든 것이 끝났을 때, 결과가 무엇이든 간에: 그 사람에게 이유를 전달하십시오. 그들의 인생에서 5시간은 당신의 한 단락만큼의 가치가 있습니다.
이 모든 것은 생소한 것이 아닙니다. 이 모든 방식은 플러드 필 (flood fill) 방식보다 시간당 더 많은 시그널 (signal)을 생성합니다. 퍼즐 형식이 가진 유일한 장점은 관리하기가 더 쉽다는 것뿐입니다. 그리고 "관리하기 쉽다"는 논리는 우리가 ATS (채용 관리 시스템)를 도입하게 된 방식과도 같습니다. 우리는 컴퓨터가 편리하다는 이유로 계속해서 컴퓨터가 관리 결정을 내리도록 방치하고 있으며, 그 결과 이미 그 직무를 수행하고 있는 엔지니어들이 채용 깔때기 (funnel) 밖으로 걸어 나가는 동안 채용 공고 (reqs)가 몇 달 동안 열려 있는 것을 보고 놀라는 척을 합니다.
면접은 양방향입니다
지원자 또한 당신을 면접하고 있습니다. 당신의 면접 루프 (loop)는 지원자가 서명하기 전에 볼 수 있는 당신의 엔지니어링 문화에 대한 유일한 데모 (demo)입니다. 만약 그 데모가 입구에서의 신원 확인 연극, 지난 10년간의 공개적인 작업물에 대한 호기심 결여, 양측 모두 속으로는 무시하는 의례적인 퍼즐, 그리고 마지막에 전달되는 형식적인 거절 통보라면 — 시니어 엔지니어들은 그에 맞춰 판단을 업데이트할 것입니다. 이는 자존심 때문이 아닙니다. 패턴 인식 (pattern recognition) 때문입니다. 증거에 대해 이토록 호기심이 없는 프로세스는 대개 내부적으로도 같은 방식으로 운영되는 조직에 속해 있기 마련입니다.
저는 릴리스 노트 (release notes)를 작성할 때와 같은 마음으로, 자존심을 버리고 비난 없이 (blameless), 구체적으로, 프로세스를 겨냥하여 이 글을 씁니다. 그래서 여기까지 읽은 모든 엔지니어링 리더에게 요청합니다. 당신의 깔때기 (funnel)를 감사하십시오. 당신의 면접 루프가 지원자의 시간을 얼마나 소비하는지, 그리고 그 안에 _진정한 평가_가 담긴 시간은 몇 분인지 계산해 보십시오. 시니어 직군을 위한 퍼즐 연극을 폐지하고 실제 직무를 바탕으로 면접하십시오. 지원자들이 직무에서 허용하는 도구를 사용하게 하고, 그 결과물에 대한 그들의 판단력을 평가하십시오. 그리고 모든 면접 루프를 이유와 함께 마무리하십시오. 침묵 또한 데이터이며, 그 데이터는 이 글과 같은 게시물로 남게 되기 때문입니다.
업계는 시스템을 이해하는 엔지니어 세대를 보유하고 있습니다. 이들은 하드웨어, 네트워크, 운영(Operations), 그리고 화려하지는 않지만 시스템을 지탱하는 계층(load-bearing layers)을 거치며 성장해 온 사람들입니다. 바로 지금, AI가 순수한 알고리즘 암기(algorithm recall)를 가치 없게 만들고 시스템적 판단(systems judgment)을 매우 귀중하게 만든 바로 이 시점에 말입니다. 이러한 변화를 중심으로 채용 프로세스를 재설계하는 기업들이 향후 10년의 인력을 확보하게 될 것입니다. 반면, 여전히 개별적인 섬(islands)만을 세고 있는 기업들은 왜 바다가 텅 비어 보이는지 계속 의아해할 것입니다.
만약 여러분이 면접관이든 지원자든, 이와 같은 면접 루프를 경험했다면 저에게 들려주세요. 모든 댓글에 답변하겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기