본문 바로가기

테크

JSON, 널 다시 한번 봐 보기로 했어

반응형

Code example of JSON file
original by Ferenc Almasi

 

JSON(JavaScript Object Notation)은 웹 서비스와 앱 사이에 정보를 교환하는 데 사용되는 경량 데이터 전송 형식을 일컫는다. JSON은 장황하고 복잡하기로 유명한 XML의 대안으로 개발되었다. XML보다 가볍고 읽기 쉬우며 복잡하지 않아 XML보다 인기 있는 선택지가 되었다.

 

JSON이 뭐야?

JSON은 텍스트 기반의 가벼운 사람이 읽을 수 있는 데이터 전송 형식이다. JSON은 2001년 더글러스 크록포드에 의해 처음 만들어졌다. 단순하고 상호 운용성이 뛰어나며 사용 편의성이 특출해 웹 개발에서 계속해서 인기를 얻어오고 있다.

모든 컴퓨터 언어와 함께 사용할 수 있는 언어 중립적인 데이터 전송 형식은 식지 않는 인기에 한 몫을 하고 있다. 키-값 형식을 사용해 데이터를 표현하며 자바스크립트 객체의 구문에서 영감을 얻었다고 더글러스는 말했었다.

 

JSON 구문

위에 언급했듯이, 자바스크립트 객체에서 영감을 받아 만들어진 JSON은 읽고 쓰기가 매우 쉽다. JSON 데이터는 중괄호로 둘러싸인 키-값 쌍의 집합으로 등록된다. 쉼표는 각 키-값의 쌍을 구분하고 콜론은 키-값을 구분한다.

 

하나의 예로 보는 것이 더 이해하기 쉬울 것 같다.

{
    "name": "Joseph",
    "age": 34,
    "email": "joseph@example.com"
}

 

위의 예제에서는 이름, 나이 그리고 이메일의 세 가지 키-값 쌍을 포함하는 JSON 객체가 있다.

이름 '키'의 값은 Josph, 나이 '키' 값은 34, 이메일 '키' 값은 joseph@example.com이다.

JSON 값은 문자열, 숫자, Boolean, 배열 및 개체를 포함할 수 있다는 장점도 있다.

 

JSON 데이터 유형

JSON은 다음과 같은 6가지 데이터 유형을 지원한다:

  1. String: 문자열이라는 것은 큰 따옴표로 둘러싸인 일련의 문자를 뜻한다.
  2. Number: 숫자는 정수 또는 부동 소수점 값.
  3. Boolean: Boolean값은 참이거나 거짓이라는 뜻이다.
  4. Array: 컴퓨터에서 배열은 대괄호로 묶고 쉼표로 구분된 값의 집합을 뜻한다.
  5. Object: 객체는 중괄호로 둘러싸인 키-값 쌍의 집합을 뜻한다.
  6. Null: Null 또는 빈 값을 의미.

 

JSON과 JavaScript

위에서 JSON은 JavaScript에서 영감을 얻었다고 했는데, 한번 더 자세히 살펴보자.

JSON.parse() 메서드는 JSON 문자열을 구문 분석하여 JavaScript 객체로 변환하는데 사용된다.

예를 보면서 이해해보자:

const jsonString = '{ "name": "Joseph", "age": 34, "email": "joseph@example.com" }';
const jsonObject = JSON.parse(jsonString);

console.log(jsonObject.name); // Joseph
console.log(jsonObject.age); // 34
console.log(jsonObject.email); // joseph@example.com

예를 보면, jsonString이라는 중괄호로 둘러싸인 JSON 문자열을 볼 수 있다.

JSON.parse() 메서드를 사용해 JSON 문자열을 JavaScript 개체로 변환한 다음 도트(.) 표기법을 사용해 개체의 속성에 엑세스한 모습도 볼 수 있다.

 

또 다른 예제를 봐보자. JSON.stringfy() 메서드는 JavaScript 개체를 JSON 문자열로 변환하는데 사용된다.

const obj = {name: "Joseph", age: 34, email: "joseph@example.com" };
const jsonString = JSON.stringify(obj);

console.log(jsonString); // Output: {"name":"Joseph","age":34,"email":"joseph@example.com"}

 

JSON을 API와 사용해보자!

JSON은 일반적으로 웹 API(Application PRogramming Interface)와 같이 사용된다. JSON 형식으로 데이터를 변환하는 API를 사용할 때 JSON 데이터를 빠르게 구문 분석하여 응용 프로그램에서 사용할 수 있기 때문이다.

이것 또한 예를 보면서 이해해보자. 다음은 자바스크립트에서 Fetch API를 사용해 API에서 JSON 데이터를 가져와 자바스크립트 객체로 구문 분석하는 예이다:

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

 

JSON을 데이터베이스와 사용해보자!

JSON은 또한 데이터베이스, 특히 MongoDB와 같은 NoSQL 데이터베이스에 널리 사용되어지고 있다. 이러한 데이터베이스는 데이터를 문서로 저장하며 일반적으로 JSON 개체로 표시된다.

다음은 공식 Node.js 드라이버를 사용해 JSON 문서를 MongoDB 데이터베이스에 넣는 작업을 보여주는 예이다:

const { MongoClient } = require('mongodb');

async function insertDocument(uri, dbName, collectionName, document) {
  const client = new MongoClient(uri);
  await client.connect();
  const db = client.db(dbName);
  const collection = db.collection(collectionName);
  await collection.insertOne(document);
  await client.close();
}

const document = {
  name: "Joseph",
  age: 34,
  email: "joseph@example.com,
  hobbies: ["reading", "gaming", "singing"]
};

insertDocument('mongodb://localhost:27017', 'mydatabase', 'mycollection', document)
  .then(() => console.log('Document inserted successfully'))
  .catch(error => console.error(error));

 

마무리

오랜만에 JSON에 대해 정리하다보니 두근두근한걸? JSON은 API와 데이터베이스에서 널리 사용되고 있고 여러가지 데이터 유형을 지원하기에 아직까지 인기가 많은 데이터 형식이다. 조만간 다른 형식으로 데이터를 표현하는 방법이 나오지 않을까라는 기대심리가 있지만 아직까지는 JSON이 사람이 다루기에 가장 간결하면서도 깔끔한 데이터 표현 방식이라 생각한다.

반응형