Companies
Google Data Engineer Interview Questions & Process (2026)
— docs/Google Data Engineer Interview Questions & Process (2026).pdf
Google의 Data Engineer 채용 프로세스는 리크루터 스크린부터 오퍼까지 보통 6~12주가 걸리며, 다른 빅테크 대비 가장 길고 불투명한 축에 속한다는 것이 필자의 관찰이다. 지원자 본인이 만나본 적 없는 Hiring Committee(HC)가 인터뷰어들의 서면 피드백만으로 최종 합격 여부를 결정하고, 그 평가에는 기술 역량뿐 아니라 'Googleyness'라 불리는 문화 적합성 축이 상당한 비중으로 반영된다. 합격 후에도 특정 팀이 아니라 '구글 소속'으로 채용되어 팀 매칭 단계를 별도로 거친다.
| # | 단계 | 형식 | 소요 시간 | 평가 항목 |
|---|---|---|---|---|
| 1 | Recruiter Screen | Phone call | 30 min | Role fit, level calibration, basic signal |
| 2 | Phone Screen 1 | Video call | 45 min | SQL + data concepts, light coding |
| 3 | Phone Screen 2 (optional) | Video call | 45 min | Borderline 또는 시니어 지원자 대상 추가 검증 |
| 4 | Onsite Loop | 4~5 rounds, 45 min each | 1 day (분산 가능) | SQL, Coding, DE Domain, System Design, Googleyness |
| 5 | Hiring Committee Review | Internal (지원자 비참여) | 2~4주 | 패킷 리뷰, hire/no-hire 투표 |
| 6 | Team Matching | 매니저 인터뷰(콜) | 1~4주 | 특정 팀과의 매칭 |
| 7 | Offer & Comp Committee | Internal | 약 1주 | 최종 보상 패키지 확정 |
사용자 검색 쿼리 테이블(user_id, query_text, query_timestamp)이 있다. 세션 간 비활동 30분을 기준으로 세션을 나눌 때, 서로 다른 두 세션에서 동일한 쿼리를 검색한 사용자를 찾아 user_id, 반복된 쿼리, 세션 간 간격(일 단위)을 반환하라.
LAG와 타임스탬프 차이로 세션을 나누는 CTE를 먼저 만들고, 사용자·쿼리로 그룹핑한 뒤 반복된 것만 필터링하는 방식으로 접근한다. 코드를 바로 치기 전에 세션화 로직을 먼저 말로 설명하는 것이 채점 포인트다.
"먼저 LAG로 연속된 쿼리 사이 간격을 계산해 세션을 나누겠습니다. 30분을 넘으면 새 세션으로 봅니다."라고 구조를 먼저 설명한 뒤 코드를 작성한다.
"이건 Python 스크립트로 짜서 pandas로 가져오겠습니다" — Google은 BigQuery 스케일에서 동작하므로 SQL이 기대되는 매체다.
(user_id, event_timestamp, event_type) 형태의 스트림을 받는다. 임의 시점에 최근 1시간 동안 이벤트 수 기준 top K 사용자를 반환할 수 있는 클래스를 구현하라. 스트림은 하루 수백만 건 규모일 수 있다.
슬라이딩 윈도우 + top-K 문제로, 시간 윈도우 관리에는 deque류 구조를, 랭킹에는 크기 K의 힙을 사용해 두 요소를 결합해야 한다.
"윈도잉과 랭킹 두 부분으로 나뉩니다. 윈도잉은 타임스탬프로 인덱싱된 deque로, 랭킹은 크기 K의 최소 힙으로 처리하겠습니다. 코드 작성 전에 시간 복잡도를 먼저 생각해보겠습니다."
"이건 그냥 BigQuery에 넣고 SQL로 돌리겠습니다" — 프로덕션에서는 맞는 답일 수 있어도 이 라운드에서는 알고리즘 구현 능력을 보는 것이므로 오답으로 취급된다.
일별 매출 리포팅 파이프라인을 어떻게 만들지 설명하라. 그 다음 이를 스트리밍 우선 아키텍처로 마이그레이션한다면 무엇이 바뀌고, 무엇이 그대로이며, 무엇이 더 어려워지는지 설명하라.
시스템 설계가 아닌 도메인 추론 질문이다. 배치와 스트리밍 패러다임을 비교하며 exactly-once 시맨틱스, 워터마크, 지연 도착 데이터, 운영상 트레이드오프를 언급해야 한다.
"배치 버전은 하루 종료 시점에 Spark 잡으로 원시 이벤트를 날짜별 파티션 매출 팩트 테이블로 집계합니다. 스트리밍으로 가면 워터마크, 지연 이벤트, 멱등 쓰기를 고려해야 하고, 이벤트가 순서 없이 도착할 때의 정확성이 가장 어려운 부분입니다."
"스트리밍은 그냥 더 빠른 배치일 뿐입니다" — 스트리밍은 정확성 모델 자체가 다르며, 이렇게 말하면 실제로 스트리밍 시스템을 구축해본 적이 없다는 신호로 읽힌다.
"YouTube 시청 시간 분석용 데이터 파이프라인을 설계하라" / "검색 쿼리 분석 플랫폼의 데이터 인프라를 설계하라" / "사용자 행동 기반 맞춤 광고 타겟팅을 지원하는 시스템을 설계하라"
5~7분간 요구사항(데이터량, 지연 목표, 소비 주체)을 명확화하고, 3~5분 개략적 용량 추정 후, 10~15분 상위 아키텍처를 Ingestion→Processing→Storage→Serving 흐름으로 스케치하며 GCP 서비스명을 명시한다. 이후 인터뷰어가 지목한 부분을 10~15분 심화하고, 마지막 5분은 트레이드오프(예: Dataflow vs Dataproc)를 설명한다. 알아둘 핵심 GCP 서비스: BigQuery(웨어하우징 — 파티셔닝/클러스터링/슬롯 할당/구체화 뷰), Dataflow(Apache Beam, 스트리밍·배치 ETL), Pub/Sub(메시징·스트리밍 수집), Composer(managed Airflow), Cloud Storage(데이터 레이크), Dataproc(managed Spark), Bigtable(저지연 키-값 조회), Looker(서빙).
"데이터 볼륨은 얼마나 되나요? 지연 목표는? 누가 얼마나 자주 이 데이터를 소비하나요?"로 5~7분간 요구사항부터 확인한다.
"배치와 스트리밍 파이프라인을 분리한 Lambda 아키텍처를 만들겠습니다" — 예전엔 기본 답이었지만, Beam 통합 모델 등장 이후 Google은 이를 선호하지 않는다는 것이 필자의 관찰이다. 물어보면 Lambda를 언급하되, 기본안으로는 통합 Beam(Kappa 스타일)을 제안하는 편이 낫다.
"요구사항이 불명확한 프로젝트를 진행한 경험과 어떻게 범위를 정했는지 말해달라" / "시간 압박 속에서 완전히 새로운 것을 배워야 했던 경험" / "기술적 접근에 대해 동료와 의견이 갈렸던 경험과 해결 과정" / "본인이 틀렸던 경험과 무엇이 생각을 바꿨는지"
많은 지원자가 '소프트한 라운드'로 오해해 준비를 소홀히 하지만, 실제로는 HC에 전달되는 노트가 강한 기술 점수를 뒤집을 수 있는 라운드다. 특히 "틀렸던 경험"에 "별로 크게 틀린 적이 없다"거나 지나치게 사소한 예시로 답하면 좋은 평가를 받기 어렵다는 것이 필자의 관찰이다. 실제 이해관계가 걸린 기술적/판단적 실수를 골라, 어떻게 깨달았고 무엇을 바꿨는지까지 이야기하는 편이 강한 답변으로 여겨진다.
필자의 관찰로는 전체 평가에서 대략 20~30% 비중을 차지하는 것으로 보이며(원문 여러 곳에서 20%와 30%가 혼재해 언급됨 — 정확한 공식 수치라기보다 저자의 체감치로 이해해야 한다), 기술 라운드 점수가 좋아도 이 신호가 약하면 HC 단계에서 뒤집힐 수 있다.
체크리스트가 아니라 인터뷰어가 피드백 패킷에 기록하는 일종의 '느낌'이며, HC가 이 노트를 근거로 동점 상황을 가른다는 것이 필자의 설명이다. 핵심은 네 가지 특성으로 요약된다: 지적 겸손(모른다고 인정하고 어떻게 알아낼지 말하는 태도), 모호함에 대한 편안함(불분명한 문제를 스스로 스코핑하는 능력), 성실함/책임감(요청받지 않아도 테스트를 추가하고 문서를 쓰고 데이터 품질을 챙기는 태도), 협업(합의를 이끌어내는 방식으로 의사결정에 참여하는 태도).