minzzl

[1] 데이터 포맷 - JSON / XML 본문

면접을 위한 CS 전공지식 노트/개발자필수지식

[1] 데이터 포맷 - JSON / XML

minzzl 2023. 5. 11. 14:41
728x90
반응형

안녕하세용 

저는 취업 준비를 슬슬 시작해볼까합니다 ....

그래서 이렇게 하는게 맞는지는 모르겠어나 .. 코테 공부와 CS 공부를 병행해볼까합니다 !

어떻게 공부를 해볼까하다가 .. 뭔가 가이드라인이 있으면 좋을 것 같아 책을 사보았습니다.

이 책을 토대로 공부하고, 네트워크, 데이터 베이스, 알고리즘과 같이 본격적인 전공 공부로 들어갔을 때 마주 할 부족한 내용은 KMOOK로 채워볼 생각입니당!

 

근데 하루에 얼마나 해야할지에 대한 감이 안 잡혀 좀 애를 먹었는데요 ... 

사실 전전긍긍해봤자 답은 없는 것 같아 우선 천천히 시작하며 부족하다 싶으면 양을 늘리는 방식으로 진행할 것 입니다!

 

오늘은 데이터 포맷에 대한 내용을 배웠습니다 :)

 

우선 우리는 "데이터" 와는 단어와 아주 친숙합니다. 이를 개발의 관점에서 바라본다면 어떻게 정의할 수 있을까요?

 

데이터

 

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

 

너무 어렵고 딱딱해보이죠?

 

우리는 서비스를 개발할 때, 데이터를 근간으로합니다.

예를 들어 교통 정보 시스템을 구현한다고 합시다. 각 지역의 교통 정보를 수집하여, 이를 지도에 나타낸다고 할 때, 우리가 수집한 이 교통 정보 "데이터"는 서비스의 기초가 됩니다. 그렇게에 우리는 데이터에 주목할 필요가 있습니다.

 

또한 이러한 데이터를 나타내는 형식은 아주 다양합니다.

 

출처 : http://nationalatlas.ngii.go.kr/pages/page_320.php

다음과 같이 표로 나타낼 수도, 그렇지 않을 수도 있습니다.

 

즉 데이터를 나타낼 수 있는 방법은 무궁무진합니다. 

 

우리는 이렇듯, 표현방법이 무궁무진한 데이터를 기반으로 서비스를 구축하고 나아가 컴퓨터간 통신이 가능하도록해야합니다. 

그렇게 떄문에 이러한 데이터들을 주고받을 때의 양식을 규제할 필요가 있습니다. 즉, 어떻게 표현할지 약속을 할 필요가 있습니다!

대표적으로는 JSON과 XML이 있습니다!

 

이들은 일반적으로 서버에서 클라이언트로 데이터를 보낼때 사용되는 파일언어이며, 요즘은 JSON을 사용하는 추세입니다.

 

 

먼저 JSON부터 살펴보겠습니다 :)

 

JSON

JSON(Javascript Objet Notation) 은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 표준 포멧입니다. 여기서 javascript 객체 문법으로 구조화되었다는 것은 javascript 객체 문법을 따르는 문자열이라는 것입니다. 

 

 

다시말해, JSON은 javascript의 undefined를 제외한 기본 데이터 타입인 문자열, 숫자, 배열, 불리언, 그리고 다른 객체를 포함할 수 있습니다.

 

저의 정보를 JSON 양식으로 표현해보겠습니다.

 

{
	"이름" : "김민지",
    "키우는애완동물이름" : "밀크",
    "취미" : ["수영","플라잉요가"]
}

 

다음과 같이 우리는 key : value 형태로 나타낼 수 있는 것도 확인 할 수 있습니다 ! 다만 JSON은 순수한 데이터 포맷이기 때문에 key - value 만 담을 수 있을뿐 메서드는 담을 수 없습니다! 그리고 undefined도 불가능합니다.

 

그 다음은 XML입니다!

 

XML

출처 : https://opensource.com/article/18/12/xml-browser

XML(Extensible Markup Language) 는 위의 그림과 같이 중괄호가 아니라 열린 태그 닫힌 태그로 이루어진 구조의 데이터를 의미합니다.  우리가 흔히 알고 있는 HTML과 매우 유사한 마크업 언어입니다. 그러나 HTML이 div body와 같이 정해진 tag가 있는 반면에, XML은 기본 제공이름이 없습니다.

 

제일 위에 보이는 버전 및 인코딩 방법에 대한 것은 프롤로그라고합니다.

참고로 JSON과 비교했을 때, XML의 경우 열린태그와 닫힌태그를 모두 써야하므로 글자수가 더 많이 듭니다. 따라서 XML이 JSON에 비해 무겁습니다. 

 

공통점 차이점
1. 데이터를 저장하고 전달하기 위해 만들어짐
2. 기계뿐만 아니라 사람도 쉽게 읽을 수 있음
3. 계층적인 데이터 구조
4. 다양한 프로그래밍 언어에 의해 파싱 될 수 있음
5. XMLHttpRequest 객체를 이용하여 서버로 부터 데이터를 전송받을 수 있음
1. JSON은 종료 태그를 사용하지 않음
2. JSON 구문이 XML의 구문보다 더 짧음
3. JSON 데이터가 XML 데이터보다 더 빨리 읽고 쓸 수 있음
4. XML은 배열을 사용할 수 없지만, JSON은 배열을 사용할 수 있음
5. XML은 XML 파서로 파싱되며, JSON은 자바스크립트 표준함수인 eval() 함수로 파싱됨

 

728x90
반응형

'면접을 위한 CS 전공지식 노트 > 개발자필수지식' 카테고리의 다른 글

[4] 컨테이너, 그리고 도커  (0) 2023.05.15
[3] 클라우드, SaaS, IaaS, Paas  (0) 2023.05.13
[2] API  (1) 2023.05.13