- docx(마이크로소프트 워드 형식);
- pdf(Adobe 형식);
- mobi(Amazon Kindle 장치에서 일반적으로 사용됨)
- 그리고 훨씬 더 (ePub, djvu, fb2 등).
JSON
자바스크립트 객체 표기법. 당신은 이미 이 형식에 대해 조금 알고 있습니다! 우리는 이 수업 에서 그것에 대해 이야기했고 바로 여기에서 JSON으로의 직렬화를 다루었습니다 . 이유 때문에 이름을 얻었습니다. JSON으로 변환된 Java 객체는 실제로 JavaScript의 객체와 똑같이 보입니다. 개체를 이해하기 위해 JavaScript를 알 필요는 없습니다.
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
}
우리는 단일 객체를 보내는 것에 국한되지 않습니다. JSON 형식은 개체 배열을 나타낼 수도 있습니다.
[
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
},
{
"title": "Demons",
"author": "Fyodor Dostoyevsky",
"year": 1872
},
{
"title": "The Seagull",
"author": "Anton Chekhov",
"year": 1896
}
]
JSON은 JavaScript 개체를 나타내므로 다음 JavaScript 데이터 형식을 지원합니다.
- 문자열;
- 숫자;
- 사물;
- 배열;
- 부울(참 및 거짓);
- 없는.
-
사람이 읽을 수 있는 형식. 최종 사용자가 인간인 경우 이는 명백한 이점입니다. 예를 들어 서버에 비행 일정이 있는 데이터베이스가 있다고 가정합니다. 집에서 자신의 컴퓨터에 앉아 있는 인간 고객은 웹 애플리케이션을 사용하여 이 데이터베이스에서 데이터를 요청합니다. 그가 이해할 수 있는 형식으로 데이터를 제공해야 하기 때문에 JSON은 훌륭한 솔루션입니다.
-
간단. 매우 간단합니다 :) 위에서 우리는 두 개의 JSON 파일의 예를 들었습니다. 그리고 JavaScript(JavaScript 객체는 말할 것도 없고)에 대해 들어본 적이 없더라도 거기에 설명된 객체 종류를 쉽게 이해할 수 있습니다.
전체 JSON 문서는 몇 장의 사진이 있는 웹 페이지 로 구성됩니다. -
널리 사용됩니다. JavaScript는 지배적인 프런트 엔드 언어이며 자체 요구 사항이 있습니다. JSON을 사용하는 것은 필수입니다. 따라서 수많은 웹 서비스에서 JSON을 데이터 교환 형식으로 사용합니다. 모든 최신 IDE는 JSON 형식(IntelliJ IDEA 포함)을 지원합니다. JSON으로 작업할 수 있도록 모든 종류의 프로그래밍 언어에 대해 많은 라이브러리가 작성되었습니다.
YAML
처음에 YAML은 "Yet Another Markup Language"의 약자였습니다. 시작 당시에는 XML의 경쟁자로 자리 잡았습니다. 이제 시간이 지남에 따라 YAML은 "YAML은 마크업 언어가 아닙니다"를 의미하게 되었습니다. 정확히 무엇입니까? 컴퓨터 게임에서 캐릭터를 나타내기 위해 Warrior, Mage, Thief라는 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 파일에서 일부 요소를 식별한 다음 반복적으로 발생하는 경우 파일의 나머지 부분에서 참조할 수 있습니다. & 기호를 사용하여 앵커를 만들고 *를 사용하여 별칭을 만듭니다 .
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)
이름에서 알 수 있듯이 BSON은 JSON과 매우 유사하지만 사람이 읽을 수 없으며 이진 데이터를 사용합니다. 결과적으로 이미지 및 기타 첨부 파일을 저장하고 전송하는 데 매우 좋습니다. 또한 BSON은 JSON에서 사용할 수 없는 일부 데이터 유형을 지원합니다. 예를 들어 BSON 파일에는 날짜(밀리초 형식) 또는 JavaScript 코드 조각이 포함될 수 있습니다. 대중적인 MongoDB NoSQL 데이터베이스는 정보를 BSON 형식으로 저장합니다.위치 기반 프로토콜
경우에 따라 전송되는 데이터의 양을 대폭 줄여야 합니다(예: 데이터가 많고 로드를 줄여야 하는 경우). 이 상황에서 위치 기반 프로토콜을 사용할 수 있습니다. 즉, 매개변수 자체의 이름 없이 매개변수 값을 보낼 수 있습니다.
"Leo Tolstoy" | "Anna Karenina" | 1873
이 형식의 데이터는 전체 JSON 파일보다 몇 배 적은 공간을 차지합니다. 물론 다른 직렬화 형식도 있지만 지금 당장 다 알 필요는 없습니다 :) 응용 프로그램을 개발할 때 현재 산업 표준 형식에 익숙하고 그 장점과 차이점을 기억하는 것이 좋습니다. 또 다른. 이것으로 수업이 끝납니다 :) 오늘 몇 가지 과제를 해결하는 것을 잊지 마세요! 다음 시간까지! :)
GO TO FULL VERSION