티스토리 뷰

프로그래밍

JSON은 무엇이며, 왜 필요한가?

★★★☆☆☆ 2020. 5. 11. 16:27

JSON은 무엇이며, 왜 필요한가?

대표이미지


|JSON이란?|

JSON은JavaScript Object Notation의 약어이다. 자바스크립트 언어 기반의 객체 표기, 즉 자바스크립트 언어에 그 근본을 두었다.


 JSON은 매우 경량화된 데이터 구조의 정의, 저장 및 교환을 위한 일종의 메시지 포맷이다. 


XML(eXtended Markup Language) 마크업 언어처럼 JSON도 일종의 마크업 언어로써의 문법을 가진다. 


그 이름에서 알 수 있듯이 XML처럼 JSON에서는 객체(Object)들을 JSON만의 독립적인 표현 방법을 통해서 자유롭게 표현하고 사용할 수 있다.


프로그래밍 마크업에서 XML과 자주 비교되는 JSON은 XML 보다 매우 간결하여 인코딩과 디코딩 과정이 직관적으로 빠르게 진행된다. 이러한 간결성을 기반으로 모바일 및 클라우드 컴퓨팅 시대에 여러 글로벌 웹서비스들의 API 호출 규약에서 기존 XML로 표준화되었던 많은 부분들이 점차 JSON을 표준 입출력 포맷으로 규정하고 있다. 


얼마 전에는 가장 유명한 오픈소스 기반 관계형 DBMS인 MySQL 서버도 이러한 시대의 요구를 빠르게 반영하여 스키마의 기본 컬럼 자료형으로 JSON을 공식적으로 추가시켰다.


현재 대부분의 최신 데스크탑 혹은 모바일 웹브라우져들은 이 JSON 파싱 기능을 포함하고 있다고 봐도 좋다. 


앞으로 웹, 웹앱, 스마트폰앱, 클라우드, 소셜 웹서비스, 사물인터넷(IOT; Internet Of Things) 등의 모두 연결된 커넥티드 세상에서 경쟁력있는 전문 개발자로 성장하고 싶다면 이제 기본이 된 JSON이라는 강력한 마크업 도구를 절대 놓치지 말자.


|JSON이 왜 필요하며 중요한가?|

JSON은 순수한 텍스트로 이루어져 있으므로, 사람과 기계가 모두 읽고 쓰기 쉽다. 


그리고 여러 프로그래밍 언어들과 플랫폼들에 종속되지 않아서, 서로 다른 시스템간에 객체 정보를 교환하기에 매우 좋다. 하지만 왜 굳이 JSON을 써야 더 좋은 것일까? 많은 선도 인터넷 기업들을 자사의 모든 IT 서비스에 왜 JSON을 기본으로 이용하도록 변경했던 것일까? 


JSON은 인터넷의 대중화인 HTML과 함께 기본으로 많이 사용되던 마크업 언어인 XML보다 컨텐츠의 표현성에서 다소 불리한 점이 많은 것이 사실이다. 


하지만 XML(eXtended Markup Language)과 SOAP(Simple Object Access Protocol) 기반의 원격 프로시져 호출(RPC; Remote Procedure Call) 방식의 웹서비스들이 '서비스 중심의 구조'로써 세상에 퍼져나가면서 여러가지 성능 문제들에 크게 봉착하게 되었다. 


특히 2007년 모바일 스마트폰인 아이폰의 첫 출시, 가상화/클라우드 컴퓨팅의 급 성장, 페이스북과 트위터 등을 중심으로 글로벌로 저변화된 소셜 네트워크의 일상화 등으로 인하여 '웹서비스 데이터 처리 수요'는 매우 가파르게 폭등하였다. 


이제 서버는 클라우드를 기반으로 전 세계에 수많은 여러 모양의 클라이언트 기기들로부터 HTTP 통신을 기준으로 여러 웹서비스의 요청과 응답을 동시에 실시간으로 처리해야만 하는 것이다. 이러한 규모의 처리는 늘 작은 기능 처리에도 성능 문제가 동반된다. 


더욱이 근래에 모든 관심이 집중된 웨어러블 컴퓨팅, 가상 및 증강 현실 컴퓨팅, 인공지능과 딥러닝, 사물인터넷(Internet Of Things) 등의 분야들을 통해서 더더욱 이러한 서버 데이터 실시간 처리의 규모는 상상을 초월한 수치가 될 것이다. 


아직 백엔드와 클라우드 서버군에서의 경험이 없거나 적은 초보 개발자분들은 이러한 규모의 문제가 쉽게 와 닿치 않을 수 있다. 그러나 결국 서버에서 구동되는 웹서비스 처리도 모두 프로그램이다. 이러한 프로그램은 HTTP 프로토콜로 통신을 할 때 모두 메시지 통신을 기본으로 하는데, 이러한 메시지도 JSON으로 표현이 가능하다. 


최근 모바일 스마트폰 게임은 이러한 HTTP 서버 기반의 JSON 메세지 처리를 매우 잘 활용하는 분야이다. 


본인도 근래에 모바일 게임 업체에 백엔드 개발팀에 근무할 때 모든 통신 메시지 처리 및 저장, 설정 등을 모두 JSON 메시지로 처리하였다. 


즉, JSON 메시지를 최대한 활용하는 것은 모바일 업계에선 표준이라고 볼 수 있다. 이를 XML 등으로 처리하면 그 데이터 트래픽량과 처리 비용 및 저장 공간은 비교할 정도의 수준이 아니다. 


JSON은 확실히 비용 대비 성능이 높아지는 선택인 것이다.

'프로그래밍' 카테고리의 다른 글

동적 그래프  (0) 2020.05.15
데이터베이스 타입  (0) 2020.05.14
스키마 정의  (0) 2020.05.14
JSON 요소별 문법  (0) 2020.05.13
JSON 기본 구성  (0) 2020.05.12
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함