← 개념서모바일 버전
3과목 · 빅데이터 모델링·2

분석 환경 구축

분석 도구(R·Python·SAS·SPSS) 비교, 하둡 생태계와 분산 처리 환경, 데이터 저장 구조와 분석 데이터 분할 전략을 다룹니다.

분석 도구 비교

도구 성격 강점 약점
R 오픈소스, 통계 전용 언어 통계 분석·시각화 패키지(CRAN)가 압도적, 논문 기반 최신 기법 대용량 처리·범용 프로그래밍에 약함
Python 오픈소스, 범용 언어 전처리·머신러닝·딥러닝·웹 연계까지 하나로(pandas·scikit-learn·TensorFlow) 전통 통계 기법 패키지는 R보다 적음
SAS 상용 대용량 처리 안정성, 금융·제약 등 검증된 신뢰성, 기술 지원 고가의 라이선스, 유연성 낮음
SPSS 상용 GUI 기반으로 비전공자도 사용 가능 고가, 고급 기법 확장 제약
Excel 상용 접근성, 간단한 기술통계·차트 데이터 규모·재현성 한계

시험 포인트는 오픈소스 = R·Python, 상용 = SAS·SPSS의 구분과 "R은 통계·시각화, Python은 범용·머신러닝"이라는 성격 대비입니다. "R은 상용 통계 패키지"라는 선택지는 오답입니다.

주요 라이브러리 대응도 함께 봅니다.

목적 R Python
데이터 처리 dplyr, data.table pandas, NumPy
시각화 ggplot2 matplotlib, seaborn
머신러닝 caret, randomForest scikit-learn
딥러닝 keras(R) TensorFlow, PyTorch

분산 처리 환경 — 하둡 생태계

구성요소 역할
HDFS 분산 파일 시스템. 데이터를 블록으로 쪼개 여러 노드에 복제(기본 3) 저장
MapReduce 분산 병렬 처리 프레임워크. Map(분할·매핑) → Shuffle → Reduce(집계)
YARN 클러스터 자원 관리·작업 스케줄링
Hive HDFS 데이터에 SQL 유사 질의(HiveQL). 배치 분석용
Pig 데이터 흐름 언어(Pig Latin)로 대용량 처리
HBase HDFS 기반 컬럼 지향 NoSQL, 실시간 랜덤 읽기/쓰기
Sqoop RDB ↔ 하둡 간 정형 데이터 전송
Flume / Kafka 로그·스트림 데이터 수집(Kafka는 분산 메시지 큐)
Oozie 하둡 작업 워크플로 스케줄러
Zookeeper 분산 코디네이션(설정·이름·동기화 관리)
Spark 인메모리 기반 분산 처리. RDD·DataFrame, MLlib·Spark SQL·Streaming

MapReduce vs Spark: MapReduce는 단계마다 디스크에 쓰는 디스크 기반 배치, Spark는 중간 결과를 메모리에 두는 인메모리 처리로 반복 연산(머신러닝)에서 수십 배 빠릅니다. "Spark는 디스크 기반이라 느리다"는 오답입니다.

데이터 저장·처리 구조

구분 정의 특징
데이터 웨어하우스(DW) 주제 지향으로 통합·정제된 정형 데이터 저장소 Schema-on-Write, 시계열적·비휘발적
데이터 마트(DM) 특정 부서·주제 목적의 소규모 DW 분석 목적별 추출
데이터 레이크 원천 데이터를 원본 그대로 저장(정형·반정형·비정형) Schema-on-Read
ODS 운영계 데이터를 통합한 중간 저장소 실시간·단기

ETL(Extract-Transform-Load) 은 적재 전에 변환하고, ELT는 적재 후에 변환합니다. 데이터 레이크는 통상 ELT와 짝을 이룹니다.

분석 환경 구축 시 고려사항

  1. 데이터 규모와 처리 방식 — 배치인가 실시간(스트리밍)인가
  2. 확장성 — Scale-up(장비 성능 향상) vs Scale-out(노드 추가). 분산 환경은 Scale-out
  3. 재현성 — 코드·패키지 버전 관리, 노트북·컨테이너(Docker)
  4. 보안 — 개인정보 비식별화, 접근 권한 분리
  5. 클라우드 활용 — IaaS·PaaS·SaaS, 온디맨드 자원 확보

분석 데이터 분할 전략

전략 방법 쓰는 상황
단순 무작위 분할 전체에서 무작위 표본 추출 데이터가 충분하고 클래스가 균형일 때
계층적 분할(Stratified) 클래스(또는 주요 층) 비율을 유지하며 분할 불균형 데이터, 소수 클래스 보존
시간 기반 분할 과거로 학습, 미래로 평가 시계열·예측 모형. 미래 데이터로 학습하면 안 됨
그룹 기반 분할 같은 고객·환자를 한쪽에만 배치 개체 단위 중복이 있는 데이터

시계열 데이터를 무작위로 분할하면 안 됩니다. 미래 정보가 훈련 집합에 섞이는 데이터 누출(data leakage) 이 되어 성능이 과대평가됩니다. 시계열은 항상 시점 기준으로 자릅니다.

불균형 데이터는 분할 이후 훈련 데이터에만 표본 조정을 적용합니다.

방법 내용 주의
과소표집(Under-sampling) 다수 클래스를 줄임 정보 손실
과대표집(Over-sampling) 소수 클래스를 늘림 과대적합 위험
SMOTE 소수 클래스 관측치의 KNN 사이를 보간해 합성 데이터 생성 단순 복제가 아님

"SMOTE는 소수 클래스를 그대로 복제한다"는 오답입니다. SMOTE는 이웃과의 선형 보간으로 새로운 관측치를 합성합니다. 그리고 표본 조정은 평가 데이터에는 절대 적용하지 않습니다.

전처리·스케일링 환경

방법 결과
정규화(Min-Max) (x - 최솟값) / (최댓값 - 최솟값) 0~1 범위
표준화(Z-score) (x - 평균) / 표준편차 평균 0, 표준편차 1

거리 기반 기법(KNN·K-평균·SVM·주성분분석·신경망)은 스케일에 민감하므로 스케일링이 필수입니다. 반면 의사결정나무·랜덤포레스트 같은 분할 기반 기법은 스케일링이 필요 없습니다.

스케일링 기준값(평균·표준편차·최대·최소)은 훈련 데이터에서만 계산해 검증·평가에 그대로 적용합니다. 전체 데이터로 계산하면 이미 누출입니다.