파이썬 면접 질문
작성자 Aaron Cao · 업데이트
세 가지 층위를 예상하세요. 가변성, 제너레이터, 데코레이터 같은 언어 메커니즘, GIL 같은 런타임 동작, 그리고 자료구조에 대한 실전 코딩입니다. 대부분의 탈락은 문법 오류가 아니라 '왜'에 대한 설명이 빈약하기 때문에 발생합니다.
계속 반복되는 질문들
200개짜리 파이썬 질문 목록을 처음부터 끝까지 훑는 것은 생산적으로 느껴지지만 면접 결과를 바꾸는 경우는 거의 없습니다. 이 섹션에서는 전화 스크리닝과 기술 면접에서 반복적으로 등장하는 소수의 질문으로 범위를 좁히고, 좋은 답변에 무엇이 담겨야 하는지를 보여줍니다. 소수의 언어 특성이 대부분의 평가 신호를 차지합니다.
- 가변 기본 인자. 왜
def f(x=[])는 호출 사이에 값이 누적될까요? 기본값은 함수가 정의될 때 한 번만 평가되며, 호출마다 다시 평가되지 않습니다. - 제너레이터 대 리스트.
yield가 리스트를 만드는 것보다 나은 경우는 언제일까요? 시퀀스가 크거나, 도중에 읽기를 멈출 수도 있을 때입니다. - 데코레이터. 데코레이터가 실제로 반환하는 것은 무엇이며, 왜 래퍼에
functools.wraps가 필요할까요? - GIL. 왜 CPU 바운드 스레드는 CPython에서 확장되지 않으며, 대신 무엇을 사용해야 할까요?
- 얕은 복사 대 깊은 복사. 중첩된 구조를 슬라이스로 복사하면 무엇이 깨질까요?
- 동일성 대 동등성. 셸에서 작은 정수에
is를 테스트하면 왜 오해를 부르는 결과가 나오는지에 대한 설명입니다.
합격과 불합격을 가르는 것
두 지원자가 GIL에 대해 똑같이 정확한 정의를 말해도 다음 라운드로 진출하는 사람은 한 명뿐일 수 있습니다. 차이는 보통 두 번째 문장에 있습니다.
한 퍼블릭 클라우드 업체의 L5 백엔드 엔지니어 면접에서, 지원자는 서비스가 부하 상태에서 느려지는 이유를 질문받았습니다. 그는 GIL을 언급한 뒤 이야기를 이어갔습니다. 병목 구간은 JSON 파싱이었기 때문에 스레드는 적절한 도구가 아니었고, 이 단계를 프로세스 풀로 옮기자 처리량이 회복되었다고 설명했습니다. 제약을 짚어낸 것만으로도 부분 점수를 받았고, 그것을 하나의 결정과 연결한 것이 그 라운드를 통과시켰습니다.
답변은 세 박자로 구성하세요. 그 기능이 무엇을 하는지, 왜 존재하는지, 그리고 언제 그것을 피할지입니다. 대부분의 지원자가 건너뛰는 것이 바로 세 번째 박자이며, 이것이 바로 판단력을 드러내는 부분입니다. 코딩, 행동 면접, 시스템 설계 면접에 관한 다른 페이지들은 면접 유형 아래에 모여 있습니다.
암기하지 않고 준비하는 방법
답을 읽는 것과 답을 말하는 것은 서로 다른 기술이며, 면접에서 시험되는 것은 그중 하나뿐입니다. 시계를 두고, 실제 통화에서 쓸 것과 같은 말투로 소리 내어 연습하세요.
- 반복적으로 나오는 각 질문에 대한 답을 세 문장으로 적은 다음, 보지 않고 말해 보세요.
- 매일 사용하는 기능 두 가지를 골라 각각에 대한 솔직한 한계를 준비하세요. 자신이 쓰는 도구를 비판할 수 있다는 것은 경험으로 읽힙니다.
- 파이썬의 동작이 여러분을 놀라게 했고, 그 이유를 알아낸 실제 디버깅 사례 하나를 준비하세요.
- 실전 코딩 부분은 따로 연습하세요. 딕셔너리, 셋, 키 함수를 이용한 정렬, 문자열 처리가 스크리닝의 상당 부분을 차지합니다.
실전 전에 AI 면접관을 상대로 시간을 재며 연습해 보고 싶다면 모의 면접 페이지를 확인하세요.
실시간 어시스턴트가 도움이 되는 곳과 그렇지 않은 곳
SubcueAI는 macOS와 Windows용 네이티브 데스크톱 앱입니다. 통화 양쪽의 소리를 캡처해 실시간으로 전사하고, 여러분의 기기에만 머무르는 플로팅 오버레이에 구조 힌트를 보여주므로 참가자나 봇으로 회의에 참여하지 않습니다. 파이썬 면접에서 유용한 출력은 완성된 답이 아니라 구조 프롬프트입니다. 구체적인 내용은 여러분 스스로 채워야 합니다. 후속 질문은 방금 설명한 코드에 관한 것이기 때문입니다.
기능보다 정직한 한계가 더 중요합니다. 화면을 공유하면 그 화면에 있는 모든 것이 공유됩니다. 감독형 평가 플랫폼에서 진행되거나 회사가 관리하는 기기에서 진행되는 면접이라면 어시스턴트는 사용 범위 밖입니다. 설정과 권한에 대한 내용은 튜토리얼 페이지에서 다룹니다.