JSON은 느릴까?
1. 파싱 오버헤드
- JSON 데이터는 데이터 변환 과정이 필요하다.
- 여기서 데이터 변환은 느릴 수 있음. 특히나 nested 된 형태의 JSON의 경우에는 더더욱.
2. 직렬화 / 역직렬화
- 클라 -> 서버일 때 직렬화 되고 (객체를 문자열로)
- 서버 -> 클라일 때 역직렬화 되어야함 (문자열 -> 객체로)
3. String Manipulation (문자열 조작)
- JSON 은 텍스트 베이스이므로, 동작을 위한 문자열 조작에 크게 의존함
- 예를 들어, concatenation 이나 parsing
- 그런데 문자열 조작은 다른 이진 데이터를 다루는 것 보다 느림.
4. Data Type 이 부족함
- JSON 은 string, number, boolean 만 처리 가능.
- 복잡한 데이터구조는 JSON으로 표현하려면 비효율적임.
- 예를들어 함수 / 날짜 / undefined 등..
5. Verbosity (장황함)
https://www.odata.org/documentation/odata-version-3-0/json-verbose-format/
- 사람이 읽을 수 있는 형태로 설계되어서, 꽤나 장황해질 수있음.
- 중복된 키, 반복된 구조가 페이로드 크기를 증가시켜서 데이터 전송시간이 길어짐.
6. 이진 데이터를 지원하지 않음
- 이진 데이터를 핸들링하려면, 개발자가 직접 디코딩/인코딩 해야함
7. Nesting 이 깊어짐
- JSON은 쉽게 Neseting 이 깊어질 수있고, 이는 재귀적인 파싱 및 순회를 요구함.
- 즉, 최적화 없이는 시간복잡도가 올라감.