핵심 인사이트 (3줄 요약)
- 본질: 아파치 스파크(Apache Spark)는 하둡의 디스크 기반 처리를 개선하여, 데이터를 메모리(In-memory)에 올려 대규모로 병렬 처리하는 분산 컴퓨팅 프레임워크다.
- 가치: RDD(Resilient Distributed Dataset)라는 추상화된 데이터 단위를 통해 장애 시 스스로 복구하며, 기존 하둡 맵리듀스보다 최대 100배 빠른 분석 속도를 제공한다.
- 판단 포인트: 반복적인 머신러닝 학습, 실시간 스트리밍 처리, 대화형 데이터 분석 등 속도가 생명인 빅데이터 작업에 표준으로 사용된다.
Ⅰ. 개요 및 필요성
빅데이터의 조상 격인 하둡(Hadoop)은 데이터를 처리할 때마다 느린 하드디스크에 썼다 읽었다를 반복했다. 이는 복잡한 계산이나 반복 작업에서 치명적인 속도 저하를 일으켰다. 스파크는 "데이터를 메모리에 다 올려놓고 계산하면 어떨까?"라는 생각에서 출발했다. 데이터를 여러 대의 서버 메모리에 나누어 담고 동시에 연산함으로써 비교할 수 없는 속도를 달성했다. 이제 스파크는 단순한 분석 도구를 넘어 실시간 처리(Streaming), SQL 조회, 그래프 분석, AI 학습을 모두 담은 빅데이터의 '맥가이버 칼'이 되었다.
📢 섹션 요약 비유: 하둡이 매번 도서관(디스크)에 가서 책을 한 권씩 빌려보고 반납하는 방식이라면, 스파크는 필요한 책을 전부 내 책상(메모리)에 쌓아두고 한꺼번에 읽는 방식이다.
Ⅱ. 아키텍처 및 핵심 원리
1. RDD (Resilient Distributed Dataset)
스파크의 핵심 데이터 모델로 3가지 특징을 가진다.
- Resilient (탄력적): 데이터가 손실되어도 계보(Lineage)를 기억하여 자동으로 다시 계산해 복구한다.
- Distributed (분산): 여러 노드에 데이터를 나누어 저장한다.
- Dataset (데이터셋): 읽기 전용의 불변 데이터 집합이다.
2. 실행 메커니즘: Lazy Evaluation (지연 연산)
- 스파크는 명령을 받을 때마다 실행하지 않고, '실행 계획(DAG)'만 짜둔다.
- 실제 결과가 필요한 시점(Action)에 최적의 경로로 한꺼번에 계산하여 효율을 극대화한다.
[ Transformation (Map, Filter) ] ──▶ [ Transformation (Join) ] ──▶ [ Action (Collect, Save) ]
(실행 계획만 수립) (최적화 수행) (그제서야 실제 계산 실행)
📢 섹션 요약 비유: 스파크는 '똑똑한 요리사'다. 손님이 주문할 때마다 주방으로 달려가지 않고, 모든 주문을 다 들은 뒤에 재료를 한꺼번에 다듬어 가장 효율적인 순서로 요리(지연 연산)를 시작한다.
Ⅲ. 비교 및 연결
하둡 맵리듀스 vs 아파치 스파크
| 비교 항목 | 하둡 맵리듀스 (MapReduce) | 아파치 스파크 (Spark) |
|---|---|---|
| 처리 속도 | 느림 (디스크 I/O 발생) | 매우 빠름 (인메모리 처리) |
| 처리 방식 | 일괄 처리 (Batch) 전용 | 일괄 + 실시간 + 인터랙티브 |
| 난이도 | 높음 (Java 코딩 복잡) | 낮음 (Python, Scala, SQL 지원) |
| 장애 복구 | 체크포인트 기반 복구 | RDD Lineage 기반 자동 재계산 |
| 비용 | 저렴 (일반 HDD 서버) | 비쌈 (고용량 RAM 서버 필요) |
📢 섹션 요약 비유: 하둡은 느리지만 튼튼한 '짐꾼 말'이고, 스파크는 엄청나게 빠르고 똑똑하지만 비싼 사료(RAM)를 많이 먹는 '슈퍼카'와 같다.
Ⅳ. 실무 적용 및 기술사 판단
기술사 핵심 포인트:
- DAG (Directed Acyclic Graph): 스파크가 작업을 최적화하기 위해 그리는 비순환 그래프의 원리를 설명해야 한다.
- 셔플링 (Shuffling): 데이터가 노드 간에 이동할 때 발생하는 부하를 줄이는 것이 성능 튜닝의 핵심임을 강조한다.
- DataFrame/DataSet API: 현대의 스파크는 로우 레벨인 RDD보다는 SQL과 유사하여 사용이 편하고 최적화가 더 잘 된 DataFrame을 권장한다는 점을 언급한다.
📢 섹션 요약 비유: 스파크는 '팀 플레이의 대가'다. 대장이 작업 지시서(DAG)를 짜서 각 대원(Worker Node)에게 업무를 배분하고, 한 명이 쓰러지면 다른 대원이 그 일을 대신 처리(Lineage)한다.
Ⅴ. 기대효과 및 결론
스파크는 빅데이터 처리를 '고통'에서 '즐거움'으로 바꾼 혁신적인 프레임워크다. 이제는 데이터 엔지니어링뿐만 아니라 데이터 과학 분야에서도 없어서는 안 될 필수 역량이 되었다. 기술사 시험에서는 하둡과의 성능 차이 근거(In-memory, DAG)를 명확히 제시하고, 스파크 생태계(Spark SQL, MLlib, GraphX)를 폭넓게 언급하여 종합적인 통찰력을 보여주는 것이 중요하다.
📢 섹션 요약 비유: 스파크는 IT 세상의 '광속 엔진'이다. 아무리 방대한 데이터 우주라도 스파크라는 엔진만 있다면 빛의 속도로 탐험하며 보물(인사이트)을 찾아낼 수 있다.
📌 관련 개념 맵
| 개념 | 연관 키워드 | 관계 |
|---|---|---|
| RDD | 불변성, 분산, 복구 | 스파크를 지탱하는 가장 기초적인 데이터 단위 |
| DAG | 실행 계획, 최적화 | 연산 과정을 최적의 경로로 그려주는 지도 |
| Spark Streaming | 실시간 처리, 마이크로 배치 | 실시간 데이터를 스파크로 분석하는 모듈 |
| Driver / Worker | 마스터-슬레이브 구조 | 스파크 클러스터를 운영하는 역할 분담 |
👶 어린이를 위한 3줄 비유 설명
- 아주 많은 숙제를 혼자 하지 않고, 여러 친구가 각자 자기 책상(메모리)에서 동시에 푸는 방법이에요.
- 매번 공책에 썼다 지웠다 하지 않고, 머릿속으로 계산하니까 훨씬 빨라요.
- 친구 한 명이 아파서 학교에 못 와도, 다른 친구가 그 친구가 할 일을 대신 해줄 수 있는 똑똑한 시스템이랍니다.