맵 리듀스 (Map Reduce) 패턴
1. 개요
맵리듀스(MapReduce) 패턴은 대용량 데이터(Big Data)를 분산 환경에서 효율적으로 처리하기 위한 대표적인 병렬 처리 패턴이다. 구글(Google)이 대규모 데이터 분석을 위해 제안하였으며, 현재 Hadoop, Spark 등 다양한 빅데이터 플랫폼의 핵심 처리 구조로 활용된다.
2. 기본 개념 및 목적
- 개념: 대용량 데이터를 처리하는 작업을 두 가지 주요 함수, 맵(Map)과 리듀스(Reduce)로 나누어 처리하는 방식이다. 즉, "Divide and Conquer(분할 정복)" 개념을 데이터 처리에 적용한 구조이다.
- 목적: 대용량의 비정형 데이터를 여러 대의 저렴한 컴퓨터(노드)에 분산하여 저장하고 처리함으로써, 데이터 처리의 확장성, 내결함성, 경제성을 확보할 수 있다.
- 입력/출력 형태: 모든 데이터는 (키, 값) 쌍의 형태로 처리된다.
3. 구조 및 동작 원리
3.1 구성 요소
| 구성 요소 | 역할 |
| Split | 입력 데이터를 병렬로 처리할 수 있는 더 작은 조각으로 분리 |
| Map 함수 | 조각으로 분리된 입력 데이터를 (Key, Value) 쌍으로 생성 |
| Shuffle / Sort 단계 | 같은 Key를 가진 데이터끼리 그룹화 및 정렬 |
| Reduce 함수 | 그룹화된 데이터를 집계하여 최종 결과 생성 |

3.2 주요 동작 단계
3.2.1 Split 단계
Split 함수는 입력 데이터를 작은 조각으로 분리한다.
- 입력: 처리할 대용량 데이터 셋(파일, 레코드 등).
- 처리: 입력 데이터를 작은 조각(Split)으로 분리.
3.2.2 Map 단계
Map 함수는 분리된 입력 데이터를 받아 새로운 형태의 (중간 키, 중간 값) 쌍으로 변환한다.
- 입력: 분리된 입력 데이터.
- 처리: 데이터를 분석하여 원하는 정보가 담긴 (중간 키, 중간 값) 쌍 생성.
3.2.3 Shuffle & Sort 단계
맵 단계의 출력을 리듀스 단계로 전달하기 위해 데이터를 재배치하고 정렬한다.
- 셔플(Shuffle): 모든 맵 태스크의 출력 중, 동일한 중간 키를 가진 값들을 그룹화.
- 정렬(Sort): 리듀스 태스크로 전달되기 전에, 중간 키를 기준으로 정렬.
3.2.4 Reduce 단계
리듀스 함수는 셔플 단계에서 전달받은 동일한 키를 가진 값들의 목록을 모아 최종 결과를 생성한다.
- 입력: (중간 키, 값들의 목록) 쌍.
- 처리: 주어진 값들의 목록을 통합, 집계, 요약하여 최종 (출력 키, 출력 값) 쌍 생성.
4. 특징
| 구분 | 내용 |
| 장점 | 대용량 데이터를 병렬로 분산 처리하여 효율적. 노드를 추가함으로써 수평적으로 확장이 매우 용이. 노드에 오류가 발생해도 다른 노드에서 작업을 재실행하여 자동 복구 가능. |
| 단점 | 반복적인 처리나 실시간 스트리밍 처리에는 비효율적. 맵과 리듀스 사이의 디스크 I/O (입출력)가 많아 지연 시간 발생. 프로그래밍 모델 자체가 단순 배치 처리에 초점. |
| 적용 환경 | Hadoop Distributed File System(HDFS), Spark 등 |
| 적용 업무 | 로그 분석, 통계 집계, 데이터 마이닝, 텍스트 분석 등 |
5. 결론 (시사점)
맵리듀스 패턴은 대규모 데이터를 분산·병렬 처리하여 효율적으로 집계하는 핵심 기술로, 현대의 빅데이터 플랫폼 및 클라우드 데이터 파이프라인의 기초가 된다. 최근에는 메모리 기반 처리(Spark, Flink 등)로 발전하여 실시간성과 성능을 개선한 차세대 데이터 처리 구조로 진화하고 있다.
'IT Tech.' 카테고리의 다른 글
| (AI) 자기지도학습 기반 머신러닝(Self-Supervised Learning) (0) | 2025.12.07 |
|---|---|
| (보안) 오픈소스 소프트웨어 활용에 따른 보안 위협과 해결방안 (0) | 2025.11.29 |
| (소프트웨어공학) 오케스트레이터 패턴 vs. 코레오그래피 패턴 (0) | 2025.11.29 |
| (AI) 추론 기법 비교 Chain-of-thought vs. ReAct vs. Reflexion (0) | 2025.11.28 |
| (AI) TTFT vs. TPOT vs. Goodput (0) | 2025.11.20 |