- docx(Microsoft Word 형식);
- pdf(Adobe 형식);
- mobi(Amazon Kindle 장치에서 일반적으로 사용됨)
- 그리고 훨씬 더 많은 것(ePub, djvu, fb2...).
JSON
자바스크립트 객체 표기법. 당신은 이미 그 사람과 조금 친숙합니다! 이번 강의 에서 이에 대해 이야기했고 , 여기서는 JSON의 직렬화에 대해 살펴보았습니다 . 그것은 이유 때문에 그 이름을 얻었습니다. JSON으로 변환된 Java 객체는 실제로 JavaScript 객체와 똑같아 보입니다. 객체의 의미를 이해하기 위해 JavaScript를 알 필요는 없습니다.{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
하나의 객체를 전달할 필요는 없습니다. JSON에는 객체 배열도 포함될 수 있습니다.
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
JSON은 JavaScript 개체이므로 다음 JavaScript 데이터 형식을 지원합니다.
- 문자열;
- 숫자(숫자);
- 객체(객체);
- 배열(배열);
- 부울 값(참 및 거짓);
- 없는.
-
사람이 읽을 수 있는 형식입니다. 최종 사용자가 인간이라면 이는 분명한 이점입니다. 예를 들어, 서버는 비행 일정이 포함된 데이터베이스를 저장합니다. 인간 클라이언트는 집에 있는 컴퓨터 앞에 앉아 웹 애플리케이션을 사용하여 이 데이터베이스의 데이터를 요청합니다. 그가 이해할 수 있는 형식으로 데이터를 제공해야 하므로 JSON은 훌륭한 솔루션입니다.
-
간단. 초보적이라고 말할 수 있습니다 :) 위에서 우리는 두 개의 JSON 파일의 예를 제시했습니다. 그리고 JavaScript의 존재(객체는 말할 것도 없고)에 대해 들어본 적이 없더라도 거기에 어떤 종류의 객체가 설명되어 있는지 쉽게 이해할 수 있습니다.
전체 JSON 문서는 몇 장의 그림이 포함된 하나 의 웹 페이지 입니다. -
펼친. JavaScript는 지배적인 프런트엔드 언어이며 용어를 규정합니다. JSON을 사용하는 것은 필수입니다. 따라서 수많은 웹 서비스가 JSON을 데이터 교환 형식으로 사용합니다. 모든 최신 IDE는 JSON 형식(Intellij IDEA 포함)을 지원합니다. 가능한 모든 프로그래밍 언어에 대해 JSON을 사용하기 위해 많은 라이브러리가 작성되었습니다.
YAML
존재 초기에는 "또 다른 마크업 언어"라는 또 다른 마크업 언어(Yet Another Markup Language)를 의미했습니다. 당시에는 XML의 경쟁자로 자리 잡았습니다. 이제 시간이 지나서 "YAML은 마크업 언어가 아닙니다"("YAML은 마크업 언어가 아닙니다")를 의미합니다. 그는 같은 것입니다? 컴퓨터 게임을 위해 전사, 마법사, 도둑이라는 3개의 캐릭터 클래스를 만들어야 한다고 가정해 보겠습니다. 힘, 민첩성, 지구력, 무기 세트 등의 특성을 갖습니다. 클래스 설명이 포함된 YAML 파일은 다음과 같습니다.classes:
class-1:
title: Warrior
power: 8
agility: 4
stamina: 7
weapons:
- sword
- spear
class-2:
title: Mage
power: 5
agility: 7
stamina: 5
weapons:
- magic staff
class-3:
title: Thief
power: 6
agility: 6
stamina: 5
weapons:
- dagger
- poison
YAML 파일에는 트리 구조가 있습니다. 일부 요소는 다른 요소 내에 중첩됩니다. 각 레벨을 표시하기 위해 특정 수의 공백을 사용하여 중첩을 제어할 수 있습니다. YAML 형식에는 어떤 장점이 있나요?
-
사람이 읽을 수 있습니다. 또, 설명이 없는 yaml 파일을 보더라도 거기에 어떤 객체가 설명되어 있는지 쉽게 이해할 수 있습니다. YAML은 yaml.org 의 메인 페이지가 일반 yaml 파일이라는 점을 사람이 얼마나 잘 읽을 수 있는지를 나타냅니다. :)
-
컴팩트함. 파일 구조는 공백으로 구성됩니다. 대괄호나 따옴표를 사용할 필요가 없습니다.
-
프로그래밍 언어 고유의 데이터 구조를 지원합니다. JSON 및 기타 여러 형식에 비해 YAML의 큰 장점은 다양한 데이터 구조를 지원한다는 것입니다. 그 중에는:
-
!!map
중복 가능성이 없는 키:값 쌍의 순서가 지정되지 않은 컬렉션입니다. -
!!omap
중복될 가능성이 없는 키:값 쌍의 순서가 지정된 시퀀스입니다. -
!!pairs:
중복 가능성이 있는 키:값 쌍의 순서가 지정된 시퀀스입니다. - !!set
서로 같지 않은 순서 없는 값 시퀀스입니다. - !!seq
임의 값의 시퀀스;
이러한 구조 중 일부는 Java에서 익숙할 것입니다! :) 이 기능 덕분에 프로그래밍 언어의 다양한 데이터 구조를 YAML 형식으로 직렬화할 수 있습니다.
-
-
앵커 및 별칭을 사용하는 기능
"앵커" 및 "별칭"이라는 단어의 번역 - "앵커" 및 "가명". 원칙적으로 이는 YAML에서 이러한 용어의 본질을 매우 정확하게 설명합니다.
이를 통해 yaml 파일의 요소를 식별하고 해당 요소가 반복적으로 발생하는 경우 파일의 나머지 부분에서 참조할 수 있습니다. 앵커는 기호를 사용하여 생성되고
&
별칭은 을 사용하여 생성됩니다*
.Leo Tolstoy의 책에 대한 설명이 포함된 파일이 있다고 가정해 보겠습니다. 매번 작성자 이름을 수동으로 작성하는 것을 피하기 위해 앵커 "leo"를 만들고 필요할 때 별칭을 사용하여 참조하기만 하면 됩니다.
books: book-1: title: War and Peace author: &leo Leo Tolstoy year: 1869 book-2: title: Anna Karenina author: *leo year: 1873 book-3: title: Family Happiness author: *leo year: 1859
일부 파서를 사용하여 이 파일을 읽으면 "Leo Tolstoy" 값이 별칭 대신 올바른 위치로 대체됩니다.
- YAML에 다른 형식의 데이터를 포함할 수 있습니다. 예를 들어 JSON은 다음과 같습니다.
books: [ { "title": "War and Peace", "author": "Leo Tolstoy", "year": 1869 }, { "title": "Anna Karenina", "author": "Leo Tolstoy", "year": 1873 }, { "title": "Family Happiness", "author": "Leo Tolstoy", "year": 1859 } ]
기타 직렬화 형식
XML
이 형식은 소위 태그 트리를 기반으로 합니다.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
각 요소는 여는 태그와 닫는 태그(<> 및 </>)로 구성됩니다. 각 요소에는 중첩된 요소가 있을 수 있습니다. XML은 JSON 및 YAML보다 열등하지 않은 일반적인 형식입니다(실제 프로젝트에서의 사용에 대해 이야기하는 경우). XML에 대한 별도의 강의가 있습니다 .
BSON(바이너리 JSON)
이름에서 알 수 있듯이 JSON과 매우 유사하지만 사람이 읽을 수 없으며 이진 형식의 데이터에 대해 작동합니다. 이는 이미지 및 기타 첨부 파일을 저장하고 전송하는 데 매우 편리합니다. 또한 BSON은 JSON에서 사용할 수 없는 일부 데이터 유형을 지원합니다. 예를 들어 날짜(밀리초 형식) 또는 JavaScript 코드 조각을 BSON 파일에 작성할 수 있습니다. 널리 사용되는 NoSQL 데이터베이스 MongoDB는 정보를 BSON 형식으로 저장합니다.위치 기반 프로토콜
어떤 상황에서는 전송되는 데이터의 양을 대폭 줄여야 합니다(예: 데이터가 많아 로드를 줄여야 하는 경우). 이런 상황에서는 위치 기반 프로토콜을 사용할 수 있습니다 . 즉, 매개변수 자체의 이름 없이 매개변수 값을 전달하는 것입니다."Leo Tolstoy" | "Anna Karenina" | 1873
이 형식의 데이터는 완전한 JSON 파일보다 훨씬 적은 공간을 차지합니다. 물론, 다른 직렬화 형식도 있지만 지금 당장 다 알 필요는 없습니다 :) 현재 애플리케이션 개발의 업계 표준이 된 형식을 숙지하고 각 형식의 장점과 차이점을 기억해 두는 것이 좋습니다. . 그리고 우리 강의가 끝났습니다 :) 오늘 몇 가지 문제를 푸는 것을 잊지 마세요! 또 보자! :)
GO TO FULL VERSION