JSON이란?

728x90

 

JSON이란?

JSON(Javascript Object Notation)은 여러 형태의 데이터 구조화된 객체에 담아 처리하는 포맷 입니다. 즉, 숫자, 문자, 참 또는 거짓 등 모든 시리얼화 가능한 값(Serializable Value) 또는 Key-Value로 이루어진 객체(Object)에 담아 처리하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 포맷입니다.

가공된 JSON데이터는 텍스트 기반이기 때문에 사람이 쉽게 저장된 데이터를 읽고 수정할 수 있다는 장점이 있습니다

 

💡Serializable?

💡 직렬화(Serialization), 역직렬화(Deserialization)

직렬화란 Object를 Byte형태로 변환하는 기술을 뜻합니다. 즉, 객체를 저장하거나 메모리, DB, 파일등으로 데이터를 옮길때 필요한 기술을 말합니다.
역직렬화란 직렬화의 반대말로, 네트워크나 영구저장소에서 바이트를 저장되었던 원래의 객체로 변환하는것을 말합니다.

 

구조

중괄호({})로 시작하며 큰따옴표("")로 감싸진 데이터(Key)와 콜론(:)오는 다른 형태의 데이터(Value) 구조를 가집니다.

{
  "id": 1,
  "name": "BUZZ",
  "avg" 4.3,
  "subjects": {
    [
    "name": "Javascript",
    "grade": 4.5
    ],
    [
    "name": "Python",
    "grade": 4.3
    ]
  }
}

 

한계

  1. 주석을 사용할 수 없다.
  2. 서버와 클라이언트 간 데이터 규격이 변경되는 상황을 인지할 수 없어 유지에 대한 어려움
    • 서버에서 JSON 파일을 업데이트하면, 같은 규격의 키와 값을 사용하여 모든 클라이언트는 동일하게 반영해야된다. 즉, 클라이언트는 바뀐 곳을 찾아서 직접 수정해야 하므로 누락되기 쉽다.
    • 때로는 버전을 주소에 넣어서 해결하는 경우도 존재해 주소를 변경해야됩니다.
      • https://example.com/v1/~
      • https://example.com/v2/~
  3. 트래픽 오버헤드
    • JSON 규격 데이터는 읽기 쉽지만, 텍스트 기반이기 때문에 데이터를 표현하는데 드는 비용이 크다는 단점이 존재함으로써 많은 데이터를 빠르게 주고받아야 하는 환경에서는 비효율적입니다.