콘텐츠로 건너뛰기
cookie

학생을 위한 안내 · 졸업 전 학년의 가을부터 겨울까지

소프트웨어 엔지니어링 인턴십 면접

대부분의 소프트웨어 엔지니어링 인턴십 면접은 온라인 코딩 평가 후 실시간 코딩 면접 한두 번으로 진행돼요. 각 면접에서는 보통 문제 한두 개와 후속 질문을 다루고, 과거 경험에 관한 질문도 나와요. 면접관은 문제를 이해하는 방법, 작동하는 해결책을 찾는 과정, 시간 및 공간 복잡도를 설명하고 테스트하는 방법을 살펴봐요. 면접관은 힌트를 줄 수도 있어요.

면접 단계

많은 대기업은 집에서 정해진 시간 안에 보는 코딩 시험인 온라인 평가부터 시작해요. 예를 들어 Amazon은 인턴십 온라인 평가가 약 90분 걸리고, 코딩과 기술 문제 해결, Leadership Principles를 평가한다고 해요. 코딩 부분은 약 70분이에요. 그다음에는 영상으로 실시간 면접을 보며, 엔지니어가 지켜보면서 질문하는 동안 문제를 풀어요.

2022년에 마지막으로 업데이트된 Meta의 인턴십 면접 안내에는 전화 면접과 후속 면접의 두 단계가 설명되어 있어요. 두 단계에서 기대하는 바는 같고, 각 면접에서 약 30~35분 동안 질문 한두 개를 코딩한다고 해요. Google은 지원자에게 코딩 과제를 요청할 수 있고, 모든 지원자를 명확한 평가 기준에 따라 평가하며, 머리 쓰기 문제는 없다고 밝혀요. 세부 사항은 바뀌니 면접 초대를 받으면 회사의 자체 안내 페이지를 확인하세요.

면접관이 평가하는 항목

대부분은 답에 도달하는 과정을 살펴봐요. Google은 면접관이 답뿐 아니라 사고 과정도 살펴보고 후속 질문을 한다고 해요. Meta의 안내에는 접근 방식의 빅오 복잡도를 설명하고, 명확히 하기 위한 질문을 하라고 나와 있어요. 아이디어만 있는 것보다 최적은 아니더라도 작동하는 코드를 만드는 편이 낫다고도 해요. 막히면 먼저 무차별 대입 방식의 해결책을 만들고 개선하라고 안내해요. 면접관이 힌트를 주는 것도 나쁜 일이 아니라고 해요.

실제로는 다섯 가지를 뜻해요. 문제를 이해하고 다시 설명하며 경계 사례와 입력 크기를 질문하기, 올바른 해결책 찾기, 시간 및 공간 복잡도 설명하기, 가능하면 해결책 개선하기, 예시와 경계 사례를 직접 따라가며 테스트하기예요. 이 모든 과정에서 소통이 중요해요. 면접관은 여러분이 말한 내용만 평가할 수 있으니까요.

풀이 예시: 두 수의 합

숫자 목록과 목표값이 주어졌을 때, 두 숫자의 합이 목표값이 되는 두 숫자의 위치를 반환하세요. 먼저 질문을 해 보세요. 답이 여러 개일 수 있나요? 같은 숫자를 두 번 사용할 수 있나요? 목록은 정렬되어 있나요? 목록의 길이는 얼마나 될 수 있나요? 그런 다음 무차별 대입 방식의 접근법을 소리 내어 설명하세요. 모든 쌍을 확인하는 방법이에요. 올바른 방법이지만 숫자가 n개인 목록에서는 n의 제곱에 비례하는 시간이 걸려요.

그다음 개선해 보세요. 목록을 따라가며 지금까지 본 각 숫자를 그 위치와 연결해 해시 맵에 저장하고, 새 숫자를 볼 때마다 목표값에서 그 숫자를 뺀 값이 이미 맵에 있는지 확인하세요. 그러면 한 번만 훑어 쌍을 찾을 수 있어요. 시간은 n에 비례하지만, 추가 메모리도 n에 비례해 사용해요. 마지막으로 작은 예시, 답이 없는 목록, 중복 숫자가 있는 목록으로 소리 내어 테스트하세요. 목록이 이미 정렬되어 있다면 양쪽 끝에서 시작하는 두 포인터를 사용하고 추가 메모리는 쓰지 않는다고 설명하세요.

알아야 할 주제와 사용할 프로그래밍 언어

