728x90
JSON(JavaScript Object Notation)
- 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 포멧
- 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐
- JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서 최근에는 XML을 대체해 데이터 전송 등에 많이 사용
특징
- 서버와 클라이언트 간의 교루에서 일반적으로 많이 사용
- js의 객체 표기법과 아주 유사
- js를 이용하여 JSON 형식의 문서를 쉽게 js 객체로 변환할 수 있는 이점이 있다.
- JavaScript에서 객체를 만들 때 사용하는 표현식을 의미(json은 js기반)
- 특정 언어에 종속되지 않으며, 대부분 프로그래밍 언어에서 JSON 포멧의 데이터를 핸들링 할 수 있는 라이브러리 제공
단점
- 단순히 데이터만이 아닌 js 그 자체도 전달할 수 있다.(데이터인 줄 알고 받았는데 악성 스크립트가 될 수 있다.)
- 위와 같은 이유로 데이터만 추출하기 위한 JSON 관련 라이브러리를 따로 사용하기도 함
- 데이터의 형식적 무결성 확보입니다.
- 입력 데이터의 형식적 무결성 확보는 수치적인 약간의 성능 향상보다 더 중요하게 고려해야 하는 부분입니다. 즉, 웹 API의 입력 데이터와 출력 데이터의 무결성을 검증, 확보, 유지하는 과정은 산술적인 이익보다 시스템 동작에 더 중요할 수 있다
XML(Extensible Markup Language) - 확장 가능한 마크업 언어
- 어떤 정보를 표현하는데 필요한 부가 정보를 함께 기술하기 위한 방법을 사용자가 새롭게 정의하여 사용할 수 있는 표기 방법
- 데이터를 기술하는 정도로만 사용
- 구조적인 데이터를 위한 것
- HTML기반 - 데이터 값 양쪽으로 태그 존재
*markup 출력하고자 하는 데이터에 어떤 정보를 덧붙이고자 할 때 이를 표기하기 위한 방법
JSON vs XML
- XML은 JSON에 비해 크기가 크고 태그때문에 길이가 길다.
항목 | JSON | XML |
메타 데이터의 비중 (메타 데이터: 실질 데이터 외에 추가되는 외적인 정보들) | 낮음 | 높음(XML 태그 때문) |
파싱의 편의성 | 높음 | 낮음 |
파싱 성능 | 상대적 높음 | 상대적 낮음 |
인자 및 데이터 형식의 문서화 | 일반 범용 문서 형식 | XML전용 문서 형식으로 작성 |
형식 정의 | 약함 | 강함 |
형식 검증 | 불편함 | 편리함 |
Reference
728x90
'Spring > 기타' 카테고리의 다른 글
[JPA] @ElementCollection (0) | 2022.11.27 |
---|---|
스웨거 헤더 넣기, swagger activate of authorize button (0) | 2022.10.07 |
mapstruct/Lombok차이 및 충돌 오류, cannot find symbol (0) | 2021.12.03 |
댓글