26P by neo 10일전 | ★ favorite | 댓글 9개
  • 채용 프로세스는 누구가 싫어함. 채용 관리자도, 담당자도, 지원자도 마찬가지
  • 기술 면접은 그중에서도 악명 높은 단계인데, 면접자 대부분이 싫어함
  • 실제 업무는 간단한 API 연결 위주인데, 면접에서는 복잡한 이론과 알고리듬 등을 묻는 상황을 종종 볼 수 있음
    • 구글의 90% 엔지니어가 쓴다는 Homebrew의 개발자가 칠판에 이진트리 전환을 못해서 면접에서 탈락한 것 처럼

최근 몇 년간의 변화 (인터뷰 무력화 요인)

  • 원격 면접에서 카메라를 끄고 대리인을 고용하는 사례가 발생함
  • 북한 작업자가 deepfake 영상을 활용해 구직을 시도한 사례가 있었음
  • GitHub Co-pilot, Cursor와 같은 자동 코딩 도구, 그리고 Claude나 OpenAI 같은 LLM이 등장하면서 기본 코딩 문제나 질의응답이 손쉽게 해결 가능해짐
  • 이력서 작성부터 대규모 지원, 영상 면접에 이르기까지 AI가 개입 가능해지는 추세이지만, 이 글에서는 기술 인터뷰 자체에 집중함

기술 면접의 기본

개발자를 채용하는 거의 모든 회사에서 아래와 같이 약간씩 변형된 프로세스를 가지고 있음

  • Hackerrank 사전 과제
    • 주니어나 인턴 개발자를 뽑기 위한 필터 역할
    • 온라인으로 자유롭게 문제를 풀 수 있음
  • 컴퓨터공학 기초(Comp Sci Fundamentals)
    • 자료구조, 알고리즘, Big O 등을 묻는 방식
    • 주니어 개발자 대상인 경우가 많음
  • 코딩 인터뷰
    • 실제 코드를 짜서 동작시키는 능력을 평가함
    • 간단한 프로젝트 예시로 기본적인 언어 사용 및 문제 해결 능력을 확인함
  • 아키텍처/디자인
    • 주니어보다는 시니어 개발자 대상
    • 시스템 설계, 확장성, 데이터베이스 및 API 설계 등을 평가함

면접에서의 AI 사용

  • AI 때문에 Hackerrank 같은 사전 과제의 필터 역할이 크게 약화됨
  • 컴퓨터공학 기초 및 코딩 인터뷰도 문제 난이도가 LLM의 답변 범주에 속해 쉽게 풀리는 추세임
  • 아키텍처/디자인 인터뷰는 아직 비교적 안전한 편이지만, 장기적으로 AI가 더욱 발전하면 이 영역도 위협받을 가능성이 있음

우리의 옵션은?

  • 1. 원격 기술 인터뷰 중단
    • 면접관이 직접 옆에서 지켜보면 AI 활용이 어려움
      • 나머지 모든 과정을 통과한다고 가정하면 대면 코딩 면접이 될 수도 있음
  • 2. Pearson Vue 스타일 소프트웨어 사용
    • 감시 프로그램을 설치해 카메라로 감독하는 형태
    • 우회 방법이 여러 경로로 알려져 있어 완벽하진 않음(관련 하위 레딧이 따로 있을 정도임)
  • 3. 문제점 외면
    • "AI 쓰지 말라"는 도의적 요청에 의존하는 방식
    • 결과적으로 AI를 쓰는 사람이 유리해지므로, 기업 입장에서 적절한 지원자를 선발하기 어려워짐
  • 4. AI 사용을 허용
    • 코딩 실력 대신 LLM에 프롬프트를 잘 쓰는 능력과 리팩토링 역량을 평가하는 형태
    • AI 출력 오류를 직접 교정할 수 있는 코딩 역량도 필요한 과도기적 상황
  • 5. 하이브리드 접근
    • 원격으로 AI 활용 능력 등을 먼저 확인한 뒤, 오프라인 최종 검증을 진행하는 식의 혼합 방식

