brunch

You can make anything
by writing

C.S.Lewis

by Moai Oct 03. 2020

JSON 제이슨 넌 누구냐

어떠한 서비스를 제공하는 서버에 서비스를 요청하는 사람, 컴퓨터를 클라이언트라고 한다.

즉 클라이언트는 서버에 서비스를 요청하게 되는데 컴퓨터는 사람이 아니므로 규칙에 맞게 전달해주어야 한다. 짜고 친다라는 표현을 들어보았는가? 또는 포수가 투수에게 사인을 전달하는 것을 본 적이 있는가?

투수는 포수의 사인을 미리 알고 있어야 그 사인이 무엇인지 이해할 수 있다.

예를 들어 포수가 투수에게 다음의 공에 대한 사인을 보낸다고 가정하자


"첫 번째 공은 가운데 직구, 두 번째 공은 왼쪽 아래, 커브로 던져"

컴퓨터에겐 어떻게 표현할 수 있을까? 여러 가지 표현 방식이 있는데 오늘 배울 JSON은 이런 식으로 표현할 수 있다. 참고로 JSON은 제이슨이라고 읽으면 된다. 이전 회사에서 부서 선임이 JSON을 존슨이라고 읽어서 한참 웃었던 기억이 있다.


[

    {

         "No": "1번째 공",

         "구종": "직구",

         "위치": "가운데",

    },

    {

         "No": "2번째 공",

         "구종": "커브",

         "위치": "왼쪽 아래",

    },

]


[ ] 괄호 안 에는 리스트라고 하는 같은 형식의 데이터가 여러 개 들어갈 수 있다.

{ } 괄호 안 에는 오브젝트라고 하는 키: 값으로 데이터를 표현할 수 있다.


JSON은 Javascript 언어에서 데이터를 표현하기 위해서 사용되었는데 최근에 나온 언어는 모두 JSON을 지원한다. javascript 언어는 java와 완전 다른 언어로 웹에서 주로 사용하는 언어이다. 사실 JSON 말고 HTML과 유사한 XML 방식으로 데이터를 전달했었는데 HTML을 써본 사람은 알겠지만 태그가 위아래로 두 번 들어가다 보니 데이터가 길어지는 문제가 있었다. 그래서 최근엔 XML 방식 대신 JSON을 많이 쓰는 중이다.


이 얘기를 왜 하냐면 웹 개발을 하다 보면 XHR이라는 용어를 가끔 볼 텐데 XMLHttpRequest 줄임말로 웹에서 자바스크립트 코드가 서버에게 데이터를 주고받는 기술을 의미한다. XML만 될 것 같지만 JSON도 가능하며 새로고침 없이 실시간으로 서버에게 데이터 받아 화면에 표현할 때 사용한다.


https://ko.wikipedia.org/wiki/JSON

위키백과에 들어가면 JSON의 역사와 문법이 상세히 설명되어있다.

키는 항상 문자열이어야 되지만 값은 문자열, 숫자, 참/거짓, 리스트 등이 될 수 있다.

특기를 보면 값에 리스트가 들어가 있고 가족관계를 보면 값에 오브젝트가 또 들어가 있다.

리스트 안에 오브젝트, 오브젝트 값에 리스트, 리스트 안에 오브젝트... 무한대로 데이터 표현방식이 길어질 수 있다. 헷갈려하지 말자.


저번 시간에 했던 칼로리 정보를 제공하는 사이트에 들어가 개발자 도구를 실행시켜보자

 http://www.foodsafetykorea.go.kr/portal/healthyfoodlife/calorieDic.do?menu_no=3072&menu_grp=MENU_NEW03


데이터를 어떻게 주고받는지 이해가 되었는가?


매거진의 이전글 Python 칼로리를 알려줘
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari