빅 데이터 분석 과정
전처리 : 데이터 수집 -> 데이터 처리 및 저장 -> 데이터 분석 결과
전체과정 : 데이터 수집 -> 데이터 처리 및 저장 -> 데이터 분석 결과 -> 시각화 -> 통찰력 및 의사결정
AWS 환경에서 ETL과 ELT는 데이터 통합 및 분석을 위한 두 가지 주요 방식, 둘 다 여러 소스에서 데이터를 가져와 분석에 적합한 형태로 바꾸는 과정이지만, 데이터 변환(Transformation)이 일어나는 시점과 위치가 다름
ETL (Extract, Transform, Load)
ETL은 데이터를 **추출(Extract)**한 후, 분석 시스템에 넣기 전에 미리 **변환(Transform)**하고, 마지막으로 변환된 데이터를 목적지 시스템에 **적재(Load)**하는 방식
- 동작 방식: 소스 시스템에서 데이터를 가져와 별도의 **스테이징 영역(staging area)**이나 ETL 서버에서 데이터를 정제하고 변환합니다. 변환이 완료된 데이터는 정형화된 형태로 데이터 웨어하우스(Data Warehouse)에 저장됨
- 장점:
- 데이터 웨어하우스에 저장되는 데이터의 양이 적어 효율적임
- 데이터 품질이 미리 보장됨
- 정형화된 데이터만 필요할 때 유리함
- AWS 서비스: AWS Glue, AWS Step Functions, AWS Lambda 등이 ETL 파이프라인을 구축하는 데 주로 사용됨
ELT (Extract, Load, Transform)
ELT는 데이터를 **추출(Extract)**한 후, 원본 그대로 목적지 시스템에 **적재(Load)**하고, 필요할 때 **변환(Transform)**하는 방식
- 동작 방식: 원본 데이터를 그대로 S3와 같은 대규모 스토리지에 먼저 저장합니다. 데이터 웨어하우스나 데이터 레이크(Data Lake)에 쌓인 원본 데이터를 분석가가 필요에 따라 쿼리하면서 실시간으로 변환함
- 장점:
- 빅 데이터 환경에 적합합니다. 원본 데이터를 그대로 저장하므로 모든 데이터를 보관할 수 있음
- 분석가들이 다양한 형태로 데이터를 변환하고 분석할 수 있어 유연성이 높음
- 데이터 로딩 속도가 빠름
- AWS 서비스: Amazon S3 (데이터 레이크), Amazon Redshift, Amazon EMR, Amazon Athena 등이 ELT 파이프라인에 사용됨
ETL vs ELT 요약 비교
| 구분 | ETL | ELT |
| 변환 시점 | 로드 전에 변환 | 로드 후에 변환 |
| 적합한 데이터 | 정형 데이터, 소규모 데이터 | 비정형/반정형, 대규모 빅 데이터 |
| 주요 스토리지 | 데이터 웨어하우스 | 데이터 레이크 (S3) |
| 장점 | 데이터 품질 보장, 효율적 | 유연성, 확장성, 빠른 로딩 속도 |
데이터 처리 종류
1. 중앙 집중식 처리 (Centralized Processing)
중앙 집중식 처리는 모든 데이터와 컴퓨팅 자원이 한 곳에 집중되어 처리되는 방식, 메인프레임 컴퓨터나 대형 서버 한 대가 모든 작업을 수행
- 장점: 관리 및 제어가 용이하고, 보안을 한 곳에서 집중적으로 관리할 수 있음
- 단점: 한 지점에 장애가 발생하면 시스템 전체가 멈출 수 있고, 처리 용량을 늘리려면 값비싼 하드웨어를 교체해야 함
2. 분산 처리 (Distributed Processing)
분산 처리는 네트워크로 연결된 여러 컴퓨터가 작업을 나누어 처리하는 방식입니다. 각 컴퓨터는 독립적으로 작업의 일부를 처리하고, 그 결과를 모아 최종 결과를 만듬
- 장점: 한 지점에 장애가 발생해도 다른 컴퓨터들이 작업을 계속하기 때문에 안정적이고, 필요에 따라 자원을 유연하게 확장할 수 있음
- 단점: 복잡한 분산 시스템을 관리해야 하므로 중앙 집중식보다 관리가 어려움
3. 배치 처리 (Batch Processing)
배치 처리는 데이터를 일정량 모아 한 번에 일괄적으로 처리하는 방식입니다. 실시간으로 처리할 필요가 없는 대량의 데이터를 다룰 때 주로 사용됨 예를 들어, 월말 정산, 급여 계산, 일일 재고 보고서 생성 등이 여기에 해당함
- 장점: 대용량 데이터를 효율적으로 처리할 수 있고, 시스템 자원을 한가한 시간대에 몰아서 사용해 비용 효율적임
- 단점: 처리 결과가 즉시 나오지 않고 대기 시간이 발생함
4. 실시간 처리 (Real-time Processing)
실시간 처리는 데이터가 생성되는 즉시 처리하는 방식, 대기 시간 없이 거의 즉각적으로 결과를 얻어야 할 때 사용됩니다. 신용카드 승인, 온라인 스트리밍, 주식 거래 시스템 등이 대표적인 예
- 장점: 즉각적인 피드백과 빠른 응답이 가능
- 단점: 매우 높은 성능과 안정성이 요구되어 시스템 구축 및 유지 비용이 많이 듬
데이터 분석
1. 기술 통계 분석 (Descriptive Analytics)
기술 통계 분석은 **"무슨 일이 일어났는가?"**에 답하는 가장 기본적인 분석, 과거 데이터를 요약하고 정리하여 현재 상황을 파악하는 데 중점을 둠
- 목적: 데이터의 특징을 파악하고 패턴을 발견함
- 방법: 평균, 중앙값, 최빈값, 표준편차, 빈도수 등을 계산하거나 시각화(차트, 그래프)를 통해 데이터를 보여줌
- 예시: 지난달 웹사이트 방문자 수, 특정 제품의 판매량, 고객의 연령 분포 등을 분석함
2. 진단 분석 (Diagnostic Analytics)
진단 분석은 **"왜 그런 일이 일어났는가?"**에 답하는 분석, 기술 통계 분석으로 발견된 현상의 원인을 찾아냄
- 목적: 문제의 근본 원인을 규명함
- 방법: 데이터 드릴다운, 데이터 마이닝, 상관관계 분석 등을 통해 특정 현상에 영향을 미친 요인을 찾음
- 예시: 특정 기간에 매출이 감소한 이유를 파악하기 위해 마케팅 캠페인, 경쟁사 가격, 날씨 등의 데이터를 분석함
3. 예측 분석 (Predictive Analytics)
예측 분석은 **"앞으로 무슨 일이 일어날 것인가?"**에 답하는 분석, 과거 데이터를 기반으로 미래를 예측하거나 가능성을 예측함
- 목적: 미래의 추세를 예측하고 리스크를 평가함
- 방법: 회귀 분석, 시계열 분석, 머신러닝(기계 학습) 모델 등을 사용하여 예측 모델을 만듬
- 예시: 다음 분기 예상 매출액, 특정 고객이 이탈할 확률, 사기 거래 발생 가능성을 예측함
4. 처방 분석 (Prescriptive Analytics)
처방 분석은 **"무엇을 해야 하는가?"**에 답하는 가장 진화된 분석, 예측 분석 결과를 바탕으로 최적의 행동 방안을 제시함
- 목적: 최적의 의사결정을 지원함
- 방법: 최적화(Optimization), 시뮬레이션, 의사결정 모델 등을 사용해 다양한 시나리오를 분석하고 최적의 행동을 제안함
- 예시: 매출 극대화를 위해 제품 가격을 얼마로 설정해야 하는지, 물류 비용을 최소화하기 위한 최적의 배송 경로를 찾음
AWS SNS와 SQS는 메시징 서비스이지만, 서로 다른 역할을 수행, SNS는 '발행/구독' 모델을 사용해 여러 구독자에게 메시지를 보내고, SQS는 '메시지 큐' 모델을 사용해 메시지를 저장하고 개별적으로 처리함
Amazon SNS (Simple Notification Service)
SNS는 발행/구독(Publish/Subscribe) 모델을 기반으로 하는 서비스, 메시지를 한 번 발행하면 여러 대상에게 동시에 전달하는 데 사용됨
- 역할: 메시지 전달자.
- 작동 방식: 메시지를 **토픽(Topic)**에 발행하면, 해당 토픽을 구독하는 모든 대상(SQS 큐, Lambda 함수, HTTP 엔드포인트, 이메일 등)에게 메시지가 즉시 푸시(Push)됨
- 특징:
- 즉시성: 메시지가 생성되면 실시간으로 전달됨
- 다중 대상: 한 번의 발행으로 여러 대상에게 메시지를 보낼 수 있음
- 비용: 발행된 메시지 수와 푸시 알림 수에 따라 요금이 부과됨
Amazon SQS (Simple Queue Service)
SQS는 메시지 큐(Message Queue) 모델을 기반으로 하는 서비스, 메시지를 임시로 저장해두고, 소비자가 메시지를 가져가서 처리하는 방식
- 역할: 메시지 보관함.
- 작동 방식: 메시지를 **큐(Queue)**에 넣으면, 소비자가 큐에서 메시지를 폴링(Polling)해 가져가 처리, 메시지가 처리되면 큐에서 삭제됨
- 특징:
- 비동기 처리: 생산자와 소비자 간의 결합도가 낮아, 소비자가 준비될 때까지 메시지를 큐에 보관
- 안정성: 소비자가 메시지를 처리하는 동안 다른 소비자가 가져가지 못하도록 메시지를 숨기고, 처리 실패 시 메시지를 다시 볼 수 있게 해줌
- 비용: 큐에 저장된 메시지 수와 API 요청 수에 따라 요금이 부과됨

