프로그래밍을 하다 보면 JOSN이라는 용어를 정말 많이 듣게 되실 겁니다.
그럼 이 JSON이 대체 뭘까요?
JSON이 뭐죠?
먼저 JSON을 알기 전에 이게 왜 생겼는지부터 알아야 합니다.
인터넷의 등장
인터넷이 뭔가요?
컴퓨터끼리 데이터를 주고받을 수 있는 네트워크 라는 것이죠?
그 덕분에 여러 컴퓨터끼리 데이터를 교환할 수 있게 되었습니다.
그런데 단순 데이터가 아닌 아래 표와 같은 복잡한 데이터를 전달하고 싶을 때는 어떻게 해야 할까요?

문자열에 담아서 던져줄까요?
그럼 다음과 같이 되겠군요?
"축구 20 28.6% 농구 12 17.1% 야구 12 17.1% .... "
그런데 말입니다... 이런 식으로 데이터를 전송해버리면... 나중에 자신이 원하는 데이터를 뽑기 매우 어렵기 때문에
이런 방식은 사용하지 않습니다.
때문에 이런 복잡한 데이터를 담는 방법에는 여러 형식이 존재합니다.
따라서 그 형식에 맞춰 데이터를 보내게 되면 추후에 아주 쉬운 방법으로 데이터를 관리할 수 있습니다.
데이터 담는 대표 형식?
XML
<데이터 이름> 값 </데이터이름>
<데이터 이름> 값 </데이터이름>
<데이터 이름> 값 </데이터이름>
XML 안드로이드를 하는 사람에게 매우 익숙한 형식입니다.
00년대 이런 식으로 데이터를 많이 보냈습니다.
위 형식으로 데이터를 보내려고 했으면
<축구> 20 </축구>
<농구> 12 </농구>
이런 식이 되었겠죠.
좀 더 복잡하게 넣는다면
<food>
<name> 햄버거 </name>
<price> 4500 </price>
<made> 맥도날드 </made>
</food>
이런 식으로 들어가겠죠
그런데 단점은 용량이 크게 들고, 작성하기 매우 불편했습니다.
CSV
다음으로 CSV 가 있는데 이건 ,(콤마) 와 엔터키로 표 형식으로 보관했습니다.
Ex.
Year, Movie, Price
2023, 아바타 2, 12000
2023, 슬램덩크, 12000
이게 왜 표 형식이냐면...
저 콤마 부분과 엔터 부분을 기준으로 사각형을 그린다면
YEAR
|
MOVIE
|
PRICE
|
2023
|
아바타 2
|
12000
|
2023
|
슬램덩크
|
12000
|
이런 식이 되기 때문이죠.
때문에 DB에 있는 데이터를 담기 매우 쉽습니다.
이유는 DB에 있는 데이터도 그냥 표 형식이기 때문이죠.
하지만 표안에 표가 있는 2차원 표 같은 형식은 CSV로 담아내기 매우 어렵습니다
JSON의 등장

JOSN은 내가 만들었다 이 말이야
더글라스 크락포드라는 분이 계셨는데 이분이 JSON이라는 데이터 형식을 만들어서 사용하기 시작했습니다.
형식은 아래와 같았습니다.
{ "name" : "철수", "age" : "20" }
이 형식을 User와 Server에 주고받았습니다.
그리고 이름을 JSON (JavaScripte Object Notataion)이라고 명명했습니다.
하지만 개발은 혼자 하는 게 아니죠..
다른 개발자들이 혼자만 이상한 거 쓴다고 XML이나 CSV 같은 거 쓰라고 말을 해서..
본인이 JSON 소개 사이트를 만들었습니다.
JSON
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language Standard ECMA-262 3rd Edition
www.json.org
그래서 다른 개발자들이 이걸 보고 대기업이 만든 표준인 줄 알고 따라서 사용하기 시작했습니다.
실제로 위에서 쓰던 XML이나 CSV보다 편하기도 했고요
많은 사람이 사용하다 보니 2013년 JS 공식 문법에 편입되기도 했습니다.
JSON 만드는 법?

그냥 파일 확장자명을. json으로 만드시면 됩니다.
문자 저장?
"문자저장"
문자열을 저장할 때는 큰따옴표 안에 작성하시면 됩니다.
Array 저장하기 [] 이용
여러 데이터를 저장하고 싶을 때는 []를 이용한 Array나 {}를 이용한 Object 방식을 이용합니다.
{"철수", 20}
Object 저장하기 {} 이용
{ "name" : "철수" , "age" : 20}
Array와는 다르게 왼쪽에 데이터의 속성을를 나타내는 attribute 적으셔야 합니다
다양한 JSON 활용처
설정 파일 만들 때 사용 가능
웹 개발하실 때 보시면 JSON으로 세팅을 저장하시는 걸 많이 보실 수 있으십니다.
DB 형태로도 사용 가능
JSON은 데이터를 저장하기 편리하기 때문에 DB 형태로 사용하는 경우도 있습니다.
Firebase의 RealTimeDB가 그 대표적인 예입니다.
Firebase
Firebase is an app development platform that helps you build and grow apps and games users love. Backed by Google and trusted by millions of businesses around the world.
firebase.google.com

JSON은 단순한 데이터 저장 형식일 뿐... 대체재는 많다.
JSON은 단순한 데이터 저장 형식일 뿐입니다. 따라서 정말 많은 대체재들이 있습니다..
Ex.
XML
CSV
YAML
...
여러분들이 직접 데이터 형식을 만들어 대체재로 사용하셔도 되고요.
출처
'개발관련 > 용어' 카테고리의 다른 글
웹서버와 앱서버, WAS / 차이 (0) | 2023.07.01 |
---|---|
프로퍼티 (Property)란? (0) | 2023.07.01 |
DAU, WAU, MAU, BM 이란? (0) | 2023.06.30 |
개발용어 - 스트림이란? (Stream) (0) | 2023.06.30 |
개발용어 - API란 뭔가요? (0) | 2023.06.29 |