4차 산업혁명의 핵심 - 빅데이터 분석
빅데이터 정의와 분석파이프라인을 이해
빅데이터 분석 파이프라인의 각 단계와 주요 기술을 이해
소프트웨어 관점에서 빅데이터 분석을 이해
빅데이터
- 빅데이터 시대의 도래
- [기존] 서버 -> 데이터 생성 및 공유
- [현재] 서버 뿐만아니라 전세계모든 사람들과 사물들까지 데이터를 생성 및 공유 ... (주체가! 엄청 확장되었다.)
(ex) 스마트폰 및 사물 인터넷(IoT) 기술의 보급
- 빅데이터의 정의 : 5V (과거에는 3V였으나 지금은 5V에요!)
- Variety : 다양한 형태의 데이터! - 정형, 반정형, 비정형 데이터
정형 - 스키마(형태) 고정되어있음. ex) RDBMS의 열별로 고정된 그 데이터!
기존에는 서버가 정형데이터만 사용했었어요!
반정형 - 느슨한구조, 센서스트림(수시로변화하는 온도. -> 데이터베이스에 표형태로 저장될 수준은아님, 다만 그래도 규칙은 있죠? SNS 그래프, JSON 느슨한문법!
비정형 - 멀티미디어데이터 (형태가없다.) 파일 형태로만 저장됨. - Volume : 대용량 데이터
- Velocity : 매우 빠른 속도의 데이터 생성 - 배치분석/실시간 분석
- Veracity : 분석 결과의 '진실성' ,데이터품질!
- Value : 분설 결과의 가치 ... -> 서비스로서 제공을 하게됩니다. :)

빅데이터 기술 생태계
- 요구사항에 적합한 빅데이터 분석 파이프라인 설계 후, 각 단계에 필요한 기술을 조합하여 활용
- 오픈소스 프로젝트
- 리눅스 기반
- 클러스터 기반 → 분산 시스템 기반
빅데이터는 굉장히 크므로 한대의 pc에서 돌릴수가없다. 그래서 분산시스템을 구성함. - 클라우드 운영 환경 지원
얘는 플랫폼이에요! application이 돌아갈 수 있는 환경을 만들어주는겁니다.
(프레임워크가 아닙니다!) 프레임워크 = 웹서비스 없어도 만들 수 있거든요 빅데이터같은경우 플랫폼이없으면 돌아갈수가없어
빅데이터SW는 여러가지 플랫폼을 조합한 기술적환경이없으면 돌아갈 수가 없다!

빅데이터 분석 파이프라인
- 빅데이터로부터 분석 결과를 생성하기 위한 일련의 데이터 흐름 → 분석 결과 못지 않은 핵심 자산!
- 각 단계는 분산 시스템(클러스터) 기반으로 동작하는 독립적인 소프트웨어 컴포넌트
- 파이프-필터 아키텍처 패턴으로 각 컴포넌트 연결 → 단계 간 의존성이 매우 높음
(*파이프-필터 아키텍처? : 각 컴포넌트가 독립적으로 돌릴 수는 있지만, 독립된 결과를 받아서 그다음 업무를 수행함. 파이프단계에 물려있다.) - 빅데이터 분석 파이프라인 → 복잡한 분산 소프트웨어
- 빅데이터 분석 = 설계/ 개발/ 운영 과정이 모두 필요한 복잡한 소프트웨어 프로젝트!
(그들간의 흐름이 끊기지 않게 잘 신경써주어야하기 때문이죠~)

