데이터 전처리: 데이터 포맷 – JSON

ㅁ 데이터 포맷

ㅇ 정의:
데이터 포맷은 데이터를 저장, 전송, 교환하기 위해 구조화하는 방식으로, JSON은 그 중 하나의 형식이다.

ㅇ 특징:
– JSON(JavaScript Object Notation)은 경량의 데이터 교환 형식으로, 사람이 읽고 쓰기 쉽고 기계가 파싱하고 생성하기 쉽다.
– 키-값 쌍으로 구성되며, 중첩 구조를 지원한다.
– 언어 독립적이며, 대부분의 프로그래밍 언어에서 라이브러리 지원이 풍부하다.

ㅇ 적합한 경우:
– 웹 API 응답/요청 데이터 포맷으로 사용 시
– 비정형 또는 계층형 데이터 구조를 표현할 때
– 경량 데이터 전송이 필요한 환경에서

ㅇ 시험 함정:
– JSON은 문자열 기반이므로 숫자, 불리언 등도 따옴표 없이 표현 가능하지만, 모든 키는 반드시 문자열이어야 한다.
– JSON은 주석을 지원하지 않는다.
– 마지막 요소 뒤에 쉼표를 붙이면 파싱 오류가 발생한다.

ㅇ 시험 대비 “패턴 보기” 예시:
O: JSON은 키-값 쌍으로 구성되며, 계층 구조를 표현할 수 있다.
O: JSON은 언어 독립적인 데이터 포맷이다.
X: JSON은 주석을 지원하므로 설정 파일에 주석을 자유롭게 넣을 수 있다.
X: JSON의 키는 숫자형 데이터 타입으로 지정할 수 있다.

ㅁ 추가 학습 내용

JSON Schema: JSON 데이터의 구조와 제약 조건을 정의하는 표준 명세로, 데이터의 유효성을 검증하는 데 사용된다.

JSON과 XML 비교: XML은 태그 기반 구조를 가지며 데이터와 메타데이터를 함께 표현할 수 있다. JSON은 키-값 기반 구조로 더 경량이고 직관적이며, 데이터 전송과 처리 속도가 빠르다.

직렬화와 역직렬화: 직렬화는 객체나 데이터를 JSON 문자열로 변환하는 과정이며, 역직렬화는 JSON 문자열을 객체로 변환하는 과정이다. API 통신에서 필수적으로 사용된다.

보안 이슈: JSONP 사용 시 크로스 도메인 요청에 대한 취약점이 발생할 수 있으며, 대용량 JSON 파싱 시 서비스 거부(DoS) 공격 위험이 존재한다.

JSON Lines(JSONL) 포맷: 대용량 로그 데이터 처리에 적합하며, 한 줄에 하나의 JSON 객체를 저장하는 방식이다. 각 줄이 독립적인 JSON 객체이므로 스트리밍 처리와 병렬 처리가 용이하다.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*