티스토리 뷰

본 내용은 스마트인재개발원 랩실에서

06/24 2주차 발표에 진행했던 JSON 주제를 포스팅 해보려고 합니다!

 

JSON - Java Script Object Notation

 

JSON??

자바스크립트에서 데이터를 저장하는 방식이자, 자바스크립트에서 객체를 만들 때 사용하는 표현식

 

보시는 바와 같이, {} 중괄호 안에 key와 value 값이  :(콜론)을 사이에 두고 쌍으로 이루어져 있습니다.

브라우저 뿐만 아니라 모바일에서 서버와 데이터를 주고 받을 때,

또는 서버와 통신을 하지 않아도 오브젝트를 파일 시스템에 저장할 때에도 JSON데이터 타입을 이용합니다.

 

 >> C언어나 java, Python, php, 코틀린..등등 언어들에 상관없이 거의 대부분의 언어들이

json으로 직렬화(serialization)object를 다시 그 언어의 특징에 맞게 object로 변환하고,

Object를 다시 json으로 직렬화 하는 것을 지원해주거나 많이 쓰여지고 있는 외부 라이브러리를 통해서 가능하게 됩니다.

 

직렬화와 역직렬화를 알고 넘어가자!

 

여기서 직렬화-- Serialization! 라는 것은 제가 찾아보고 이해한 내용으로 정리해 보자면,
직렬화라는 단어는 USB 메모리를 먼저 떠올려 봅시다.

 

USB메모리란 Universal Serial Bus의 줄임말로 시리얼은 연쇄, 연속적으로 이어지는 무언가를 뜻합니다.

즉, 이 JSON에서 직렬화를 한다는 의미는 object를 연속된 string 데이터나 연속된 bytes 데이터로 바꾸는 것을 뜻합니다.
object는 메모리에 존재하고 추상적인데 비해서 string/bytes 데이터는 드라이브에 저장도 할수 있고 통신선을 통해서 전송할 수도 있기 때문입니다.

반대로 string/bytes타입의 데이터로부터 object를 생성하는 행위는 역직렬화, deserialization이라 부릅니다.

 

영화 '스타트랙'에서의 순간이동기술

그래도 직렬화/역직렬화가 잘 와닿지 않으신다면, 영화 '스타트랙'에서의 순간이동 장면을 떠올려 봅시다.

스타트랙의 크루들은 우주에서 여러 행성을 돌아다니며 임무를 수행하게 되는데요,

그때마다 우주선으로 돌아갈 때 혹은 특정한 장소로 다시 이동할 때 순간이동 기술을 씁니다.

이때 순간이동 기술은 그냥 어떤 객체가 그대로 뿅! 하고 순식간에 사라졌다 나타나는 것이 아닌

가장 작은 원자 타입으로 분해되어 전송이 되고 다시 원하는 장소에 재조립(재결합)을 통해 원래 사람의 형태(객체)

로 돌아오는 것을 볼 수 있습니다.

이처럼 JSON의 직렬화 / 역직렬화는 이것을 서로 반대로 적용한다고 생각하면 이해가 더 쉬울 것 입니다.

 

즉, 언어에 구속되지 않고 자료를 쉽게 주고받을 수 있는 포맷이라는 말!

 

다음 포스팅에서는 JSON의 기본 구조 형태와 직렬화/역직렬화와 관련된 두 가지 변환 방법에 대해 다루겠습니다!

 

 

 

 

 

해당 수업은 '스마트인재개발원'에서 '지능형IoT 융합SW 전문가과정(NCS)과정'에서 진행한 교육내용입니다.

 

 

스마트인재개발원

4차산업혁명시대를 선도하는 빅데이터, 인공지능, 사물인터넷 전문 '0원' 취업연계교육기관

www.smhrd.or.kr

 

댓글