Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JSON이란 무엇인가? 개념부터 실전 예제까지 한눈에 정리

JSON은 JavaScript Object Notation의 약자로, 데이터를 키(key)와 값(value)의 쌍으로 정리하는 자바스크립트 객체 형식입니다. 이러한 방식으로 데이터를 저장하면 객체가 가볍고(lightweight) 언어 독립적(language independent)이 됩니다. 즉, JSON은 대부분의 프로그래밍 언어에서 읽고 처리할 수 있습니다.

JSON은 용량이 작으면서 사람과 기계 모두가 쉽게 읽을 수 있기 때문에, 서버에서 클라이언트 측으로 데이터를 가져올 때 널리 사용됩니다. API를 활용하는 개발 환경에서 JSON은 서버로부터 사용자에게 필요한 데이터만 유연하게 추출할 수 있도록 도와주는 핵심 역할을 합니다.

JSON 사용 방법

JSON은 서버에서 앱의 프런트엔드로 전달되는 데이터를 저장하는 매우 편리한 방법입니다. 대부분의 프로그래밍 언어는 별도의 설정 없이도 데이터를 JSON으로 변환하는 기능을 기본적으로 제공합니다. 자바스크립트의 fetch 요청에서는 서버에서 전달된 응답 데이터에 json() 메서드를 호출하여 손쉽게 JSON으로 변환할 수 있습니다.

그렇다면 왜 응답을 JSON으로 변환해야 할까요? 원본 응답 데이터는 내용이 방대하고 사람이 해석하기 어렵습니다. 응답을 JSON으로 변환하면 데이터가 읽기 쉬운 키/값 쌍으로 정리되므로, 우리가 작성하는 코드로 응답 데이터를 훨씬 쉽게 다룰 수 있게 됩니다.

JSON 예제

먼저, 응답이 JSON으로 변환되면 어떤 모습인지 살펴보겠습니다. 아래 예제에서는 현재 우주에 체류 중인 우주비행사 수를 알려주는 API로 fetch 요청을 보냅니다.

fetch('https://api.open-notify.org/astros.json')
.then(response => response.json())
.then(data => console.log(data))

여기서는 JSON으로 변환한 응답을 콘솔에 출력해 결과를 확인해 보겠습니다.

{
    "message": "success",
    "number": 7,
    "people": [
        {
            "craft": "ISS",
            "name": "Sergey Ryzhikov"
        },
        {
            "craft": "ISS",
            "name": "Kate Rubins"
        },
        {
            "craft": "ISS",
            "name": "Sergey Kud-Sverchkov"
        },
        {
            "craft": "ISS",
            "name": "Mike Hopkins"
        },
        {
            "craft": "ISS",
            "name": "Victor Glover"
        },
        {
            "craft": "ISS",
            "name": "Shannon Walker"
        },
        {
            "craft": "ISS",
            "name": "Soichi Noguchi"
        }
    ]
}

이 객체 안에는 "message", "number", "people"이라는 세 개의 키가 있습니다. 먼저 message 키의 값은 "success"로, 요청이 정상적으로 처리되었음을 알려주는 상태 메시지입니다.

다음으로 number 키의 값은 7로, 현재 우주에 체류 중인 인원의 총합을 의미합니다. 마지막으로 "people" 키의 값은 배열이며, 이 배열 안에는 "craft"와 "name"이라는 키를 가진 객체들이 담겨 있습니다. craft의 값은 탑승한 우주선의 이름이고, name의 값은 해당 우주선에 탑승한 우주비행사의 이름입니다.

참고로 부트캠프 참가자의 81%가 수료 후 IT 분야 취업 전망에 대한 자신감이 높아졌다고 답했으며, 부트캠프 수료생은 과정 시작부터 첫 직장에 입직하기까지 평균 6개월 미만의 짧은 기간 만에 커리어 전환에 성공한 것으로 나타났습니다.

JSON은 이처럼 여러 겹으로 중첩될 수 있습니다. fetch 요청의 이 시점에서 응답은 이미 JSON으로 변환된 상태이며, 다음 단계는 해당 데이터로 원하는 작업을 수행하는 것입니다. 예를 들어 이 데이터를 활용해 각 우주비행사별 카드 목록을 화면에 표시할 수 있습니다. 데이터를 어떻게 활용할지는 앱이 달성하려는 목표에 따라 결정됩니다.

결론

정리하면, JSON은 데이터를 저장하는 데 사용되는 객체이며, 일반적으로 fetch 요청에 대한 서버 응답 데이터를 담는 형식으로 활용됩니다. 또한 자바스크립트에는 응답을 JSON으로 변환해 주는 json() 메서드가 내장되어 있다는 점도 배웠습니다.

앱의 프런트엔드에서 서버의 데이터를 사용하려면 반드시 JSON 형식으로 변환되어야 합니다. 응답을 JSON으로 변환한 후에는 해당 데이터를 바탕으로 원하는 어떤 기능이든 자유롭게 구현할 수 있습니다. fetch 요청의 json() 메서드에 대해 더 깊이 알고 싶다면 관련 공식 문서와 가이드를 참고해 보세요.