🎁 지금 가입하면 온라인 AI를 최대 30분 무료로 사용할 수 있습니다. 신용카드는 필요하지 않습니다.

Databricks 인터뷰 질문과 답변: Spark, Delta Lake, 파이프라인에 관한 25가지 질문

August 31, 2026
Spark 셔플과 스큐, Delta Lake, MERGE, OPTIMIZE, Unity Catalog, 메달리온 설계, 느린 작업 시나리오에 대한 답변이 포함된 Databricks 인터뷰 질문.
Databricks 인터뷰 질문과 답변: Spark, Delta Lake, 파이프라인에 관한 25가지 질문
databricks 인터뷰 질문
databricks 인터뷰 질문과 답변
delta lake 인터뷰 질문
spark 인터뷰 질문 databricks

Databricks 면접은 보통 Apache Spark(잡이 어떻게 실행되고 왜 느린지), Delta Lake(테이블을 안정적으로 만드는 요소), 그리고 플랫폼(클러스터, 잡, 거버넌스)을 함께 다룹니다. 가장 강한 답변은 각 개념을 스큐 조인, 작은 파일, 안전하게 재실행해야 하는 파이프라인 같은 실제 문제와 연결합니다.

Databricks는 제품 이름을 자주 바꾸고 재편하므로, 본인이 사용해 본 이름(예: 현재 Lakeflow 제품군에 포함된 Delta Live Tables)을 밝히고 채용 공고에서 스택을 확인하세요.

아래는 답변과 함께 정리한 25개의 질문입니다.

플랫폼과 아키텍처

1. Databricks란 무엇이고, 레이크하우스란 무엇인가요?

Databricks는 Apache Spark를 기반으로 구축된 클라우드 데이터 및 AI 플랫폼입니다. 레이크하우스는 데이터를 클라우드 객체 스토리지에 개방형 포맷으로 저장하면서 그 위에 웨어하우스 수준의 안정성과 거버넌스를 더한 것으로, 데이터 사본 하나로 엔지니어링, 분석, 머신러닝을 모두 지원할 수 있습니다.

2. 올퍼포즈 클러스터, 잡 클러스터, SQL 웨어하우스의 차이는 무엇인가요?

올퍼포즈 클러스터는 대화형 작업과 개발용입니다. 잡 클러스터는 예약된 잡을 위해 시작되고 끝나면 종료되므로 비용이 더 적게 듭니다. SQL 웨어하우스는 SQL 및 BI 쿼리에 최적화된 컴퓨팅입니다.

3. 비용은 어떻게 관리하나요?

프로덕션에는 잡 클러스터를 사용하고, 대화형 클러스터에는 자동 종료를 설정하고, 합리적인 한도 내에서 오토스케일링을 적용하고, 인스턴스 유형을 적절히 맞추고, 장애 허용이 가능한 작업에는 스팟 인스턴스를 사용하고, 클러스터 정책으로 사용자가 만들 수 있는 것을 제한하고, 비용 보고를 위해 태그를 붙입니다.

4. Unity Catalog란 무엇인가요?

데이터 및 AI 자산을 위한 거버넌스 계층입니다. 3단계 네임스페이스(카탈로그, 스키마, 테이블)를 제공하고, 워크스페이스 전반에 걸친 중앙 접근 제어, 계보, 감사를 지원합니다.

Delta Lake

5. Delta Lake란 무엇이고, 왜 일반 Parquet 대신 사용하나요?

Delta Lake는 Parquet 파일에 트랜잭션 로그를 추가한 테이블 포맷입니다. ACID 트랜잭션, 스키마 강제 및 진화, 타임 트래블, 효율적인 업데이트와 삭제를 제공합니다. 일반 Parquet에는 트랜잭션이 없어서 쓰기가 실패하면 부분 데이터가 남을 수 있고, 리더가 일관되지 않은 상태를 볼 수 있습니다.

6. Delta 트랜잭션 로그는 어떻게 동작하나요?

각 커밋은 _delta_log 폴더에 JSON 항목을 추가하며, 주기적으로 체크포인트를 생성합니다. 로그에는 각 버전에서 테이블에 포함된 데이터 파일이 나열됩니다. 리더는 이를 사용해 일관된 스냅샷을 보고, 라이터는 낙관적 동시성 제어를 사용해 다른 커밋과 충돌하면 재시도하거나 실패합니다.

7. 타임 트래블이란 무엇인가요?

감사, 디버깅, 롤백을 위해 버전 번호나 타임스탬프로 테이블의 이전 버전을 쿼리하는 것입니다.

