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
]
}
}
한계
- 주석을 사용할 수 없다.
- 서버와 클라이언트 간 데이터 규격이 변경되는 상황을 인지할 수 없어 유지에 대한 어려움
- 서버에서 JSON 파일을 업데이트하면, 같은 규격의 키와 값을 사용하여 모든 클라이언트는 동일하게 반영해야된다. 즉, 클라이언트는 바뀐 곳을 찾아서 직접 수정해야 하므로 누락되기 쉽다.
- 때로는 버전을 주소에 넣어서 해결하는 경우도 존재해 주소를 변경해야됩니다.
- https://example.com/v1/~
- https://example.com/v2/~
- 트래픽 오버헤드
- JSON 규격 데이터는 읽기 쉽지만, 텍스트 기반이기 때문에 데이터를 표현하는데 드는 비용이 크다는 단점이 존재함으로써 많은 데이터를 빠르게 주고받아야 하는 환경에서는 비효율적입니다.
'컴퓨터 기초 및 개념' 카테고리의 다른 글
해시 함수(Hash Funtion)란? (0) | 2022.12.11 |
---|---|
IT 필수 지식 - 1. IT 큰그림 (1) | 2022.05.15 |
문자열 인코딩 개념(아스키 코드, EUC-KR, UTF-8, UTF-16, UTF-32) (0) | 2020.05.23 |
[컴퓨터 기초] Thread, Process, Context Switching (0) | 2019.07.24 |
[컴퓨터 기초] 메모리구조(Memory Structure) (0) | 2019.07.11 |