가능한 솔루션

  • 장기적으로는 4번과 5번 방식이 실현 가능성이 높음
  • RTO를 시행해도 원거리 후보 모두를 오프라인으로 부를 순 없으므로 효율적 방안을 마련해야 함
  • 면접 자체의 형식을 바꾸는 것도 또 하나의 대안
    • 오늘날 코딩 인터뷰는 FizzBuzz나 계산기 구현 수준의 작은 과제에 그치는 경우가 많음
    • AI 보조를 활용하면 과제 난이도를 10배 이상 확장해, 완전한 애플리케이션을 만드는 과정으로 평가할 수 있음
    • 아키텍처와 코딩을 혼합해 2시간 정도의 긴 인터뷰로 진행하는 방법도 시도할 수 있음
  • 이런 방식에서는 애플리케이션을 구축하고, 확장하고, 추가 기능을 구현하도록 요구가능
    • 코드베이스가 커지는 과정에서 일관성을 유지할 수 있는지, 표면적인 답변에 그치지 않고 더 깊은 수준의 역량을 확인할 수 있는 이점이 있음
  • 이런 과정을 통해 다음을 평가
    • 기본적인 git과 IDE 등 도구 활용 능력
    • LLM에 효과적으로 프롬프트를 주고, 더 나은 출력을 얻도록 프로그래밍할 수 있는 능력
      • LLM 출력을 이해하고 결합해, 유지보수 가능한 형태로 코드를 완성할 수 있는 역량
      • 제한된 시간 안에 일정 수준 이상의 규모와 확장성을 가진 애플리케이션을 완성할 수 있는지 여부
    • 일관된 품질과 논리를 유지하는 능력
  • 이런 종합 평가 방식이 AI 시대의 코딩 인터뷰 대안이 될 가능성이 있음

Summary

  • 기술 인터뷰는 가까운 미래에 큰 변화를 맞이할 전망
  • 당장은 AI 활용이 비교적 느리거나 어색하게 드러날 수 있지만, 점차 AI가 감춰질 가능성이 있음
  • 이에 따라 발생할 수 있는 시나리오
    • 합격률이 상승하고, 대신 실제 업무 기간(프로베이션) 중에 탈락하는 사례가 늘어날 수 있음
    • 주니어 개발자가 기업의 높은 기술 스펙을 조기에 따라가야 하는 부담이 더욱 커질 수 있음
  • AI를 활용해 FAANG 면접을 통과하는 방식이 확산된다면, 변화 속도는 더욱 가속될 가능성이 있음

AI 탓이 아니라, 기존에 면접 과제가 optimal answer 를 구하시오. 그러면 만사 OK 라는 이런 허술한 포맷이었던 것이 문제고 그 문제가 이제 드러난 게 아닐까요? 실업무에서 AI 를 활용하지 않을 것도 아닌데 왜 제한을 거나요? ㅎㅎ 어떤 수단을 사용했던 간에, output 이 나오면 되는겁니다. 다만 그 수단을 어떻게 활용했는가를 투명하게 심사할 필요는 있죠

동감합니다. AI가 등장하면서 실무와 거리감 있는 엉터리 코딩 테스트들은 시장에서 자연스레 탈락하게 될거고, 좀더 나은 채용 방식을 쓰는 회사들이 좋은 인재들을 가져가겠죠.
흥미로운 창과 방패의 싸움이네요.

기술 면접과 실제 업무의 미스 매치를 줄여야지 애꿏은 AI 탓이 될까 걱정이네요

이 변화때문인지 모르겠지만 제가 다니는 회사는 사전문제 없이 인터뷰에서 라이브 코딩을 하고 있어요.

제가 속한 곳은 이제 기술면접에서 ai로 물어보는것을 허용하는 정책으로 가는중.. 인풋이 아웃풋을 좌우하기에 오히려 질문하는 역량을 보기위해서..

AI 써도 된다고 생각합니다.
근데 그렇게 나온 결과물을 100% 자기 걸로 만들어야죠.
제가 면접관이라면 온라인으로 코딩 과제물 내주고 대면 면접에서 해당 코드에 대해서 설명해보라고 하겠습니다. 당연히 추가적인 질문도 하구요.
자기가 짰던 AI가 짰던 제출한 코드를 설명하고 그에 대한 답변도 못하는 수준이면 패스해야죠.

코딩 실력 대신 LLM에 프롬프트를 잘 쓰는 능력과 리팩토링 역량을 평가하는 형태

이 역량이 중요해 질 것이라는 생각은 듭니다.

Leetcode Interview 치팅 프로그램
이 글에서 얘기하는 기술 면접에서의 AI 치팅 사례로 적절하네요

