JSON(JavaScript Object Notation)은?
JSON(JavaScript Object Notation)은 데이터 교환을 위한 경량의 텍스트 기반 형식으로, 사람이 읽고 쓰기 쉬우며, 기계가 파싱하고 생성하기에 용이합니다. JSON은 Douglas Crockford에 의해 소개되었으며, 웹 애플리케이션에서 클라이언트와 서버 간의 데이터 전송에 주로 사용됩니다. 그러나 그 사용 범위는 웹 개발에만 국한되지 않으며, 다양한 소프트웨어 및 애플리케이션에서 설정 파일, 데이터 저장, 구성 관리 등 다양한 목적으로 활용됩니다.
JSON의 기본 구조
JSON 형식은 두 가지 기본 구조를 기반으로 합니다:
- 이름(키)/값 쌍의 집합: 객체(Object)에서 사용되며,
{}
중괄호로 묶입니다. 각 키는 문자열이며 콜론(:
)으로 값과 구분됩니다. 예:{"name": "홍길동", "age": 30}
- 값의 순서 있는 리스트: 배열(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의 간결함과 유연성은 다양한 상황에서의 데이터 표현과 교환에 이상적인 솔루션을 제공합니다.
'Linuxpia > 웹 프로그램' 카테고리의 다른 글
[웹 API] JSON 객체와 파이썬 딕셔너리의 유사점과 차이점 (46) | 2024.03.14 |
---|---|
[웹 API] REST API와 스트리밍 API (43) | 2024.03.13 |
[웹 API] 웹 API의 개요 (57) | 2024.03.12 |
[FastAPI] 간단한 테스트를 위한 텍스트 기반 도구, cURL 개요 (46) | 2024.03.06 |
[FastAPI] FastAPI 요청에 대한 응답은 JSON으로 변환, JSON이란? (36) | 2024.03.05 |