SELECT * FROM sales VERSION AS OF 12;
RESTORE TABLE sales TO VERSION AS OF 12;

8. Delta로 데이터를 업서트하려면 어떻게 하나요?

MERGE INTO를 사용합니다:

MERGE INTO customers t
USING updates s ON t.id = s.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;

소스에 키당 행이 하나만 있는지 확인하세요. 그렇지 않으면 머지가 실패하거나 잘못된 결과가 나옵니다.

9. OPTIMIZE와 VACUUM은 무엇을 하나요?

OPTIMIZE는 많은 작은 파일을 더 큰 파일로 압축해 읽기 속도를 높입니다. VACUUM은 테이블에서 더 이상 참조되지 않고 보존 기간보다 오래된 파일을 삭제해 스토리지를 확보하지만 타임 트래블이 제한됩니다. 다른 잡이 아직 이전 버전을 읽을 수 있는 동안에는 보존 기간을 너무 짧게 설정하지 마세요.

10. 빠른 쿼리를 위해 데이터를 어떻게 배치하나요?

쿼리에서 자주 필터링하는 카디널리티가 낮은 컬럼에만 파티셔닝하고, 파티션은 충분히 크게 유지하세요. 과도한 파티셔닝은 많은 작은 파일을 만듭니다. 다른 컬럼에는 Z-ordering 또는 리퀴드 클러스터링(최신 방식)을 사용하세요. 이는 데이터를 클러스터링해 쿼리가 파일을 건너뛸 수 있게 해줍니다.

Spark 기본 개념

11. 트랜스포메이션과 액션이란 무엇이고, 지연 평가란 무엇인가요?

filter나 select 같은 트랜스포메이션은 계획만 세우고 실행하지 않습니다. count나 write 같은 액션이 실행을 트리거합니다. Spark가 전체 계획을 먼저 파악하기 때문에 이를 최적화할 수 있습니다.

12. 셔플이란 무엇이고, 왜 비용이 많이 드나요?

셔플은 조인, groupBy, distinct에서처럼 같은 키를 가진 행들이 한곳에 모이도록 네트워크를 통해 익스큐터 간에 데이터를 이동시키는 것입니다. 디스크와 네트워크 I/O가 발생하므로, 셔플을 줄이는 것이 작업 속도를 높이는 주요 방법입니다.

13. Spark는 두 테이블을 어떻게 조인하며, 어떻게 속도를 높일 수 있나요?

기본적으로 대규모 조인은 셔플(정렬-병합) 조인을 사용합니다. 한 테이블이 작으면 브로드캐스트 조인이 해당 테이블을 모든 익스큐터에 전송하여 큰 테이블의 셔플을 피합니다.

from pyspark.sql.functions import broadcast
df = big.join(broadcast(small), "id")

14. 데이터 스큐란 무엇이고, 어떻게 해결하나요?

소수의 키가 대부분의 행을 차지해서 몇 개의 태스크가 나머지보다 훨씬 오래 걸리는 현상입니다. Spark UI에서 특정 태스크가 오래 실행되는 것이 징후입니다. 해결책은 적응형 쿼리 실행의 스큐 처리, 키에 솔팅 적용, 작은 쪽 브로드캐스트, 또는 스큐를 유발하는 null이나 기본 키를 필터링하는 것입니다.

15. 적응형 쿼리 실행(AQE)이란 무엇인가요?

Spark가 실제 통계를 사용해 실행 중에 계획을 조정하는 것입니다. 작은 셔플 파티션을 병합하고, 조인 전략을 전환하며, 스큐가 있는 파티션을 분할할 수 있습니다. 최근 버전에서는 기본적으로 활성화되어 있습니다.

16. repartition과 coalesce의 차이는 무엇인가요?

repartition은 파티션을 늘리거나 줄일 수 있고 전체 셔플을 수행합니다. coalesce는 파티션을 줄이기만 하고 전체 셔플을 피하므로 더 저렴하지만 파티션이 불균등해질 수 있습니다.

17. 언제 DataFrame을 캐시해야 하나요?

작업에서 동일한 DataFrame을 여러 번 재사용하고 다시 계산하는 비용이 클 때입니다. 한 번만 사용하는 것은 캐시하지 말고, 사용이 끝나면 캐시를 해제하세요.

18. 왜 Python UDF보다 내장 함수를 선호하나요?

내장 함수는 JVM 내부에서 실행되고 최적화될 수 있습니다. Python UDF는 JVM과 Python 사이에서 데이터를 이동시키고 옵티마이저가 파악할 수 없어서 더 느립니다. 가능하면 내장 함수나 pandas UDF를 사용하세요.

