JSON(JavaScript Object Notation)은 웹 서비스와 앱 간에 정보를 교환하는 데 사용되는 경량 데이터 전송 형식을 말합니다.
JSON은 중복되고 복잡하고 유명한 XML 대안으로 개발되었습니다.
XML보다 가볍고 읽기 쉽고 복잡하지 않고 XML보다 인기있는 옵션이되었습니다.
JSON이란 무엇입니까?
JSON은 텍스트 기반 가벼운 사람이 읽을 수 있는 데이터 전송 형식입니다.
JSON은 2001년 더글러스 클락포드에 의해 처음 만들어졌다.
심플하고 상호 운용성이 뛰어나 사용의 용이성이 특출되어 웹 개발로 인기를 모으고 있다.
모든 컴퓨터 언어에서 사용할 수 있는 언어 중립적인 데이터 전송 형식은 식지 않는 인기에 한몫하고 있다.
Key-Value 형식을 사용하여 데이터를 표현하고 JavaScript 객체의 구문에서 영감을 얻었다고 Douglas는 말했다.
JSON 구문
앞서 언급했듯이 JavaScript 객체에서 영감을 얻어 만들어진 JSON은 읽기와 쓰기가 매우 쉽습니다.
JSON 데이터는 중괄호로 묶인 일련의 키-값 쌍으로 등록됩니다.
쉼표는 각 키-값 쌍을 구분하고 콜론은 키-값을 구분합니다.
예로 보면 더 이해하기 쉽습니다.
{
"name": "Joseph",
"age": 34,
"email": "[email protected]"
}
위의 예에서는 이름, 연령 및 이메일의 세 가지 키-값 쌍을 포함하는 JSON 객체가 있습니다.
이름 ‘키’ 값은 Josph, 연령 ‘키’ 값은 34, 이메일 ‘키’ 값은 [email protected]입니다.
JSON 값은 문자열, 숫자, 부울, 배열 및 객체를 포함할 수 있다는 장점도 있습니다.
JSON 데이터 형식
JSON은 다음 6가지 데이터 유형을 지원합니다.
- String: 문자열은 큰 따옴표로 묶인 문자 집합을 의미합니다.
- Number: 숫자는 정수 또는 부동 소수점 값입니다.
- Boolean: Boolean 값은 true 또는 false라는 의미입니다.
- Array: 컴퓨터에서 배열은 대괄호로 둘러싸여 쉼표로 구분된 값 집합을 의미합니다.
- Object: 객체는 중괄호로 묶인 키와 값 쌍의 집합을 의미합니다.
- Null: Null 또는 빈 값을 의미합니다.
JSON 및 JavaScript
위에서 JSON은 JavaScript에서 영감을 얻었다고 말했지만 다시 한번 자세히 살펴 보겠습니다.
JSON.parse() 메서드는 JSON 문자열을 구문 분석하고 JavaScript 객체로 변환하는 데 사용됩니다.
예를 보면서 이해해 봅시다.
const jsonString = '{ "name": "Joseph", "age": 34, "email": "[email protected]" }';
const jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name); // Joseph
console.log(jsonObject.age); // 34
console.log(jsonObject.email); // [email protected]
예를 보면 jsonString이라는 중괄호로 묶인 JSON 문자열을 볼 수 있습니다.
JSON.parse() 메서드를 사용하여 JSON 문자열을 JavaScript 객체로 변환하고 도트(.) 표기법을 사용하여 객체의 속성에 액세스한 모습도 볼 수 있습니다.
다른 예를 살펴 보겠습니다.
JSON.stringfy() 메서드는 JavaScript 객체를 JSON 문자열로 변환하는 데 사용됩니다.
const obj = {name: "Joseph", age: 34, email: "[email protected]" };
const jsonString = JSON.stringify(obj);
console.log(jsonString); // Output: {"name":"Joseph","age":34,"email":"[email protected]"}
JSON을 API로 사용해 보자!
JSON은 일반적으로 웹 API(Application PRogramming Interface)처럼 사용됩니다.
JSON 형식으로 데이터를 변환하는 API를 사용하면 JSON 데이터를 신속하게 구문 분석하고 응용 프로그램에서 사용할 수 있기 때문입니다.
이것도 예를 보면서 이해해 보자. 다음은 JavaScript에서 Fetch API를 사용하여 API에서 JSON 데이터를 검색하고 JavaScript 객체로 구문 분석하는 예제입니다.
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: "[email protected],
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이 사람이 취급하는 것에 가장 간결하면서도 깨끗한 데이터 표현 방식이라고 생각한다.