데이터 포맷 : JSON, XML

HS K·2023년 2월 5일
0
post-custom-banner

데이터

데이터란 이론을 세우는 데 기초가 되는 사실. 또는 바탕이 되는 자료나 관찰이나 실험, 조사로 얻은 사실이나 자료 등을 의미한다.


테이블 형태의 데이터

재귀적인 데이터

큰돌

  • 나이 : 30
  • 좋아하는 것 : [아령(10kg, 육각형), 바나나(초록색)]
    데이터는 복잡성을 지닙니다. 이러한 데이터를 컴퓨터가 주고받을려면 어떤 약속(포맷)을 정하고 주고받아야 합니다. 어떻게 “표현”하는가에 대한 답인 것이죠. 대표적으로 JSON, XML이 있습니다. 먼저 JSON을 살펴보겠습니다.

데이터포맷

컴퓨터가 데이터를 주고받기 위해 필요한 포맷

1. JSON

Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 표준 포맷


특징

(1) JSON 안에는 Javascript의 undefined를 제외한 기본 데이터 타입인 문자열, 숫자, 배열, 불리언 그리고 다른 객체를 포함할 수 있다.

(2) JSON은 순수한 데이터 포맷이다.
오직 key - value 들만 담을 수 있고, 메서드는 담을 수 없다.
또한 작은 따옴표가 아닌 큰 따옴표만을 사용해야 한다. 그리고 undefined는 불가하다.

(3) 자바스크립트와의 호환성이 좋다.

let a = `{ "지브리OST리스트" : [
{
"name" : "마녀 배달부 키키", "song" : "따스함에 둘러쌓인다면"
}, {
"song" : 1 }
] }`
a = JSON.parse(a) console.log(a)
  • 앞의 코드처럼 문자열로 받은 JSON 타입의 데이터 포맷을 JSON.parse 만을 통해 쉽게 자바스크립트 객체(Object)로 변환한 것을 볼 수 있다.

(4) 각 객체는 다른 타입을 가지고 있어도 괜찮다.

{
"지브리OST리스트" : [
	 {
		"name" : "마녀 배달부 키키", 
		"song" : "따스함에 둘러쌓인다면"
	 }, 
     {
		"name" : "하울의 움직이는 성",
		"song" : 1 
     }
  ] 
}
{
"지브리OST리스트" : [
	{
		"name" : "마녀 배달부 키키", 
      	"song" : "따스함에 둘러쌓인다면"
	}, 
  	{
      	"name" : "하울의 움직이는 성",
		"song" : "세계의 약속" 
    }
  ] 
}

(5) JSON의 자료형 : undefined, 메서드 등을 포함하지 않는다.

  • 수(Number)
  • 문자열(String):
  • 참/거짓(Boolean)
  • 배열(Array)
  • 객체(Object)
  • null

(6) 언어와 플랫폼이 독립적이다.

  • Java와 Javascript로 통신이 가능하다.
{
    "name" : "kundol",
    "like" : {
"아령" : {
"weight" : "10kg", "feature" : "육각형"
},
"바나나" : {
"color" : "초록색" }
} }

문자열로 받은 JSON 타입의 데이터 포맷을 JSON.parse 만을 통해 쉽게 자바스크립트 객체(Object)로 변환한 것을 볼 수 있다.

참조방법 - 객체의 접근

console.log(a.지브리OST리스트[0].name)

앞의 코드처럼 배열은 [0], [1] 이런식으로 접근하면 되고 해당 key에 대한 value는 .key 또는 [“key”] 이런식으로 접근해서 빼내면 된다.

json 주의점

JSON은 순수한 데이터 포맷이다. 오직 key - value 들만 담을 수 있고, 메서드는 담을 수 없다. 또한 작은 따옴표가 아닌 큰 따옴표만을 사용해야 합니다. 그리고 undefined는 불가하다.

JSON의 자료형

자바스크립트와 유사합니다만 undefined, 메서드 등을 포함하지 않습니다. - 수(Number)

  • 문자열(String):
  • 참/거짓(Boolean)
  • 배열(Array) - 객체(Object) - null

JSON의 장점

JSON은 텍스트로 이루어져 있으므로, 사람과 컴퓨터 모두 읽고 쓰기가 쉽다.
또한 프로그래밍 언어와 플랫폼에 독립적이므로, 서로 다른 시스템간에 객체를 교환하기에 좋다. 주로 API, config 파일에 활용되며 가볍다.


2. XML

JSON과 XML 비교

JSON

{
    "CSKnowledgeList": [{
            "name": "디자인패턴",
            "difficult": 5
        },
        {
            "name": "네트워크",
            "difficult": 4
        }
    ]
}

XML

<?xml version="1.0" encoding="UTF-8"?>
  <CSKnowledgeList>
  <CS>
<name>디자인패턴</name> <difficult>5</difficult> </CS>
<CS>
<name>네트워크</name> <difficult>4</difficult>
  </CS>
</CSKnowledgeList>

<?xml version="1.0" encoding="UTF-8"?>

이 한줄을 프롤로그라고 한다.

특징

(1) CSKnowledgeList라는 태그로 감싸져있는데 이러한 최상위태그는 하나만 사용이 가능하다.

(2) JSON과 비교했을 때 닫힌 태그가 계속해서 들어가기 때문에 JSON과 비교하면 무겁다. 또한 Javascript Object로 변환하기 위해서 JSON보다 더 많은 노력이 필요하다. (JSON은 JSON.parse 면 된다)


sitemap.xml

search engine optimization : 서비스를 운영할때, 검색어 엔진이 최상단에 올라갈 수 있도록 최적화 시키는 작업

사이트가 매우 크거나 서로 링크가 종속적으로 연결되지 않은 경우 크롤러가 일부 페이지를 누락하는 일이 있는데 이를 sitemap.xml이 방지한다.
sitemap xml을 서비스 최상단 루트에 설정해두면, 크롤링 봇은 사이트에 있는 페이지를 빠짐없이 저장한다.

따라서 사이트맵이 클수록 필요하다.

profile
주의사항 : 최대한 정확하게 작성하려고 하지만, 틀릴내용이 있을 수도 있으니 유의!
post-custom-banner

0개의 댓글