의견.png

"제이슨"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(참고자료)
56번째 줄: 56번째 줄:
 
==참고자료==
 
==참고자료==
 
* 네이버 지식백과 홈페이지 - https://terms.naver.com/entry.nhn?docId=5714735&cid=42346&categoryId=42346 2018-12-13
 
* 네이버 지식백과 홈페이지 - https://terms.naver.com/entry.nhn?docId=5714735&cid=42346&categoryId=42346 2018-12-13
*  Lee Sungyu, 〈[https://wit.nts-corp.com/2014/08/13/1925 [번역] 자바스크립트의 역사 – 과거]〉《WIT – NTS UIT BLOG》, 2014-08-13
+
*  Lee Sungyu, 〈[https://wit.nts-corp.com/2014/08/13/1925 (번역) 자바스크립트의 역사 – 과거]〉《WIT – NTS UIT BLOG》, 2014-08-13
 
* 나무위키 공식 홈페이지 - https://namu.wiki/w/JSON  
 
* 나무위키 공식 홈페이지 - https://namu.wiki/w/JSON  
 
* 위키백과 공식 홈페이지 - https://ko.wikipedia.org/wiki/JSON
 
* 위키백과 공식 홈페이지 - https://ko.wikipedia.org/wiki/JSON

2019년 7월 23일 (화) 09:56 판

제이슨(JSON) 로고와 글자

제이슨(JSON)은 JavaScript Object Notation의 약자로서, 자바스크립트(JavaScript) 토대로 개발되었다.

개요

여러 프로그래밍 언어에도 사용할 수 있어 독립형 언어이며 텍스트로 기술하여 사람도 쉽게 읽고 작성할 수 있다. 웹 브라우저와 웹 서버 간 비동기 통신, 웹 서버 간의 데이터 교환 등에 주로 사용된다. IETF RFC 7159(The JavaScript Object Notation(JSON) Data Interchange Format) 표준과 ECMA-404(The JSON Data Interchange Syntax) 표준으로 제정되어 있다.

JSON은 자바스크립트(ECMA-262 3rd edition, 1999)를 토대로 개발되었으며, 2000년대 미국의 컴퓨터 프로그램 개발자인 더글라스 크락포드(Douglas Crockford)가 확산시켰다. 특히, 웹 브라우저에서 비동기 처리에 사용되는 에이잭스(AJAX)가 데이터 교환 형식으로 JSON을 사용하면서 널리 알려졌다. AJAX가 기존 사용하던 XML 기반의 메시지 포맷은 시작 태그와 끝 태그를 포함하여 메시지 크기가 커지는 문제가 있었다. 이를 해결하기 위해 JSON으로 대체하였다. 대부분의 웹 기반 애플리케이션에서 데이터 교환 형식으로 XML 대신 JSON을 활용한다.[1]

등장 배경

  • 1997년 동적인 HTML

동적으로 변하는 컨텐츠와 웹페이지의 외관을 만들 수 있게 되었다. 따라서 페이지의 문서 객체 모델(DOM)을 다루어 컨텐츠와 스타일을 변화하고, 요소를 보여주거나 숨기는 것과 같은 것들을 가능하게 했다. 동적인 HTML은 IE4와 넷스케이프 네비케이터4에서 처음 등장하였다.

  • 1999년 XMLHttpRequest이 API는 클라이언트 측 스크립트를 http 또는 https로 서버에게 요청하고, 텍스트 형식으로(xml html json과 같은..) 데이터를 받는 것을 가능하게 했다.그것은 ie5에서 소개되었다.
  • 2001년 JSON, 자바스크립트 기반의 데이터 교환 포맷
  • 2001년 더글라스 크락포드는 lisp에서 아이디어를 얻어 텍스트 형식으로 데이터를 저장하는 자바스크립트 문법을 ‘JSON’이라 이름 붙이고 문서화했다.

JSON은 객체, 배열, 문자열, 숫자들, 불린 등을 구조적인 데이터로 표현하기 위해 자바스크립트 리터럴로 사용된다.[2]

역사

특징

  • 자바스크립트를 확장하여 만들어졌다.
  • 자바스크립트 객체 표기법을 따른다.
  • 사람과 기계가 모두 읽기 편하도록 고안되었다.
  • 프로그래밍 언어와 운영체제에 독립적이다.

활용

JSON은 자바스크립트(JavScript)의 구문 형식을 따르지만, C, C++, C#, 자바(Java), 파이선(Python) 등의 프로그램 언어와도 함께 사용되는 플랫폼과 프로그래밍 언어 면에서 독립적인 언어이다. 데이터 구조는 속성(name)과 값(value) 한 쌍으로 구성되며, “속성: 값” 형식으로 데이터 객체를 표현한다. 값(value)의 자료형으로 수(number), 문자열(string), 객체(object), 배열(array), 참/거짓(boolean), 또는 빈값(null)이 지원된다. 배열(array)은 대괄호([ ])로, 객체는 속성 · 값 쌍의 집합으로 중괄호({ })를 사용하여 표현하며, 객체 간의 구분은 쉼표(,)로 한다.[1]

종류

문제점과 대안

단점

  • 문법 오류에 민감하다. 콤마가 누락되거나 중괄호가 잘못 닫히는 등 구두점에서 오타가 나면 전체 JSON파일이 망가진다.
  • 주석을 지원하지 않는다. 그래서 설정 파일을 JSON으로 작성하는 것은 어렵다.
  • 데이터 타입을 강제할 수 없다. JSON 스키마로 보완은 가능하지만 데이터 스스로 자신의 타입을 기술할 방법이 없다.[3]

대안

위와 같은 단점을 보완하고자 YAML 등의 대체 포맷을 쓰기도 하나 기계간 데이터 전송에 주로 쓰이는 JSON의 특성상 위의 단점은 큰 문제가 아니라서 JSON은 2017년 11월 현재도 XML과 대등하게 널리 쓰이고 있다.[3]

장점

  • JSON은 텍스트로 이루어져 있으므로, 사람과 기계 모두 읽고 쓰기 쉽다.
  • 프로그래밍 언어와 플랫폼에 독립적이므로, 서로 다른 시스템간에 객체를 교환하기에 좋다.
  • 자바스크립트의 문법을 채용했기 때문에, 자바스크립트에서 eval 명령으로 곧바로 사용할 수 있다. 이런 특성은 자바스크립트를 자주 사용하는 웹 환경에서 유리하다. 그러나 실질적으로 eval 명령을 사용하면 외부에서 악성 코드가 유입될 수 있다. 모질라 파이어폭스 3.5, 인터넷 익스플로러 8, 오페라 10.5, 사파리, 구글 크롬 등 대부분의 최신 웹 브라우저는 JSON 전용 파서 기능을 내장하고 있으므로 이런 기능을 사용하는 것이 더 안전할 뿐만 아니라 빠른 방법이다.[4]

평가와 전망

각주

  1. 1.0 1.1 네이버 지식백과 홈페이지 - https://terms.naver.com/entry.nhn?docId=5714735&cid=42346&categoryId=42346 2018-12-13
  2. Lee Sungyu, 〈[번역 자바스크립트의 역사 – 과거]〉《WIT – NTS UIT BLOG》, 2014-08-13
  3. 3.0 3.1 나무위키 공식 홈페이지 - https://namu.wiki/w/JSON
  4. 위키백과 공식 홈페이지 - https://ko.wikipedia.org/wiki/JSON

참고자료

같이 보기


  질문.png 이 문서는 로고가 필요합니다.  

  의견.png 이 제이슨 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.