오늘은 새해를 맞아서 CS 공부를 하고자 했던 내 다짐을 실천하고자 인프런에서 CS 강의를 샀다.
퇴근을 늦게해서 이제 첫 화를 들었는데, Json에 관한 설명이 나왔다.
웹/JS 쪽으로는 무지해서 레트로핏 쓸때만 깔짝이던 Json에 대한 설명이 나와서 이해하고 쓰고자 열심히 들었다.
1. Json이란?
Json은 JavaScripit Object Notation의 약자로,
풀어 말하면 자바 스크립트 객체 표기법이라고 부를 수 있다.
이름의 뜻과 같이 Json은 자바스크립트 문법을 기반으로 하는 순수 데이터 포맷이며,
key 값들과 그에 따른 value값들을 가지고 있다. (자바스크립트를 100% 따르지는 않는다)
{
"Animals" : [
{"Name" : "사자", "Kind" : "육식"},
{"Name" : "코끼리", "Kind" : "초식"},
{"Name" : "토끼", "Kind" : "초식"}
]
}
2. 독립적이라는게 뭘까?
여기까지는 정말 이해가 잘 되었으나, 이후
"Json은 프로그래밍 언어와 플랫폼에 독립적이다" 라는 부분이 바로 와닿지 않았다.
자바스크립트 객체 표기법이라는 뜻의 Json이 독립적인 포맷이라고..? 자바스크립트는 어쩌고..?
3. 결론
단순하게 생각하니 이해가 쉬웠다.
1. Json은 Key와 value를 가지는 Javascript 문법 기반의 순수 데이터 포맷이다. ( 객체 교환에 유용하다, 직관적이다 )
2. Json은 텍스트로 이루어져있다.
3. 그리고 텍스트는 프로그래밍 언어/플랫폼에 독립적이다. ( 어디서든 사용할 수 있다! )
4. 따라서 텍스트로 이루어진 Json 또한 독립적인 데이터 포맷이며, 객체 교환에 널리 사용된다!
라고 정리했다..ㅎㅎ 내 생각을 글로 풀어 설명하는게 쉽지 않다
[2023-01-11 업데이트]
강사님의 답변 ->
자바스크립트 버전이 올라간다 or 파이썬 버전이 올라간다
-> JSON의 문법이 영향을 받는가?
-> NO!
-> 따라서 JSON은 이러한 언어시스템과 독립적이다!
4. 또 다른 의문점
강의에서는 Json이 텍스트로 이루어져 있기 때문에 사람과 컴퓨터 모두 읽고 쓰기가 쉽다고 되어있었다.
그런데 사람은 텍스트를 읽으면 된다지만
컴퓨터는 텍스트를 읽으려면 어차피 바이트코드로 변환해야할텐데, 이게 컴퓨터가 읽고 쓰기가 쉬운게 맞나? 라는 생각이 들었다. 다른 포맷들과 비교했을 때 상대적으로 편리한건지.. 모르겠다!
이 부분이 정확히 어떤 원리로 사람과 컴퓨터 모두에게 편리하다는 것인지 찾아봐야겠다.
'CS' 카테고리의 다른 글
[CS] mutableMapOf / linkedMapOf / hashMapOf 차이 (0) | 2023.07.23 |
---|---|
[CS] Java 1.8과 Java 8의 차이 (0) | 2023.07.12 |
GPL과 DSL의 차이 (0) | 2023.06.28 |
[CS] 동시성과 병렬성의 차이 (0) | 2023.04.17 |