파이프라인

19. 메달리온 아키텍처란 무엇인가요?

계층형 설계로, 브론즈는 원시 수집 데이터를, 실버는 정제되고 통합된 데이터를, 골드는 리포팅에 바로 쓸 수 있는 비즈니스 수준의 집계를 담습니다. 품질 검사가 어디서 일어나는지 명확히 하고, 이전 계층에서 이후 계층을 재구축할 수 있게 해줍니다.

20. Auto Loader란 무엇인가요?

클라우드 스토리지에 새 파일이 도착하면 증분 방식으로 효율적으로 수집하는 기능으로, 처리한 파일을 추적하며 스키마 추론과 진화를 지원합니다.

21. Structured Streaming은 장애와 exactly-once를 어떻게 처리하나요?

진행 상황과 상태를 저장하는 체크포인트를 사용하므로, 재시작된 쿼리는 중단된 지점부터 이어서 진행됩니다. 재생 가능한 소스와 Delta 같은 멱등적이거나 트랜잭션적인 싱크를 사용하면 종단 간 exactly-once 결과를 얻을 수 있습니다.

22. 파이프라인을 안전하게 재실행할 수 있게 하려면 어떻게 하나요?

쓰기를 멱등적으로 만드세요. 키에 MERGE를 사용하거나, 특정 파티션을 덮어쓰거나, 실행 ID를 사용해 중복을 피하세요. 작업의 입력 범위를 명시적으로 유지하고 행 수를 로깅해서 결과를 확인하세요.

23. 데이터 품질 검사는 어떻게 하나요?

파이프라인에서 기대값이나 제약 조건(예: Delta 제약 조건이나 선언적 파이프라인 기대값)을 사용하고, 행 수, null, 유일성을 검증하며, 다운스트림 사용자와의 계약에 따라 전체 로드를 실패시키는 대신 잘못된 행을 격리하세요.

시나리오

24. 20분 걸리던 작업이 이제 세 시간 걸립니다. 어떻게 하시겠어요?

  1. 두 실행의 Spark UI를 비교합니다. 어느 스테이지가 느려졌나요?
  2. 입력 크기와 테이블이 커졌는지 또는 레이아웃을 잃었는지(예: 많은 작은 파일) 확인합니다.
  3. 느린 스테이지에서 스큐와 디스크 스필 여부를 살펴봅니다.
  4. 워커 수 감소나 인스턴스 유형 변경 같은 클러스터 변화를 확인합니다.
  5. 코드나 Spark 설정의 변경, 새로운 조인이나 UDF 여부를 확인합니다.
  6. 원인을 해결하고(컴팩션, 브로드캐스트, 스큐 처리, 또는 사이징) 모니터링을 추가합니다.

25. 매일 JSON 파일을 수집해서 대시보드에 제공하는 파이프라인을 설계하세요.

"Auto Loader가 새 파일을 원시 데이터와 메타데이터가 담긴 브론즈 Delta 테이블로 읽어들입니다. 작업이 이를 파싱하고 정제해서 실버로 만들고, MERGE로 키 기준 중복을 제거합니다. 골드 테이블이 대시보드용으로 집계하고, 대시보드는 SQL 웨어하우스에서 읽습니다. Unity Catalog가 접근을 관리하고, 기대값이 잘못된 데이터를 잡아내며, 작업은 실패와 행 수 이상에 대한 알림과 함께 잡 클러스터에서 실행됩니다."

준비 방법

파일을 읽고, 다른 테이블과 조인하고, Delta에 쓰고, MERGE를 사용하는 노트북을 처음부터 끝까지 실행해 보세요. Spark UI를 열어 셔플과 스큐가 발생한 태스크를 찾아보세요. 파이프라인 속도를 개선하거나 문제를 해결한 경험을 수치와 함께 한 가지 스토리로 준비하세요. 관련 주제는 Kafka, Snowflake, Talend 가이드를 참고하세요.

답변은 소리 내어 연습하세요. 특히 성능 관련 질문은 그렇습니다. 지원자들은 진단 없이 튜닝 팁만 나열하는 경향이 있거든요. 모의 면접 스크립트를 보면 어디서 그런지 알 수 있습니다. 실시간 면접에서는 AI 도구 사용에 관한 회사 규칙을 따르세요.

YesToTheOffer와 함께 Databricks 인터뷰 답변을 연습하세요

모의 기술 인터뷰를 진행하고, 파이프라인 설계를 소리 내어 설명한 후, 녹취록을 검토하세요. 30분 무료, 구독 없음.

iOS & Android — 출시 예정
요금 보기