데이터 전처리: 데이터 포맷
ㅁ 데이터 포맷
ㅇ 정의: 데이터 포맷은 데이터를 저장하거나 전송할 때 구조와 형식을 정의하는 방식으로, 데이터의 해석과 호환성을 결정한다.
ㅇ 특징: 데이터의 구조(행/열 기반, 계층 구조 등), 압축 여부, 스키마 포함 여부에 따라 처리 효율성과 활용 범위가 달라진다.
ㅇ 적합한 경우: 시스템 간 데이터 교환, 분석 전처리, 저장 최적화 등 목적에 맞는 포맷 선택이 필요할 때.
ㅇ 시험 함정: 파일 포맷의 장단점을 혼동하거나, 바이너리 포맷과 텍스트 포맷의 차이를 잘못 이해하는 경우가 많다.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “Parquet은 컬럼 지향 저장 방식으로 대규모 분석에 효율적이다.”
X: “CSV는 스키마를 내장하고 있어 데이터 타입 자동 변환이 가능하다.”
================================
1. CSV
ㅇ 정의: Comma-Separated Values의 약자로, 쉼표(,)로 구분된 텍스트 기반의 데이터 저장 형식.
ㅇ 특징: 단순하고 범용성이 높으며, 거의 모든 데이터 분석 도구에서 지원. 하지만 대용량 처리 시 비효율적이고 타입 정보가 손실될 수 있음.
ㅇ 적합한 경우: 소규모 데이터 교환, 단순 구조의 테이블 데이터 저장.
ㅇ 시험 함정: CSV가 항상 쉼표만 사용하는 것이 아니며, 탭(TSV) 등 다른 구분자도 가능하다는 점을 간과함.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “CSV는 텍스트 기반 포맷으로 사람이 읽고 작성하기 쉽다.”
X: “CSV는 컬럼 압축 기능을 제공하여 저장 공간을 줄인다.”
================================
2. JSON
ㅇ 정의: JavaScript Object Notation의 약자로, 키-값 쌍과 배열 구조를 사용하는 경량 데이터 교환 포맷.
ㅇ 특징: 계층적 구조 지원, 문서 지향 데이터 표현 가능, 다양한 프로그래밍 언어에서 지원. 하지만 대규모 데이터 처리 시 비효율적일 수 있음.
ㅇ 적합한 경우: 웹 API 응답, 비정형/반정형 데이터 저장, 설정 파일.
ㅇ 시험 함정: JSON이 바이너리 포맷이라고 착각하거나, 주석을 지원한다고 잘못 이해하는 경우가 많음.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “JSON은 계층적 데이터 구조를 표현할 수 있다.”
X: “JSON은 주석 문법을 공식적으로 지원한다.”
================================
3. Parquet
ㅇ 정의: Apache Parquet은 컬럼 지향 저장 방식의 오픈소스 파일 포맷으로, 대규모 데이터 분석에 최적화됨.
ㅇ 특징: 컬럼 단위 압축 및 인코딩 지원, 스키마 포함, 분산 처리 시스템(Hadoop, Spark)과 호환성 높음.
ㅇ 적합한 경우: 대규모 분석 쿼리, 빅데이터 환경에서의 저장 최적화.
ㅇ 시험 함정: Parquet이 행 지향 저장이라고 착각하거나, 스키마를 포함하지 않는다고 오해하는 경우.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “Parquet은 컬럼 지향 포맷으로 집계 연산에 효율적이다.”
X: “Parquet은 각 행을 순차적으로 저장하여 검색에 유리하다.”
================================
4. Avro
ㅇ 정의: Apache Avro는 스키마 기반의 바이너리 데이터 직렬화 포맷으로, Hadoop 생태계에서 주로 사용됨.
ㅇ 특징: 스키마(JSON)와 데이터(바이너리)를 분리 저장, 빠른 직렬화/역직렬화, 다양한 언어 지원.
ㅇ 적합한 경우: 시스템 간 데이터 교환, 메시지 큐 전송, 스트리밍 데이터 처리.
ㅇ 시험 함정: Avro가 텍스트 포맷이라고 착각하거나, 스키마 없이도 동작한다고 잘못 이해하는 경우.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “Avro는 스키마를 기반으로 직렬화를 수행한다.”
X: “Avro는 스키마 없이 데이터를 저장할 수 있다.”
================================
5. HDF5
ㅇ 정의: Hierarchical Data Format version 5로, 대규모 과학 데이터 저장과 관리에 최적화된 포맷.
ㅇ 특징: 계층 구조 지원, 다양한 데이터 타입 저장 가능, 대용량 바이너리 데이터 처리에 강점.
ㅇ 적합한 경우: 과학 연구, 머신러닝 모델 파라미터 저장, 이미지/시계열 데이터 저장.
ㅇ 시험 함정: HDF5가 텍스트 기반 포맷이라고 착각하거나, 오직 행렬 데이터만 저장 가능하다고 오해하는 경우.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “HDF5는 계층 구조로 데이터를 저장할 수 있다.”
X: “HDF5는 텍스트 기반 포맷으로 주로 웹 API에서 사용된다.”
================================
제가 원하시면 다음 단계로, 각 포맷별 **비교표**와 **시험 출제 포인트 요약**을 만들어드릴 수도 있습니다.
그렇게 진행할까요?