갑자기 파이썬 안깔려있나 묻더니 아나콘다 설치하게 만듬
Anaconda Installers 🐍
Anaconda는 데이터 과학, 머신러닝, 통계 분석 등을 위한 종합 소프트웨어 패키지예요. 설치 시 NumPy, SciPy, Pandas, Scikit-learn 등 250개 이상의 필수 패키지와 Jupyter, Spyder 같은 IDE가 함께 설치됨
- 장점:
- 초보자에게 적합해요. 별도의 설치 없이 바로 데이터 분석 작업을 시작할 수 있음
- 패키지 간 의존성 충돌을 걱정할 필요가 없음
- 단점:
- 설치 파일 크기가 매우 커요 (약 500MB 이상).
- 필요하지 않은 패키지까지 모두 설치되므로, 디스크 공간을 많이 차지하고 환경이 무거워질 수 있음
Miniconda Installers 🐍
Miniconda는 Conda 패키지 관리자와 Python만 포함된 최소한의 설치 프로그램, 필요한 패키지는 Conda 명령어를 사용해 직접 설치해야 함
- 장점:
- 설치 파일 크기가 매우 작고, 설치가 빠름
- 사용자가 필요한 패키지만 선택적으로 설치할 수 있어 환경을 가볍게 유지할 수 있음
- 단점:
- 데이터 분석을 위한 패키지들을 수동으로 설치해야 함
결론
- Anaconda: "만능 세트" 같은 개념으로, 한 번에 필요한 모든 것을 갖추고 시작하고 싶은 사용자에게 적합
- Miniconda: **"조립식 키트"**와 같아요. 가벼운 환경에서 시작해 필요한 것만 추가하고 싶은 사용자나, 특정 패키지 조합이 필요한 숙련자에게 적합
두개 차이 그냥 아나콘다로 설치했음
그 다음 구글 코랩에 대해서 설명했음

코랩 : 환경 설정 하기 힘들때 여러명이 동일한 환경에서 쓰고자 할 때 사용
주피터 노트북 : 내가 어느정도 환경설정을 할 수 있을 때

얘만 설정해주고 나머지는 동일
VS code 에서 사용할 시 Extentions -> Python install 후 Jupyter install 해주면 됨

아나콘다 설치가 긑나면 Jupyter Launch 누르면 웹사이트가 하나 뜸.


print("헬로") 라고 입력한 뒤
shift enter 동시에 누르면 바로 실행이 됨


터미널을 누르게 되면 아무것도 안뜨는데 교수님도 머쓱해 하셨음 ^^
파이썬 공부하고 싶으면 휴게실에 책있다고 쓰라고함.

이러면 주석처리 됨

VS code에서 Extentions 해뒀으면 네비게이션에서 실행했을 때 VS code가 켜짐

중간에 머라고 더 말씀하셨는데 놓쳐서 모르겠음
일단 여기까지가 오전 이론 강의