JSON(Javascript Object Notation)은 Javascript 객체 문법으로 구조화된 데이터 교환 형식이다.
역할
다른 언어, 플랫폼 사이에 데이터를 주고받는 특정한 형태이다.
독립적
언어와 플랫폼, 프레임워크 등으로부터 독립적이다.
언어의 버전 등에 영향을 받지 않는다.
독립적이기에 각 언어에 맞게 변환하여 사용해야 한다.
예를 들어 Javascript에서 JSON 타입의 데이터를 사용하기 위해서는 JSON.parse()를 사용하여 JSON 파일을 Javascript object로 변환시켜야 한다.
Python에서는 json.loads()를 사용하여 dictionary 타입으로 변환한다.
문법
키(key)와 값(value)로 구성된다.
{
key: value
}
이미 존재하는 키를 중복 선언하면 나중에 선언한 값이 해당 키에 덮어 쓰인다.
const walwal = {
"name": "walwal",
"name": "dahee",
"age": 80
}
console.log(walwal) //{"name":"dahee", "age":80}
객체 형태가 아닌 단순 배열과 문자열 등으로도 표현할 수 있으나 일반적으로는 JSON array와 JSON 객체 형태로 사용된다.
데이터 타입
JSON 객체의 값은 다양한 타입이 들어갈 수 있으나, 사전에 데이터 schema를 잘 구축하여 일관성을 유지하는 것이 중요하다.
JSON은 자바스크립트의 Object와 유사하지만,
자바스크립트의 Object와 달리
- 값에 undefined가 할당될 수 없으며,
- method를 포함할 수 없다는 점에서 다르다.
JSON 객체의 값에는 string, number, boolean, null, object (array)가 들어갈 수 있다.
직렬화/역직렬화
- 직렬화: 외부 시스템에서 사용할 수 있도록 데이터를 바이트(byte) 형태로 변환하는 것 (e.g., JSON.stringify())
- 역직렬화: 직렬화의 반대 (e.g., JSON.parse(), json.loads())
외부 시스템으로 데이터를 전달하기 위해 JSON.stringify()를 통해 문자열로 데이터를 직렬화한 후,
JSON으로 전달하여, 받은 곳에서 데이터를 역직렬화하여 사용해야 한다.
활용 방식
JSON은 주로
- API의 응답 반환 형태
- 시스템을 구성하는 설정 파일 (e.g., package.json)
로 사용된다.
참고: inflearn 강의 'CS 지식의 정석 - 큰돌'
'컴퓨터 공학 & 통신' 카테고리의 다른 글
[개념 정리] API (0) | 2023.06.27 |
---|---|
[개념 정리] XML (0) | 2023.06.27 |
[키워드 정리] 개발에서 이야기하는 '자원'이란 뭘까? (0) | 2023.03.30 |
[http 통신] response(응답) status code 종류 (0) | 2023.03.29 |
[http 통신] 인증 & 인가 - JWT (0) | 2023.03.28 |