Hacker News 의견
  • 최고의 인터뷰 과정은 팀원과의 페어 프로그래밍과 전화 인터뷰를 포함했음. 몇 분 안에 지원자가 일을 잘할 수 있는지 알 수 있었고, 이 과정은 20년 이상의 경력 중 가장 생산적인 팀을 만들었음

    • 문제는 소프트웨어 문화의 많은 부분을 망친 확장 가능한 프로세스와 높은 처리량의 필요성임
    • "우리는 수백 명의 후보자를 처리해야 하며, 결과보다는 과정의 지표가 중요함"이라는 사고방식이 문제임
  • 코드 리뷰는 평가 도구로서 매우 유용함

    • 지원자가 코드를 리뷰하도록 하는 것이 중요함
    • 주니어, 미드, 시니어, 스태프는 동일한 코드베이스에서 매우 다른 점을 볼 수 있음
    • AI 생성 코드가 일반화됨에 따라, 코드의 품질과 정확성을 효율적으로 검토할 수 있는 개발자를 선택하는 것이 중요함
    • YC 회사에서 코드 리뷰를 첫 번째 라운드로 진행한 인터뷰를 경험했으며, 이를 통해 오픈 소스 앱을 만들게 되었음
  • 2005년쯤 SME에서 화이트보드 코딩을 요청받았으나, 컴퓨터를 사용할 수 없었음

    • 화이트보드를 사용하는 이유를 물었을 때, Google의 모범 사례를 모방한다고 답변받음
    • 결국 화이트보드로 코딩을 했지만, 컴퓨터를 제공하면 다시 할 의향이 있다고 말했음
    • 결국 다른 곳으로 갔음
  • 회사 A는 AI가 모든 기술 인터뷰 질문을 해결할 수 있다면 AI를 고용하지 않는 이유를 고민해야 함

    • 엔지니어가 기능 구현 여부를 평가하는 것이 필요할 수 있으며, 인터뷰에서 후보자에게 예시 기능 요청에 대해 생각해보도록 할 수 있음
    • 회사가 엔지니어의 가치를 명확히 이해하지 못해 후보자의 가치를 판단하기 어려운 경우가 많음
  • AI를 피하는 고용 기술로 주니어 개발자에게 코드를 가져오게 하고 설명하도록 요청함

    • 그들이 무엇을 변경할지, 어떻게 변경할지, 패턴을 사용했는지 등을 논의함
    • 시니어 개발자에게는 복잡한 코드를 주고 실시간으로 분석하도록 함
    • AI를 사용해 일상적인 작업을 단축하는 것은 괜찮지만, 결과를 비판적으로 생각할 수 있어야 함
  • 인터뷰어로서, FAANG이 아닌 회사에서는 간단한 인터뷰 과정을 사용함

    • 후보자의 이력서, 기대 사항, 능력에 대해 질문하고 작성한 코드를 보여달라고 요청함
    • 이 과정은 빠르고 효과적임
  • 현재의 취업 시장은 혼란스러워서 벽에 부딪힐 때까지는 취업이 어려울 것 같음

    • 26년의 경력이 있지만 완벽하지 않으며, 속이는 것은 잘 되지 않음
  • Leetcode 중급/고급 문제를 30-45분 동안 인터뷰에서 사용하는 것은 두 가지 유형의 사람만 드러낼 수 있음

    • 문제를 처음부터 접근하는 사람과 이미 해결책을 알고 있는 사람
    • Kadane의 알고리즘을 모르면 문제를 처음부터 접근하는 것과 같음
    • 최적의 인터뷰 방법은 모르지만, 개인적으로 선호하는 스타일이 있음
    • 인터뷰 질문은 테스트 케이스가 있고, 점진적으로 복잡해지며, 데이터 구조에 초점을 맞추고, 후보자가 타협하고 결정을 내릴 수 있는 기회를 제공해야 함
  • 문제는 AI가 아니라, 회사가 후보자를 적절히 선택하는 방법을 모르는 것임

    • 심리측정학의 기본조차 적용하지 않음
    • 가장 좋은 선택 과정은 새로운 사람이 실제로 몇 주 동안 일을 하도록 하는 것임
  • 마지막 인터뷰에서는 AI를 포함한 도구를 사용하여 과제를 수행하도록 요청받았음

    • 라이브 코딩 인터뷰에서도 유사한 과정을 거쳤음
    • 도구를 사용하여 기술과 좋은 관행을 확인하는 것이 당연한 선택임