데이터 과학과 빅데이터
1. 데이터 과학
데이터 과학의 필요성
사물 인터넷(IoT)으로 세상의 모든 것이 연결되면서 다양한 형태의 데이터가 끊임없이 생산되고 수집된다. 인공지능 기술도 방대한 데이터를 통한 학습이 필수적이다. 이러한 데이터에서 의미 있는 지식을 추출하는 기술이 데이터 과학이다.
데이터 과학의 개념
데이터를 수집·분석하여 숨겨진 지식을 발견하고 문제 해결에 활용하는 모든 과정과 기술
DIKW 계층 구조
┌──────────────────┐
│ 지혜(W) │ 통찰력 + 창의적
│ │ 아이디어 도출
├──────────────────┤
│ 지식(K) │ 규칙·패턴으로
│ │ 찾은 유용한 정보
├──────────────────┤
│ 정보(I) │ 목적에 맞게
│ │ 가공한 데이터
├──────────────────┤
│ 데이터(D) │ 관찰·측정으로
│ │ 수집한 사실/값
└──────────────────┘DIKW 실제 예시
| 계층 | 의미 | 예시 |
|---|---|---|
| 데이터 | 수집된 원시 값 | 매장별 일일 매출 숫자 |
| 정보 | 가공된 데이터 | “A매장이 B매장보다 매출 20% 높음” |
| 지식 | 패턴·규칙 발견 | “주말 오후 2~4시 구매율이 최고” |
| 지혜 | 의사결정 활용 | “주말 오후에 프로모션 집중 배치” |
데이터 과학자의 역량
드류 콘웨이(Drew Conway)의 데이터 과학 벤다이어그램에 따르면 세 가지 역량이 필요하다.
| 역량 | 설명 | 예시 |
|---|---|---|
| 컴퓨터 과학 | 프로그래밍, 알고리즘 | Python, R, SQL |
| 통계·수학 | 확률, 회귀분석 | 가설 검정, 분포 분석 |
| 도메인 지식 | 분석 대상 전문 이해 | 금융, 의료, 마케팅 |
세 역량이 겹치는 영역이 데이터 과학이며, 최근에는 시각화 기술도 중요한 자질로 평가된다.
데이터 과학의 대상이 반드시 빅데이터일 필요는 없다. 일반 데이터베이스 데이터도 분석 대상이 된다.
2. 빅데이터
빅데이터의 개념
기존 데이터베이스의 저장·관리 범위를 넘어서는 대규모의 다양한 데이터와 이를 처리하는 기술
좁은 의미로는 대규모 데이터 자체를 뜻하지만, 넓은 의미로는 저장·관리 기술과 분석 기술까지 포함한다.
빅데이터의 특징 (3V → 5V → 7V)
기본 3V
| 특징 | 의미 | 구체적 설명 |
|---|---|---|
| Volume | 데이터양 | TB 단위 이상의 대량 데이터 |
| Velocity | 속도 | 실시간 수집·분석 처리 필요 |
| Variety | 다양성 | 정형 + 반정형 + 비정형 |
확장 특징
| 특징 | 의미 |
|---|---|
| Value | 의사결정에 활용할 유용한 가치 |
| Veracity | 정확하고 신뢰할 수 있는 데이터 |
| Visualization | 이해하기 쉬운 시각적 표현 |
| Variability | 맥락에 따른 의미 변화 고려 |
데이터 형태 분류
| 형태 | 설명 | 예시 |
|---|---|---|
| 정형 | 고정된 스키마 존재 | RDB 테이블, CSV |
| 반정형 | 내부적 구조 포함 | XML, HTML, JSON |
| 비정형 | 정해진 구조 없음 | 텍스트, 이미지, 영상 |
빅데이터의 기술
┌──────────────────┐
│ 빅데이터 기술 │
├──────┬─────┬─────┤
│저장 │분석 │표현 │
├──────┼─────┼─────┤
│Hadoop│텍스트│ R │
│NoSQL │마이닝│ │
│ │오피니│ │
│ │언 │ │
│ │마이닝│ │
└──────┴─────┴─────┘저장 기술
| 기술 | 특징 |
|---|---|
| Hadoop | 자바 기반 오픈소스 분산 처리 프레임워크 |
| NoSQL | 관계 모델과 SQL을 사용하지 않는 DB |
Hadoop의 핵심 구성
| 구성 요소 | 역할 | 설명 |
|---|---|---|
| HDFS | 분산 파일 시스템 | 여러 서버에 데이터를 분산 저장 |
| MapReduce | 분산 처리 엔진 | 대규모 데이터를 병렬로 처리 |
┌─────────────────────┐
│ MapReduce │
│ (분산 처리 시스템) │
├─────────────────────┤
│ HDFS │
│ (분산 파일 시스템) │
├──┬──┬──┬──┬──┬──┬──┤
│N1│N2│N3│N4│N5│N6│N7│
└──┴──┴──┴──┴──┴──┴──┘
분산된 데이터 노드들MapReduce 처리 예시 - 단어 빈도 집계
[입력 데이터]
"hello world hello"
[Map 단계] 분할 후 키-값 생성
(hello, 1)
(world, 1)
(hello, 1)
[Shuffle] 같은 키끼리 그룹화
hello → [1, 1]
world → [1]
[Reduce 단계] 합산
(hello, 2)
(world, 1)분석 기술
| 기술 | 설명 |
|---|---|
| 텍스트 마이닝 | 비정형 텍스트에서 자연어 처리로 정보 추출 |
| 오피니언 마이닝 | SNS·블로그에서 긍정/부정/중립 선호도 분석 |
| 소셜 네트워크 분석 | 연결 구조로 영향력·행동 패턴 추출 |
| 군집 분석 | 유사 특성 데이터를 그룹으로 묶어 분석 |
오피니언 마이닝 예시
[수집 데이터]
"이 제품 정말 좋아요!" → 긍정
"배송이 너무 느립니다" → 부정
"보통이에요" → 중립
[분석 결과]
긍정 65% / 부정 20% / 중립 15%
→ 제품 만족도 높지만
배송 개선 필요표현 기술: R
R은 통계 기반 데이터 분석과 시각화를 위한 오픈소스 언어다. 다양한 프로그래밍 언어와 연동되고, Hadoop 환경에서 분산 처리를 지원하는 라이브러리를 제공한다.
빅데이터 이전 vs 빅데이터
| 구분 | 빅데이터 이전 | 빅데이터 |
|---|---|---|
| 데이터 유형 | 정형 데이터 중심 | 정형 + 반정형 + 비정형 |
| 관련 기술 | RDB, 통계 패키지, 데이터 마이닝 | Hadoop, NoSQL, 텍스트 마이닝, R |
| 저장 장치 | 고가의 DB/웨어하우스 | 저렴한 클라우드 환경 |
3. NoSQL
NoSQL의 등장
NoSQL은 Not Only SQL의 약자로, 관계 데이터베이스만 고집하지 말고 필요에 따라 다른 특성을 제공하는 데이터베이스를 사용하자는 의미다.
1998년에 처음 언급되었지만, 현재의 의미를 갖게 된 것은 2009년 요한 오스칼손(Johan Oskarsson) 이후로 보는 시각이 많다.
NoSQL의 특징
- ACID 트랜잭션 대신 분산 처리에 초점
- 스키마 없이 동작하여 구조 변경이 자유로움
- 비정형 데이터 저장에 적합
- 대부분 오픈 소스로 제공
관계 DB vs NoSQL
| 구분 | 관계 DB | NoSQL |
|---|---|---|
| 데이터 유형 | 정형 데이터 | 정형 + 비정형 |
| 대용량 처리 | 성능 저하 | 대용량 지원 |
| 스키마 | 미리 정의 필요 | 없거나 변경 자유 |
| 트랜잭션 | ACID 보장 | 미지원 (일부 예외) |
| 검색 | 조인 등 복잡한 검색 | 단순 검색 |
| 확장성 | 클러스터 부적합 | 클러스터 적합 |
| 비용 | 고가 라이선스 | 오픈 소스 |
CAP 정리
분산 시스템에서 세 가지 속성을 동시에 만족할 수 없다는 이론으로, NoSQL의 설계 철학을 이해하는 핵심 개념이다.
| 속성 | 의미 |
|---|---|
| Consistency | 모든 노드가 같은 데이터를 봄 |
| Availability | 항상 응답을 받을 수 있음 |
| Partition Tolerance | 네트워크 장애에도 동작 |
Consistency
/\
/ \
/ CA \
/──────\
/ CP AP \
/ \
/────────────\
Partition Availability
Tolerance| 조합 | 특성 | 대표 DB |
|---|---|---|
| CP | 일관성 + 분할 허용 | MongoDB, HBase |
| AP | 가용성 + 분할 허용 | Cassandra, DynamoDB |
| CA | 일관성 + 가용성 | 전통 관계 DB |
분산 환경에서는 P(분할 허용)를 포기할 수 없으므로 실제로는 CP 또는 AP 중 선택하게 된다.
NoSQL의 종류
키-값(Key-Value) 데이터베이스
가장 단순한 형태로, 키와 값의 쌍으로 데이터를 저장한다.
| 특징 | 설명 |
|---|---|
| 장점 | 어떤 형태의 값이든 저장 가능, 빠른 질의 처리 |
| 단점 | 값의 일부 검색이나 내용 기반 질의 불가 |
| 대표 제품 | DynamoDB, Redis |
┌──────────┬───────────┐
│ Key │ Value │
├──────────┼───────────┤
│ user:101 │ {name:..} │
│ user:102 │ {name:..} │
│ session │ abc123.. │
│ img:001 │ <binary> │
└──────────┴───────────┘문서 기반(Document-Based) 데이터베이스
키-값 모델의 확장으로, JSON·XML 같은 반정형 문서로 데이터를 저장한다.
| 특징 | 설명 |
|---|---|
| 장점 | 문서 내 일부 검색 가능, 계층 구조 지원 |
| 단점 | 문서 간 조인이 어려움 |
| 대표 제품 | MongoDB, CouchDB |
// MongoDB 문서 예시
{
"_id": "user_101",
"name": "홍길동",
"age": 30,
"orders": [
{"item": "책", "qty": 2},
{"item": "노트북", "qty": 1}
]
}컬럼 기반(Column-Based) 데이터베이스
컬럼 패밀리와 키의 쌍으로 데이터를 저장한다. 관계 모델의 테이블과 비슷하지만 행마다 컬럼 구성이 다를 수 있다.
| 특징 | 설명 |
|---|---|
| 장점 | 대규모 분산 저장에 유리, 유연한 컬럼 구성 |
| 단점 | 복잡한 질의 처리가 어려움 |
| 대표 제품 | BigTable, HBase, Cassandra |
Row Key: user_101
┌────────────────────────┐
│ 기본정보 (Column Family)│
│ name: 홍길동 │
│ age: 30 │
├────────────────────────┤
│ 주문정보 (Column Family)│
│ order1: 책 │
│ order2: 노트북 │
└────────────────────────┘
Row Key: user_102
┌────────────────────────┐
│ 기본정보 (Column Family)│
│ name: 김철수 │
├────────────────────────┤
│ (주문정보 없음) │
└────────────────────────┘
→ 행마다 컬럼 구성이 다를 수 있음그래프 기반(Graph-Based) 데이터베이스
노드에 데이터를 저장하고 간선으로 관계를 표현한다. 다른 NoSQL과 달리 ACID를 지원한다.
| 특징 | 설명 |
|---|---|
| 장점 | 데이터 간 관계 표현에 적합, ACID 지원 |
| 단점 | 클러스터 환경에 부적합 |
| 대표 제품 | Neo4J, OrientDB, AgensGraph |
(홍길동)──친구──►(김철수)
│ │
구매 구매
│ │
▼ ▼
(노트북) (태블릿)
│
카테고리
│
▼
(전자기기)NoSQL 종류 비교
| 유형 | 데이터 구조 | 적합 분야 |
|---|---|---|
| 키-값 | Key → Value | 세션, 캐시, 장바구니 |
| 문서 기반 | Key → Document | 콘텐츠 관리, 카탈로그 |
| 컬럼 기반 | Key → Column Family | 로그 분석, 시계열 데이터 |
| 그래프 | Node + Edge | 소셜 네트워크, 추천 시스템 |
4. 데이터 마이닝
데이터 분석의 개념
데이터 분석은 쌓여 있는 데이터 안에 숨겨진 유용한 지식을 찾아내기 위해 가공하는 역할을 한다. SQL을 통해 원하는 데이터를 추출하여 분석하는 것도 데이터 분석 기술에 해당한다.
기계 학습 vs 데이터 마이닝
두 기술은 중복되는 부분이 많지만, 초점이 다르다.
| 구분 | 데이터 마이닝 | 기계 학습 |
|---|---|---|
| 초점 | 발견(Discovery) | 예측(Prediction) |
| 목적 | 숨겨진 규칙·패턴 발견 | 새 데이터의 결과 예측 |
| 관점 | 통계학 | 컴퓨터 과학 |
┌──────────────────┐
│ 수집된 데이터 │
├─────────┬────────┤
│ │ │
▼ ▼ │
데이터 기계 │
마이닝 학습 │
│ │ │
▼ ▼ │
규칙·패턴 학습 │
발견 모델 │
│ │
▼ │
새 데이터 │
결과 예측 │
└──────────────────┘기계 학습의 분류
| 유형 | 방식 | 예시 |
|---|---|---|
| 지도 학습 | 정답이 있는 데이터로 학습 | 스팸 메일 분류, 가격 예측 |
| 비지도 학습 | 정답 없이 패턴 발견 | 고객 군집화, 이상 탐지 |
| 강화 학습 | 보상을 통해 학습 | 게임 AI, 자율 주행 |
데이터 마이닝의 분석 기법
분류 분석 (Classification)
미리 정의된 기준에 따라 새로운 데이터가 어떤 그룹에 속하는지 판단한다.
[학습 데이터]
성적 90+ → A등급
성적 80+ → B등급
성적 70+ → C등급
[새 데이터]
성적 85 → B등급으로 분류군집 분석과 달리 미리 정의된 그룹이 존재한다.
대표 알고리즘: 의사결정 트리, k-NN, SVM, 나이브 베이즈
군집 분석 (Clustering)
미리 정해진 기준 없이 유사한 특성의 데이터를 독립적인 군집으로 나눈다.
| 유형 | 방법 | 세부 기법 |
|---|---|---|
| 계층적 | 가까운 데이터를 순서대로 묶음 | 최단/최장/평균/중심/와드 연결법 |
| 비계층적 | 최적 군집을 한번에 형성 | K-Means 등 |
K-Means 군집 분석 예시
1) 초기 중심점(K=2) 지정
★A ★B
2) 가까운 중심에 데이터 할당
★A ● ● ★B ○ ○
● ○
3) 중심점 재계산
★A' ★B'
● ● ● ○ ○ ○
4) 수렴할 때까지 반복연관 분석 (Association)
데이터 간 발생 빈도를 분석하여 연관 규칙을 찾아낸다. 장바구니 분석이라고도 한다.
연관 규칙 평가 지표
| 지표 | 의미 | 공식 |
|---|---|---|
| 지지도 | X와 Y가 함께 발생할 확률 | P(X∩Y) |
| 신뢰도 | X 발생 시 Y도 발생할 확률 | P(Y|X) = P(X∩Y)/P(X) |
| 향상도 | 연관 관계의 강도 | 신뢰도/P(Y) |
연관 분석 예시
[거래 데이터]
T1: 맥주, 기저귀
T2: 맥주, 빵, 기저귀
T3: 빵, 우유
T4: 맥주, 기저귀, 우유
[분석 결과]
맥주 → 기저귀
지지도: 3/4 = 75%
신뢰도: 3/3 = 100%
→ "맥주를 사면 기저귀도 산다"Apriori 알고리즘은 최소 지지도를 충족하는 빈발 항목 집합을 단계적으로 찾아 연관 규칙을 생성하는 대표적 방법이다.
5. 데이터 시각화
데이터 시각화의 개념
데이터 분석 결과를 이해하기 쉽게 그림이나 그래프 등으로 표현하는 기술이다. 시각화는 단순한 결과 표현을 넘어, 이전에 보이지 않던 규칙이나 패턴을 발견하는 분석 과정의 일부이기도 하다.
인포그래픽 vs 데이터 시각화
| 구분 | 인포그래픽 | 데이터 시각화 |
|---|---|---|
| 초점 | 정보의 직관적 전달 | 분석 활용을 위한 시각적 표현 |
| 목적 | 명확한 커뮤니케이션 | 패턴 발견과 분석 지원 |
시각화 방법
| 방법 | 목적 | 활용 차트 |
|---|---|---|
| 시간 시각화 | 시간 흐름에 따른 변화 | 막대그래프, 꺾은선 |
| 분포 시각화 | 데이터의 분포 상태 | 트리맵, 원그래프, 도넛 |
| 관계 시각화 | 데이터 간 상관관계 | 버블 차트, 산점도 |
| 비교 시각화 | 항목 간 유사성·차이 | 방사형 차트, 히트맵 |
| 공간 시각화 | 지역에 따른 분포 | 지도 매핑, 단계 구분도 |
적합한 시각화 선택 기준
| 데이터 성격 | 권장 시각화 | 예시 |
|---|---|---|
| 추세·변화 | 시간 시각화 | 월별 매출 추이 |
| 비율·구성 | 분포 시각화 | 시장 점유율 |
| 상관 관계 | 관계 시각화 | 광고비와 매출 관계 |
| 순위·크기 | 비교 시각화 | 부서별 성과 비교 |
| 위치·지역 | 공간 시각화 | 지역별 인구 밀도 |
시각화 도구
| 도구 | 특징 |
|---|---|
| R | 통계 분석 + 시각화, 오픈소스 |
| Tableau | 드래그&드롭 기반, 빠른 시각화 |
| Python(Matplotlib) | 프로그래밍 기반 유연한 시각화 |
| D3.js | 웹 기반 인터랙티브 시각화 |
| Gephi | 네트워크/그래프 시각화 |
R은 1993년 뉴질랜드 오클랜드 대학교에서 개발된 프로그래밍 언어이자 데이터 분석 소프트웨어다. 대화형 방식으로 운영되며, R 스튜디오를 통해 GUI 환경에서 작업할 수 있다.
요약
핵심 개념 정리
| 개념 | 설명 |
|---|---|
| 데이터 과학 | 데이터에서 지식을 발견하고 활용하는 과정 |
| DIKW | 데이터 → 정보 → 지식 → 지혜의 계층 구조 |
| 빅데이터 | 대규모 다양한 데이터와 처리 기술 |
| NoSQL | 비정형 데이터 저장에 적합한 비관계형 DB |
| 데이터 마이닝 | 데이터에서 규칙과 패턴을 발견하는 기술 |
| 기계 학습 | 데이터로 학습하여 결과를 예측하는 기술 |
| 데이터 시각화 | 분석 결과를 시각적으로 표현하는 기술 |
NoSQL 유형 요약
키-값 : Key → Value (단순)
문서 기반 : Key → JSON/XML 문서
컬럼 기반 : Key → Column Family
그래프 : Node + Edge (관계)데이터 마이닝 기법 요약
분류 분석 : 정해진 그룹에 할당
군집 분석 : 유사 데이터 그룹화
연관 분석 : 함께 발생하는 패턴