-
xml, json, yaml파일 데이터 포맷 살펴보기컴퓨터 일반 2022. 5. 30. 10:13반응형
파일로서 데이터를 저장하고 관리하는 데이터 포맷이 있다. xml, json, yaml, avro 등 엄청나게 많지만, xml,json, yaml파일의 데이터 포맷을 살펴보면서 차이점만 인식해 보면 좋을 것같아. 글을 쓰게 되었다. 이 글을 토대로 대충 이런 느낌으로 작성 되고 활용 되는 구나 파악을 하고 다른 파일을 봐도 무리 없이 파악 할 수 있는 수준으로 이해 하면 좋을 것 같다.
파일 들의 공통적은 구성요소
아래와 같은 구성요소로 구성이 된다
- object - 인식 객체 단위
- array - 인식 객체 단위에 list형태의 값들
- key-value - 데이터를 가져오기 위한 key-value
XML 파일이란?
W3C개발 되어진 파일 형식으로, 다목적 마크업언어를 사용하도록 하는 목적으로 만들어졌다. 특히 인터넷에 연결된 시스템끼리 데이터를 쉽게 주고 받을 수 있게 하여 html의 한계를 극복할 목적으로 만들어졌다. 코드로 예를 들어보면 아래와 같다. 부연설명을 하자면 Scope of metadata - metadata의 범위가 바로 object 이다. root scope 또한 object로 보면 된다. 이런 scope안에 version, name, port등이 key-value형식의 dic타입으로 정보가 보관 되고, webinfo 태그는 dic타입의 값이 여러개 있으니 webinfo는 Array타입으로 설정 한 것이다.
<?xml version="1.0" encoding="UTF-8"> <root> <version>1.0</version> <appname>testXml</appname> <metadata> <webInfo> <name>webName</name> <port>8080</port> <path>~/web</path> </webInfo> </metadata> </root> xml에서의 object <- root, metadatar array <- webInfo key-value <- version, appname, name, port 등
JSON파일이란?
JavaScript Object Notation이라는 파일 명칭을 가지고 있으며, key-value, 배열 자료형, 기타 모든 시리얼화 가능한 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용한 개방형 표준 포맷이다.
{ "version" : "1.0", "appname" : "testXml", "metadata" : { "webInfo" : [ "name" : "webName", "port" : "8080", "path" : "~/web" ] } } json에서의 Object <- metadata array <- webInfo key-value <- version, appname, name, port 등
Yaml파일이란?
xml, c, 파이썬, 펄, RFC2822에서 정의된 e-mail양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식이다.
version: 1.0 appname: testXml metadata: webInfo: - name: webName port: 8080 path: ~/web spec: containers: - name: hello-container image: container/image port: - containerPort: 8000 containerDevPath: 9000 containerProdPath: 10000 yaml에서의 obejct <- metadata array <- webinfo, port, - 밑에 하이픈으로 구분(-) key-value <- version, appname, name, port등
xml, json,yaml파일에 대해 간략하게 알아 봤는데, 그냥 데이터를 사람이 알아 볼수 있게 작성하고, 편리하게 사용하기 위한 마크업 언어 라고 보면 된다. 자신이 편한 형태의 파일을 사용하면 되고, framework나 tool에서 사용하는 확장자에 맞게 사용하면 된다. 사용법은 위와 거의 동일 한 방법이므로 대충 느낌적인 것만 알아가자
반응형'컴퓨터 일반' 카테고리의 다른 글
자료구조란? (알고리즘이란?, 프로그램이란?) (0) 2019.11.04 1G ~ 5G 특장점 내용요약 (0) 2019.10.03 ipV4 ipV6의 특장점, 문제점 (0) 2019.10.03 데몬(컴퓨팅) 프로세스 요약 정리 (0) 2019.10.03 개발 언어 선택의 중요성? (0) 2019.09.23