그냥 두대이상의 PC가 동원되어야한다면 그게 바로 빅데이터에용!!
한대의 PC에서 절대 할 수 없는 것. 할수있더라도 처리가 막 1주일 걸리거나 그러면 안되는거겠죠?
빅데이터 분석 파이프라인 : 데이터소스
- 분석할 원천 데이터가 생성되는 곳
- 데이터베이스, 외부API (ex. RESTful API .. 교통/날씨 데이터), 이벤트 로그, IoT 센서 스트림(=실시간측정데이터) 등 - 빅데이터 분석 파이프라인에서 직접 제어할 수 없는 외부 시스템이 다수
→ 데이터 스키마 변경 위협 존재. - 데이터 품질 문제의 출발점 (원천데이터의 품질!)
약속된 형태의 데이터가 들어오지 않는다면?(=스키마,형태 변경)
내부에서 돌아가는 애들에 영향을 줄 수 있다! ... 우리가 분석 파이프라인을 수정해서 맞춰야한다.
빅데이터 분석 파이프라인 : 수집
- 데이터 소스에서 발생하는 데이터를 실시간(*센서스트림) 또는 배치(*1일에 1번 등 일괄) 방식으로 수집
- 수집이 중단되면 이후의 전체 분석 파이프라인 마비
- 안정적인 데이터 수집 / 병목 없는 데이터 전달 / 데이터 유실 방지 필요
- 데이터 품질 체크를 시작하는 단계 → 데이터 형식 또는 스키마 검증 (주로 품질체크하는 애들이 이거임)
- 관련 기술 : Kafka(실시간 수집), Flume (로그 수집) 등
빅데이터 분석 파이프라인 : 저장
- 수집된 원본 데이터, 분석 파이프라인 중간에 생성되는 데이터, 분석 결과 데이터 등을 저장
- 데이터 수명(사실상 거의 수명이없음) >>>> 코드 수명
- 저장된 데이터에 존재하는 '오류'는 되돌리기 어려움
(대용량 데이터인 경우를 생각해봐라.) - 데이터 버전 관리 및 스키마 관리 필요
- 컴퓨터 클러스터 기반 분산 저장
- 정형 데이터(스키마 고정) → RDBMS(MySQL, Oracle, PostgreSQL 등) / 데이터웨어하우스(요건 분석기술도 딸려잇음)
- 반정형 데이터 / 비정형 데이터 → NoSQL(Redis, Cassandra, MongoDB (느슨한 스키마) , Neo4j SNS그래프, InfluxDB센서스트림 등)
- 분석용 원천 데이터 → HDFS / Data Lake / Data Lakehouse
- 클라우드 운영 환경과의 결합을 위한 클라우드 스토리지 → Amazon S3 등

빅데이터 분석 파이프라인 : 처리
- 수집 또는 저장된 데이터를 분석 가능한 형태(분석 기법을 적용할 수 있는 형태)로 준비
- 전처리 : NULL 값 제거, 결측값 처리, 이상치 제거, 잘못된 레코드 필터링 등
- 변환 : JSON 데이터 파싱값을 떼어냄 및 구조화, 타입 도는 형태 변환(좌표 →주소로 변환 등) . . 직렬화/역직렬화 개념인가?
- 집계 : 분석에 필요한 요약 값 계산(총합, 부분합, 평균, 최대/최소값 등)
- 조인/병합 : 여러 데이터 소스를 결합 → 유의미한 특징 데이터 또는 테이블 생성
- 배치 처리(Batch Processing) : 대규모 데이터에 대한 일괄 처리
컴퓨터 클러스터 기반 분산 컴퓨팅 → Hadoop, Spark - 실시간 처리(Stream Processing) : 실시간 데이터에 대한 매우 짧은 간격의 배치 처리
컴퓨터 클러스터 기반 분산 컴퓨팅 → Spark Streaming, Flink 등 - 처리 안전성 확보 중요 but 까다로움 : (실패 시 핸들링, 재시도, 리소스 스케줄링 등)
빅데이터 분석 파이프라인 : 분석 (SKIP)
- 처리된 데이터를 기반으로 유의미한 결과 생성
- 머신러닝, 딥러닝, 통계 분석, 데이터 마이닝 등 - 관련 기술 : Tensorflow, PyTorch, SciPy, Scikit Learn, Pandas, | SparkMLlib, FlinkML 등
- 컴퓨터 클러스터 기반의 분산 알고리즘을 직접 구현하기도함 남이 구현한 분석프로그램보다 더 좋은결과를 얻기위해~
- 데이터 / 분석 환경 / 분석 파이프라인의 재현성 중요 (모델 재현성과는 다름!)*재현성 = 다시 할 수 있게끔! (수집->처리->분석의 파이프라인을 언제든지 재현할 수 있어야함.. 동일한 분석결과나와야함)
저장잘해놓고,,,코드잘해놓고,,, 요런거
빅데이터 분석 파이프라인 : 서빙 ( 결과 제공)
- 필요한 사용자에게 분석 결과 제공
- 대시보드(시각화), 결과 데이터파일 또는 스트림, API, 웹 서비스 (ㅎㅎ 웹서비스가 분석한 결과를 잘 보여줄수있는게 이게 대표적인 인터페이스래~)
'컴퓨터공학과 > 소프트웨어공학' 카테고리의 다른 글
| 1205 소공 - 머신러닝프로젝트 (0) | 2025.12.05 |
|---|---|
| 1203 - 빅데이터 분석 프로젝트와 DataOps (0) | 2025.12.03 |
| 소공 1128 (0) | 2025.11.28 |
| 소프트웨어공학 - 아키텍처 설계 (0) | 2025.10.14 |