데이터 전처리: 데이터 소스 – DB 추출
ㅁ 데이터 소스
ㅇ 정의:
데이터 분석, 머신러닝, 시각화 등에 활용하기 위해 원천 데이터를 확보하는 출처나 경로를 의미하며, 내부 시스템, 외부 API, 공개 데이터셋, 데이터베이스(DB) 등이 포함됨.
ㅇ 특징:
– 데이터 품질과 분석 결과의 신뢰도에 직접적인 영향을 미침
– 수집 방식에 따라 실시간/배치 처리 가능
– 보안, 접근 권한, 포맷 변환 이슈가 발생할 수 있음
ㅇ 적합한 경우:
– 분석 목적에 맞는 데이터가 이미 특정 시스템 또는 저장소에 존재하는 경우
– 데이터의 신뢰성과 일관성이 중요한 경우
ㅇ 시험 함정:
– 데이터 소스와 데이터 저장소를 혼동하는 경우가 많음
– API 호출도 데이터 소스 수집 방법 중 하나임을 간과
ㅇ 시험 대비 “패턴 보기” 예시:
O: “데이터 소스는 분석을 위해 데이터를 가져오는 출처를 의미한다.”
X: “데이터 소스는 데이터를 저장하는 서버 자체를 의미한다.”
================================
1. DB 추출
ㅇ 정의:
데이터베이스에 저장된 데이터를 SQL 쿼리나 ETL 도구 등을 사용하여 분석 또는 가공 목적으로 추출하는 과정.
ㅇ 특징:
– 구조화된 데이터(테이블, 스키마 기반)에 적합
– SQL을 통한 조건 지정, 조인, 집계 등 다양한 데이터 가공 가능
– 대용량 데이터 추출 시 성능 및 락(lock) 문제 발생 가능
ㅇ 적합한 경우:
– 데이터가 관계형 DB에 저장되어 있고, 분석 전 필요한 데이터만 선별적으로 가져와야 하는 경우
– 데이터 무결성과 정확성이 중요한 경우
ㅇ 시험 함정:
– DB 추출과 DB 백업을 혼동하는 경우
– 실시간 스트리밍 수집과 혼동하여 설명하는 경우
ㅇ 시험 대비 “패턴 보기” 예시:
O: “DB 추출은 SQL 쿼리를 사용하여 필요한 데이터만 가져오는 과정이다.”
X: “DB 추출은 데이터베이스 전체를 백업하는 것을 의미한다.”
ㅁ 추가 학습 내용
DB 추출과 ETL 프로세스의 관계를 명확히 이해해야 한다. ETL은 Extract(추출), Transform(변환), Load(적재) 단계로 구성되며, Extract 단계에서는 데이터 필터링, 샘플링, 증분 추출(Incremental Extraction)과 전체 추출(Full Extraction)의 차이를 구분할 수 있어야 한다. 증분 추출은 변경된 데이터만 추출하여 효율성을 높이고, 전체 추출은 모든 데이터를 가져오는 방식이다.
데이터베이스 연결 시에는 JDBC 또는 ODBC 드라이버를 사용하며, 연결 풀(Connection Pool)을 통해 연결 관리 효율성을 높일 수 있다. 데이터 타입 매핑 과정에서의 호환성 문제를 이해해야 하며, 인덱스 활용 여부에 따라 쿼리 성능에 차이가 발생한다는 점을 숙지해야 한다.
보안 측면에서는 SQL Injection 방지를 위한 입력값 검증과 파라미터 바인딩, 최소 권한 원칙 적용, 그리고 SSL/TLS를 통한 암호화 전송 여부가 중요한 시험 포인트이다.