림찌의 개발일기 💻

JSON 이란 무엇일까? 본문

Dev

JSON 이란 무엇일까?

림찌 🥰 2021. 10. 17. 01:58

 

json 이미지

 

JSON 이 무엇인지 한 번 파해쳐보자.

지금까지 프로젝트를 작업하거나 공부를 하면서 자주 들었던 'JSON'. 데이터가 담긴 파일 형식이라는 것만 두루뭉실하게 알고 있었다. 이렇게만 알고 있어도 개발을 하는데에 큰 무리가 없었던 지라, 그냥 그렇게만 알고 있었는데 어느날 친구가 '그래서 JSON 이 뭔데?' 하고 물어봤을때, 속 시원하게 대답하지 못한게 마음에 걸려 이번에 제대로 알아보고자 한다.

 

우리는 클라이언트가 서버로 보내는 'Request(요청)'과 서버가 클라이언트로 보내는 'Response(응답)' 에 대해 알고 있을 것이다. 그리고 이 요청과 응답을 서로 주고 받을 때, 데이터가 담겨 있을 수 있다. 이 데이터를 서로 주고받기 위해 데이터가 담겨있는 '형식' 이 있다. 이 '형식' 중 하나가 바로 'JSON' 이다.

 

데이터를 주고 받는 형식은 'JSON'만 있는 것이 아니다. 예전엔 'XML' 이라는 형식을 주로 사용했고, 요즘들어 제일 많이 쓰이는 형식은 'JSON' 이다.

 

데이터를 주고 받는 형식? 🤔
사실, 데이터를 주고 받는 형식은 이 두가지 뿐만 아니라 여러 형식을 만들 수 있다. 그러나 이런 형식이 여러가지가 되어버리면 개발자들이 멘붕에 빠질 것이다. 데이터를 보내는 형식이 100개가 있고, 그 100개를 다 사용한다면 데이터를 요청하거나, 요청받은 데이터를 보내줄 때, 각각 다른 100개의 형식으로 보내준다면... 끔찍할 것이다. 😩그래서 유명한 형식을 함께 쓰게 된 것이다.

 


 

JSON 형식은 어떻게 보여질까?

 

{
  key : value,
}

바로 이렇게, 중괄호 안에 'key 값' 과 'value 값' 이 들어가 있는 형태이다. key와 value 는 '콜론(:)' 으로 구별 된다. 데이터 처리를 해본 사람이라면 이 형식이 낯설지는 않을 것이다.

 

JSON 의 value 값으로 들어올 수 있는 타입은 다음과 같다.

 

1. String (문자열)

2. Number (숫자)

3. 불리언 (Boolean)

4. 객체 (Object)

5. 배열 (Array)

6. Null

 

예제로 알아보자면 이러하다.

{
  "MemberId" : 1,
  "id": "test",
  "password": "test123@",
  "nickname": "테스트 계정",
  "hobby" : "코딩"
}

누군가가 어떤 사이트에 회원가입을 한 데이터를 JSON 형식으로 나타낸 것이다. 콜론을 기준으로 왼쪽이 key 값이고 오른쪽이 value 값이다. 그런데 만약 이러한 경우엔 데이터 형식이 어떻게 될까? 사용자의 취미가 여러개라 여러개의 취미 정보를 불러와야한다고 한다면...?

 

{
  // 생략..
  "hobby": ["코딩", "게임하기", "음악감상", "강아지 산책"]
}

여러 개의 데이터를 넣어야 한다면, 배열 형식으로 담아오면 된다. 이 배열안에는 객체가 들어가도 괜찮다. 

 

{
  member : [
    {"name" : "test1", "age" : 16, "nickname" : "테스터"},
    {"name" : "hilda", "age" : 27, "nickname" : "힐다"},
    {"name" : "tory", "age" : 12, "nickname" : "토리"}
  ]
}

 

이런식으로 JSON 배열과 쉼표를 사용하여 객체를 나열할 수 있다. 

 


앞으로 JSON 이 무엇이냐는 질문에는 다음과 같이 대답하면 될 것같다.

 

클라이언트와 서버에서 서로 요청과 응답을 주고 받을 때 필요한 데이터들을 주고 받는 형식 중 하나이다. 

 

 

Comments