인턴십 면접 문제는 대부분 자료 구조와 알고리즘 입문 과목의 내용을 다뤄요. 배열과 문자열, 해시 맵과 집합, 스택과 큐, 연결 리스트, 트리와 그래프의 너비 우선 탐색 및 깊이 우선 탐색, 정렬과 이진 탐색, 재귀, 간단한 동적 계획법 등이 있어요. 각 자료 구조의 연산에 필요한 시간과 공간을 아는 것도 자료 구조 자체를 아는 것만큼 중요해요.

가장 익숙한 언어를 사용하세요. Meta의 인턴십 안내에서는 가장 편한 언어를 쓰라고 하고, Amazon은 평가에서 사용할 언어를 익히고 연습하라고 조언해요. Python은 짧게 쓸 수 있어 흔히 쓰이지만, 언어 선택보다 능숙하게 쓰는 것이 더 중요해요.

생각을 소리 내어 말하기와 면접에서의 AI

“아직 잘 모르겠어요”라고 생각할 때도 생각하는 내용을 말하세요. 아무 말도 하지 않으면 면접관은 평가할 내용도 도와줄 방법도 없어요. 힌트를 받으면 활용하고 접근 방식이 어떻게 달라지는지 말하세요. 혼자 연습하면 어색하게 느껴지기 때문에 친구와 연습하거나 문제를 풀면서 말하는 모습을 녹음하면 큰 도움이 돼요.

AI 사용 규칙은 회사마다 다르니 면접 전에 확인하세요. Google은 면접 중 AI 도구 사용을 허용하지 않는다고 해요. Meta는 현재 많은 면접에 면접 환경에 내장된 AI 도우미가 포함되며, 지원자는 이를 사용해야 한다고 해요. 사용이 허용되지 않는 곳에서 AI를 사용하면 부정행위예요. 면접의 일부로 허용된 경우에는 AI가 제공한 내용을 어떻게 확인하고 수정하는지도 평가 대상이에요.

행동 관련 질문

대부분의 전문 면접에는 과거 경험에 관한 질문이 나와요. 자랑스러운 프로젝트, 해결하기 어려웠던 버그, 팀원과 의견이 달랐던 경험 등이 있어요. Amazon은 Leadership Principles에 따라 지원자를 평가해요. 첫 번째 원칙인 고객 집착은 리더가 고객을 우선하고 그 관점에서 거꾸로 생각한다는 뜻이에요. 원칙을 읽고 주요 원칙마다 사례를 준비하세요.

계정이 있으면 cookie의 면접 준비에서 AI 면접관과 함께 원하는 직무의 모의 면접을 할 수 있어요. 한 번에 질문 하나씩 받고, 실제 면접관처럼 답변에 이어 질문하며, 마지막에는 각 답변에 대한 보고서를 작성해요. 크레딧을 사용하며, 먼저 예상 사용량을 보여 줘요.

확인할 곳

에 다음 자료를 확인했어요. 규정은 해마다 바뀌므로 여기에 있는 내용과 다른 점이 있으면 위 페이지를 기준으로 삼으세요.

자주 묻는 질문

온라인 평가란 무엇인가요?

집에서 정해진 시간 안에 보는 코딩 시험으로, 많은 회사가 실시간 면접 전에 진행해요. Amazon에 따르면 인턴십 평가는 약 90분 걸리며 대부분 코딩 문제예요.

코딩 면접에서는 어떤 언어를 사용해야 하나요?

가장 익숙한 언어를 사용하세요. Meta는 가장 편한 언어를, Amazon은 사용할 언어를 연습하라고 권해요. 어떤 언어인지보다 능숙하게 사용하는지가 중요해요.

인턴십 코딩 문제는 얼마나 어려운가요?

보통 1학년 수준의 자료 구조와 알고리즘을 바탕으로 해요. 배열, 해시 맵, 트리, 그래프, 정렬, 재귀 등이 나오고, 해결책을 개선하거나 확장하라는 후속 질문이 이어져요.

코딩 면접에서 막히면 어떻게 해야 하나요?

어디에서 막혔는지 말하고, 먼저 무차별 대입 방식의 해결책을 시도한 다음 개선하세요. 받은 힌트도 활용하세요. Meta의 안내에 따르면 면접관의 힌트는 나쁜 일이 아니에요.

코딩 면접에서 AI를 사용할 수 있나요?

회사에 따라 달라요. Google은 면접 중 AI 도구 사용을 허용하지 않는다고 해요. Meta는 많은 면접에 내장된 AI 도우미가 포함되며 지원자가 이를 사용해야 한다고 해요.