
JavaScript Object Notation
- ๋ฐ์ดํฐ ํํ ๋ฐฉ๋ฒ, ๋ฐ์ดํฐ ๊ตํ ํฌ๋งท์ด๋ค. ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉํ๋ค.
- ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๋น๋๊ธฐ ํต์ ์ ๋ง์ด ์ฌ์ฉํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ ์กํ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
- key, value ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
- ํน์ ์ธ์ด์ ์ข ์๋์ง ์๋๋ค.
- XML์ ๋ถํ์ํ ํ๊ทธ, ๋ง์ ์ฉ๋, ๋์ ๊ฐ๋
์ฑ ๋๋ฌธ์ JSON์ด ๋๋ถ๋ถ ๋์ฒด๋์๋ค.
- eXtensible Markup Language: ๋ฐ์ดํฐ๋ฅผ ์ค๋ช ํ๋ ํ๊ทธ๋ฅผ ๋ง์๋๋ก ์ ์ํ ์ ์๋ค.
- data ํํ์ ์ง์คํ HTML๊ณผ ๋ฌ๋ฆฌ, data ์ ๋ฌ์ ์ง์คํ ์ธ์ด๋ค.

JSON ๊ตฌ์กฐ
{
"squadName": "Super hero squad",
"homeTown": "Metro City",
"formed": 2016,
"active": true,
"members": [
{
"name": "Molecule Man",
"age": 29
"powers": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name": "Madame Uppercut",
"age": 39,
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
}
}
- key๊ฐ๊ณผ ๋ฌธ์์ด์ ์๋ฐ์ดํ๋ฅผ ์ด์ฉํ์ฌ ํ๊ธฐํด์ผํ๋ค.
- ์ํ๋ ๋งํผ ๊ฐ์ฒด์ ๋ฐฐ์ด์ ์ค์ฒฉ์์ผ์ ์ฌ์ฉํ ์ ์๋ค.
- null, number, string, array, object, boolean์ ์ฌ์ฉํ ์ ์๋ค.
Handling JSON in Javascript
const jsonText = '{ "age": "27", "gender": "male" }';
const obj = JSON.parse(jsonText);
// Object {age: '27', gender: 'male'}
JSON.stringify(obj);
// String '{"age":"27","gender":"male"}'
BSON (Binary JSON)
BSON์ Binary JSON์ ์ฝ์๋ก, MongoDB์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ด์ง ํ์์ด๋ค.
ํน์ง
- JSON์ ์ง๊ด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ฉด์ ๋ฐ์ด๋๋ฆฌ ํ์์ ์ฅ์ ์ ๊ฒฐํฉ
- ๋ฐ์ดํฐ ํ์ ์ ๋ ์ธ๋ฐํ๊ฒ ์ง์ (JSON๋ณด๋ค ํ๋ถํ ๋ฐ์ดํฐ ํ์ )
- ๋น ๋ฅธ ํ์ฑ๊ณผ ํจ์จ์ ์ธ ์ ์ฅ ๊ณต๊ฐ ํ์ฉ
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ ๋์ ํธํ์ฑ
JSON vs BSON ๋ฐ์ดํฐ ํ์ ๋น๊ต
| JSON | BSON |
|---|---|
| String | String |
| Number | Integer (32bit, 64bit) |
| Double | |
| Decimal128 | |
| Boolean | Boolean |
| Array | Array |
| Object | Object |
| null | null |
| Date | |
| Binary data | |
| ObjectId | |
| Regular Expression |
์ฌ์ฉ ์์
JSON:
{
"name": "John Doe",
"age": 30,
"birth": "1993-01-15",
"scores": [85.5, 90.0, 92.5]
}
BSON (16์ง์๋ก ํํ):
\x31\x00\x00\x00 // ๋ฌธ์ ์ ์ฒด ํฌ๊ธฐ (49 bytes)
\x02 // String ํ์
name\x00 // ํ๋๋ช
\x09\x00\x00\x00John Doe\x00 // ๋ฌธ์์ด ๊ฐ
\x10 // Int32 ํ์
age\x00 // ํ๋๋ช
\x1e\x00\x00\x00 // ์ ์๊ฐ 30
\x09 // Date ํ์
birth\x00 // ํ๋๋ช
\x00\x40\x23\x01\x00\x00\x00\x00 // ๋ ์ง๊ฐ
\x04 // Array ํ์
scores\x00 // ํ๋๋ช
[...] // ๋ฐฐ์ด ๋ฐ์ดํฐ
\x00 // ๋ฌธ์ ์ข
๋ฃ
BSON์ ์ฅ์
- ์ฑ๋ฅ ์ต์ ํ
- ๋ฐ์ด๋๋ฆฌ ํ์์ผ๋ก ์ธํ ๋น ๋ฅธ ํ์ฑ
- ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ํ
- ๋คํธ์ํฌ ์ ์ก ์ ๋ ์์ ํฌ๊ธฐ
- ํ๋ถํ ๋ฐ์ดํฐ ํ์
- ๋ ์ง, ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ๋ฑ ๊ธฐ๋ณธ ์ง์
- ์ซ์ ํ์ ์ ์ ๋ฐํ ๊ตฌ๋ถ (Int32, Int64, Double, Decimal128)
- ObjectId๋ฅผ ํตํ ํจ์จ์ ์ธ ๋ฌธ์ ์๋ณ
- MongoDB ์ต์ ํ
- ์ธ๋ฑ์ฑ๊ณผ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ์ ํจ์จ์ฑ
- ์ ์ฅ์ ์์ง๊ณผ์ ์ต์ ํ๋ ํตํฉ
- ์ค๋ฉ๊ณผ ๋ณต์ ์ ์ต์ ํ๋ ๊ตฌ์กฐ
์ค์ ํ์ฉ
- ๋ฐ์ดํฐ ์ ์ฅ: MongoDB๊ฐ ๋ด๋ถ์ ์ผ๋ก ๋ชจ๋ ๋ฌธ์๋ฅผ BSON์ผ๋ก ์ ์ฅ
- ๋คํธ์ํฌ ์ ์ก: MongoDB ๋๋ผ์ด๋ฒ์ ์๋ฒ ๊ฐ ํต์
- ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ: MongoDB ๋๋ผ์ด๋ฒ๊ฐ ์๋์ผ๋ก JSON๊ณผ BSON ๊ฐ ๋ณํ ์ฒ๋ฆฌ
๋ฐ์ํ
'๐ Front > ๐ฑ Vanilla JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| arguments ๊ฐ์ฒด: function์์ ์๋ ๋, ๋๊ฐ ์ ์ธํ๋? (0) | 2021.11.18 |
|---|---|
| [addEventListener] ์ฝ๋ฐฑํจ์์๊ฒ ์ธ์๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ (0) | 2021.11.17 |
| key์ ์ ๊ทผํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ. obj.key, obj['key'] (0) | 2021.08.03 |
| Window ๊ฐ์ฒด (0) | 2021.02.23 |
| ES(ECMAScript) VS JS(JavaScripit) ์ฐจ์ด์ (0) | 2021.02.13 |