우리는 Json으로 어떤 객체에 대한 정보를 가지고 오는 것입니다.
Json은 형식으로서 객체를 표현하는 방법중의 하나입니다.
즉, 우리가 무엇을 가져올 것인지가 중요한 것입니다.
페이스북의 예를 든다면, 우리가 Post 목록을 가져온다고 가정하죠.
그러면, Post ID, Post Name, WriterID, Content, AttachedFiles, NumberOfLikes, ....
이런 정보들을 가지고 올 것입니다.
즉, 포스트라는 객체의 목록을 가져옵니다.
그러려면 포스트 객체를 표현하기 위한 요소들을 가지고 와야 합니다.
데이터를 아끼는 시대는 지났습니다. 데이터를 아끼려면 Json을 쓰면 안됩니다.
예전에는 이런식으로 정의했죠.
PostID 4바이트 + PostName 20바이트 + ...
구분자도 없이 바이트 배열로 프로토콜을 정의했습니다.
그래서 데이터를 눈으로 보기 힘들었죠. 게다가 PostName을 20바이트에서 100바이트로 바꾸려면 프로토콜을 다 다시 정의하고, 클라이언트와 서버의 파서를 다 수정했어야 합니다.
Json이나 Http의 가장 큰 장점중의 하나는 데이터의 대부분을 사람의 눈으로 볼 수 있다는 점입니다.
그리고 또하나 길이 제한이 거의 없다는 점이죠. (숫자를 제외하곤)
때문에, 눈으로도 무엇이 잘못되었는지 알 수 있는 것이죠.
데이터를 아끼지 않아도 가장 빠른게 웹 서버입니다.
과거의 데이터 패킷을 아껴야 하는 기준으로 본다면, HTTP는 이미 오래전에 없어졌어야 하고,
현재의 웹서버도 없었을 것입니다.
결론적으로 데이터는 보이는 게 유리하고, 데이터는 아낄 필요가 없으며,
객체를 어떻게 설계할 것인지에 따라서 Json의 구조는 달라지는 것입니다.