Engine (엔진) 이란?

jaewonnow_·2025년 12월 11일

DataEngineering

목록 보기
11/19

⭐ Engine = 어떤 입력을 받아서, 일정한 규칙에 따라 실제 작업을 수행하는 핵심 실행 모듈(Execution Core)

“엔진”이라는 단어는 어떤 시스템의 중심에서 실제 행동을 수행하는 실행기(executor)를 의미하는데 , 어디에서(어떤 객체) 수행되고, 어디에서(어떤 컴퓨터) 실행되는지를 정확히 구분하는 것이 중요하다.

여러 객체(여러 가지 역할 분해)들의 모임+

ex) Controller , Driver , Scheduler , Executor , Parser , Optimizer ,Mapper , Reducer... (수많은 역할들이 존재)

여러 컴퓨터(여러 곳에서 수행)(=클러스터) 가

협력하여 하나의 일(Client Job) 을 수행하는 구조

1) Database Engine(DB 엔진)

DB엔진은 SQL을 받아서 실제 DB 내부 작업을 수행하는 컴포넌트.

DB 엔진이 하는 일:

SQL Parser → SQL 해석

Optimizer → 최적 실행 계획 생성

Executor → 데이터를 읽고 join, filter, group-by 실행

Storage Engine → 데이터를 파일로 저장/로드

Transaction Manager → ACID 보장

Buffer Manager → 캐싱

DB 엔진: SQL을 → 실제 데이터 읽고 쓰는 동작으로 변환해 수행하는 실행 엔진

2) MapReduce Engine

Mapper/Reducer 태스크 분산 실행

Shuffle & Sort

실패 감지 및 재실행

HDFS에서 데이터 읽기

디스크 기반 중간 저장

사용자가 작성한 Mapper/Reducer 코드를 → 클러스터 전체에 배포해 실행하는 엔진

3) Spark Execution Engine

DAG 생성 및 최적화

Executor 할당

RDD/DataFrame Transformation 실행

인메모리 처리

Shuffle 관리

Fault tolerance

사용자의 DataFrame/SQL 코드를 → 클러스터에서 병렬 실행하는 엔진

4) Hive는 왜 엔진이 아닐까?

Hive는 “SQL을 실행 엔진에 넘기기 위한 컴파일러/쿼리 엔진”이지
자체적으로 일을 수행하지 않음.

그래서 Hive는 아래와 같이 구성됨:

HiveQL(SQL) → Logical Plan → Physical Plan → (MapReduce/Tez/Spark)

Hive는 실행 엔진이 아니라 ‘실행 엔진의 앞단에서 SQL을 해석하는 Layer’

따라서 Hive 자체는 engine이 아니지만,
Hive-on-Spark, Hive-on-Tez 형태로 "실행 엔진 위에서 동작하는 SQL 엔진"이라고 부르기도 함.

Engine의 본질적 정의

1) 입력을 받아
2) 그것을 어떠한 계획(execution plan)으로 변환하고
3) 실제 처리 동작을 수행하여
4) 결과를 만들어내는 실행 장치

엔진의 예시를 비교해서 보자

분야 무엇을 입력으로? 엔진이 실제로 하는 일

DB 엔진 SQL 쿼리 데이터 읽기/Join/Aggregation/Transaction

MapReduce 엔진 Mapper/Reducer 코드 + 파일 태스크 분산/Shuffle/정렬/병렬 실행

Spark 엔진 RDD, DataFrame 코드 DAG 실행, 인메모리 병렬 처리

검색 엔진 사용자의 검색어 문서 검색, 랭킹

게임 엔진 게임 로직/자원 렌더링, 물리 엔진 실행

입력 → 실제 동작 → 결과

사용자가 가속 페달(입력)을 밟으면

엔진이 연료를 태우고(실행)

바퀴를 돌리는 힘(결과)을 만들어냄

컴퓨터 구조에서도 “입력받아서 실제로 실행하는 핵심 모듈”을 엔진이라 부르는 것.

최종 요약

엔진(engine)이란?

사용자의 명령 또는 코드를 받아,
실제 작업을 수행해 결과를 만들어내는 핵심 실행기(execution core).

DB 엔진 → SQL 실행

MapReduce 엔진 → MR job 분산 실행

Spark 엔진 → DAG 기반 분산 처리

Hive → SQL compiler (엔진 아님)

Hive-on-Spark → Spark가 엔진

Hive-on-MR → MR이 엔진

엔진(engine) = 컨트롤(계획·스케줄링) + 실행(작업 수행)을 모두 포함하는 실행 시스템 전체를 말한다.

컨트롤만 있는 것은 엔진이 아님

실행만 있는 것도 엔진이 아님

계획 + 스케줄링 + 실행 + 관리 + 복구
이 전부가 함께 있는 시스템이 “엔진”

그래서 Spark, MapReduce, DBMS 엔진 등은 모두 컨트롤 + 실행을 포함한다.

profile
0 to 100 Data Engineer

0개의 댓글