JSON, 직렬화 및 역직렬화, XML

hahagarden·2023년 8월 31일
0

CS

목록 보기
1/6

직렬화/역직렬화

직렬화: 외부의 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터를 변환하는 기술
역직렬화: 직렬화의 반대. 내부의 시스템에서 사용할 수 있도록 바이트 형태를 변환

JSON.parse 역직렬화(deserialization)
JSON.stringify 직렬화(serialization)

JSON

JavaScript 객체 문법으로 구조화된 데이터 교환 형식이다. (JavaScript 객체와 유사하지만 다르다.) python, javascript, java 등 여러 언어에서 사용한다.

{
	"name" : "goo",
    "age" : 30
}

JavaScript객체와 JSON

JSON 특징

  • key, value로 구성된다. (key가 중복되면 덮어쓴다)
  • 객체 뿐만 아니라 배열, 문자열일 수 있다.([1,2,3,4], "hi")
  • JSON 파일을 언어마다 다른 함수로 객체, 딕셔너리 등으로 변환해서 사용한다.
  • 프로그래밍 언어, 플랫폼에 독립적이다. (ES가 업데이트 되든, Python 버전이 업그레이드 되든, JSON은 영향을 받지 않고 어디서나 사용할 수 있다. 서로 다른 시스템 간에 데이터 교환할 수 있다.)
  • 주로 API의 응답 형태, 시스템을 구성하는 설정 파일에 활용된다.

데이터 교환 형식이다

데이터 교환 형식이다.
"그냥 메모장에 적어서 주지 말고 어떤 양식에 맞춰서 줘"
JavaScript의 객체를 Python의 딕셔너리로 사용하려면? JSON으로 보낸다.

스키마를 잘 구축해야 한다 = 어떤 데이터의 타입을 맞춰주어야 한다.

name: string
id: string | number

XML

마크업 형태를 쓰는 데이터 교환 형식이다.

마크업: 태그 등을 이용하여 문서나 데이터의 구조를 나타내는 방법, 속성을 부여할 수 있다.

XML의 구성

XML 특징

  • 여러 언어에서 독립적으로 쓰인다.
  • sitemap.xml으로 쓰인다.

sitemap.xml
크롤링봇이 구글 데이터베이스에 페이지 정보를 저장하는 것을 도와준다.
사이트가 매우 크거나 독립적인 페이지는 크롤링봇이 모를 수 있다.
그래서 서비스를 만들 때 제출하는 것이 사이트맵.
크롤링봇이 크롤링을 잘 할 수 있도록 모든 페이지들을 리스트업하여 정보를 기입해놓음. 구글 등 사이트에 가이드라인이 있다.

XML과 HTML의 차이

  1. XML은 태그가 정해져 있지 않다. HTML은 body, div, p, h1 등 미리 정의된 태그를 사용한다.
  2. HTML은 데이터를 표시하는 용도이고, XML은 데이터를 저장 및 전송하는 용도이다.
  3. XML은 대소문자를 구분한다.

XML과 JSON의 차이

  1. JSON과 비교했을 때 닫힌 태그가 계속해서 들어가기 때문에 JSON에 비해 (용량이) 무겁다.
  2. XML은 역직렬화를 위해 더 많은 작업이 필요하다. JSON은 JS의 내장함수를 사용할 수 있는데 XML은 외부 라이브러리를 로드해야 한다.
profile
공부한 내용을 기록합니다. 틀린 정보 피드백은 언제나 감사합니다 🌷 이전 블로그 https://hahagarden.tistory.com/

0개의 댓글