Linuxpia/웹 프로그램

[웹 API] JSON(JavaScript Object Notation)은?

Linuxpia4U 2024. 3. 15. 03:08
반응형

JSON(JavaScript Object Notation)은?

JSON(JavaScript Object Notation)은 데이터 교환을 위한 경량의 텍스트 기반 형식으로, 사람이 읽고 쓰기 쉬우며, 기계가 파싱하고 생성하기에 용이합니다. JSON은 Douglas Crockford에 의해 소개되었으며, 웹 애플리케이션에서 클라이언트와 서버 간의 데이터 전송에 주로 사용됩니다. 그러나 그 사용 범위는 웹 개발에만 국한되지 않으며, 다양한 소프트웨어 및 애플리케이션에서 설정 파일, 데이터 저장, 구성 관리 등 다양한 목적으로 활용됩니다.

JSON의 기본 구조

JSON 형식은 두 가지 기본 구조를 기반으로 합니다:

  1. 이름(키)/값 쌍의 집합: 객체(Object)에서 사용되며, {} 중괄호로 묶입니다. 각 키는 문자열이며 콜론(:)으로 값과 구분됩니다. 예: {"name": "홍길동", "age": 30}
  2. 값의 순서 있는 리스트: 배열(Array)에서 사용되며, [] 대괄호로 묶입니다. 예: ["사과", "바나나", "체리"]

지원하는 데이터 타입

JSON에서 사용할 수 있는 값의 타입은 다음과 같습니다:

  • 문자열(String): 텍스트 데이터를 나타내며, 쌍따옴표(" ")로 묶습니다.
  • 숫자(Number): 정수 또는 부동 소수점 형태의 숫자입니다.
  • 객체(Object): 키와 값의 쌍으로 구성된 복합 데이터 타입입니다.
  • 배열(Array): 값의 순서 있는 리스트입니다.
  • 불리언(Boolean): true 또는 false 값을 가집니다.
  • null: 값이 없음을 나타냅니다.

특징

  • 언어 독립적: JSON 형식은 자바스크립트에서 유래했지만, 다양한 프로그래밍 언어에서 사용할 수 있도록 설계되었습니다. 대부분의 프로그래밍 언어에는 JSON 데이터를 파싱하고 생성하는 라이브러리가 있습니다.
  • 읽기 쉬움: JSON은 사람이 읽을 수 있는 텍스트 형식으로, 데이터의 구조를 쉽게 이해할 수 있습니다.
  • 네트워크 친화적: 텍스트 기반 형식이므로 웹에서 데이터를 전송하기에 이상적입니다. JSON은 서버와 클라이언트 간, 또는 서비스 간에 데이터를 교환하는 데 널리 사용됩니다.

활용

  • 웹 개발: AJAX(Ajax Asynchronous JavaScript and XML) 기술과 함께 웹 페이지의 비동기적 데이터 교환에 사용됩니다.
  • APIs와 웹 서비스: RESTful API에서 클라이언트와 서버 간의 통신을 위한 주요 데이터 형식으로 사용됩니다.
  • 설정 파일과 데이터 저장: 많은 소프트웨어와 애플리케이션에서 구성 파일을 JSON 형식으로 작성하고, 간단한 데이터 저장용으로도 사용됩니다.

사례 1: 웹 애플리케이션에서의 사용자 정보 교환

웹 애플리케이션에서 클라이언트(예: 웹 브라우저)가 서버에 사용자의 정보를 요청하고, 서버가 이를 JSON 형식으로 응답하는 경우를 생각해 볼 수 있습니다.

클라이언트 요청:

웹 페이지에서 사용자가 자신의 프로필 정보를 보기 위해 요청을 보냅니다.

서버 응답(JSON):

서버는 다음과 같은 JSON 형식으로 사용자 정보를 클라이언트에 전송합니다.

{
  "id": "user123",
  "name": "홍길동",
  "email": "hong@gildong.com",
  "roles": ["user", "admin"],
  "isActive": true
}

이 JSON 객체는 사용자의 고유 ID, 이름, 이메일 주소, 사용자 역할, 그리고 계정 활성화 상태 등을 포함합니다. 클라이언트는 이 JSON 데이터를 파싱하여 웹 페이지에 사용자 정보를 동적으로 표시할 수 있습니다.

사례 2: 설정 파일의 JSON 활용

소프트웨어 또는 애플리케이션에서 설정 파일을 JSON 형식으로 관리하는 경우입니다. JSON 형식의 설정 파일은 사람이 읽고 쓰기 쉬우며, 다양한 설정 옵션을 유연하게 표현할 수 있습니다.

설정 파일 예시(config.json):

{
  "server": {
    "host": "127.0.0.1",
    "port": 8080
  },
  "database": {
    "type": "mysql",
    "host": "localhost",
    "port": 3306,
    "username": "dbuser",
    "password": "dbpassword",
    "dbName": "mydatabase"
  },
  "logging": {
    "level": "info",
    "file": "logs/app.log"
  }
}

이 JSON 파일은 서버 설정, 데이터베이스 연결 정보, 로깅 설정 등을 정의합니다. 애플리케이션 초기화 시, 이 파일을 읽어 해당 설정 값들을 애플리케이션에 적용할 수 있습니다. JSON 형식을 사용함으로써, 설정 파일을 보다 구조적이고 명확하게 관리할 수 있습니다.

정리

JSON은 그 유연성과 간결성으로 인해 XML을 대체하는 주요 데이터 교환 형식으로 자리 잡았습니다. 데이터를 효율적으로 표현하고 교환하는 데 필요한 모든 기능을 제공하면서도, 더 가볍고 간결한 구조를 가지고 있어 현대 웹 개발에서 중요한 역할을 합니다.

 

위 사례들은 JSON이 데이터 교환과 설정 관리에서 어떻게 유용하게 활용될 수 있는지 보여줍니다. JSON의 간결함과 유연성은 다양한 상황에서의 데이터 표현과 교환에 이상적인 솔루션을 제공합니다.

 
복사하기
 
 
반응형