Computer Science

JSON이란?

닉네임못짓는사람 2022. 1. 10. 09:48
반응형

JSON(제이슨)?


JSON이란 JavaScript Object Notation의 축약어로, JavaScript에서 객체를 표현하는 방법이지만,

주로 데이터를 저장하거나 전송할 때 사용하는 경량 DATA 교환 형식으로 사용된다.

 

JSON은 하나의 속성이 키-값의 한 쌍으로 구성되어 데이터를 표현한다.

{
    "name" : "홍길동",
    "age"  : "26"
}

위와 같이 name, age라는 '속성'과 홍길동, 26이라는 '값'이 각각 서로 쌍을 짓는 형태이다.

 

JSON은 다음과 같은 문법을 사용한다.

  1. JSON객체는 { } (중괄호)로 표기한다.
  2. 배열은 [ ] (대괄호)로 표기한다.
  3. 각 속성은 Key와 Value쌍으로 이루어지며, 둘은 : (콜론)으로 구분한다.
  4. 각 속성들은 , (쉼표)를 사용해서 구분한다.

JSON에 들어갈 수 있는 자료형은 다음과 같다.

  1. Number(수)
  2. String(문자열)
  3. Boolean(논리값)
  4. Array(배열)
  5. Object(객체)
  6. null
{
    "name" : "홍길동",
    "age"  : 26,
    "병역" : true,
    "특기" : ["담넘기", "도술"],
    "가족" : {"부" : "홍상직", "모" : "춘섬", "형": "홍인형"}
}

위와 같이 JSON객체를 생성하여 사용할 수 있다.

 

장점

  1. 함축적으로 최소한의 정보만을 가지고 있기 때문에 용량이 작고 속도가 빠르다.
  2. 언어에 독립적이며, 사용하기가 쉽다.
  3. 객체의 구조를 파악하기 쉬워 가독성이 좋다.

단점

  1. XML에 비해 문법 오류에 취약하다.
  2. XML의 경우 스키마를 이용한 검증이 가능한데, JSON은 불가능하다.
  3. 주석을 지원하지 않는다.

문제점

AJAX는 데이터만이 아니라 JavaScript자체도 전달할 수 있다.

JSON데이터라고 받은 것이 단순 데이터가 아니고, 실행될 수 있다는 말이다.

 

공격자들은 이를 악용해 악성 스크립트를 실행시키는 공격을 할 수 있고,

이러한 부분에서 보안 취약점이 생길 수 있다.

 

이러한 문제점 해결을 위해 JSON관련 라이브러리를 사용하여

받은 JSON에서 순수하게 데이터만 추출하도록 하기도 한다.

반응형

'Computer Science' 카테고리의 다른 글

[자료구조] 트리(Tree)  (0) 2022.01.13
동기(Synchronous)와 비동기(Asynchronous)  (0) 2022.01.11
탐색 알고리즘(선형, 이진, 해시)  (0) 2022.01.09
MVC, MVP, MVVM  (0) 2022.01.06
OSI 7계층 (Open System Intercon)  (0) 2021.12.29