1. JSON
JavaScript의 객체문법으로 구조화된 데이터 교환 방식이다. JavaScript 뿐만 아니라 JAVA, Python에서도 데이터 교환 방식으로 쓰인다.
JSON의 타입은 String, Number, Boolean, Object, Array, Null가 있다.
2. 직렬화, 역직렬화
JSON에서는 데이터 교환하는 방식이 직렬화, 역직렬화 두가지가 있다.
- 직렬화(Serialization)
- 데이터를 JSON 문자열(string)로 변환하는 기술이다.
- JSON.stringify()
- 역직렬화(Deserialization)
- 내부에서 사용할 수 있도록 JSON 문자열(string)을 JavaScript의 객체문법으로 변환하는 기술이다.
- JSON.parse()
JSON의 사용되는 사례는 주로, API 혹은 시스템을 구성하는 설정파일에 활용이 된다.
ex) API, Package.json
3. XML
XML은 마크업 언어 중 하나로, 태그를 이용하여 데이터를 저장, 전송하는 데이터 교환 방식이다.
여기서 마크업이란?
마크업은 태그나 기호 등을 이용하여, 문서나 데이터의 구조를 나타내는 것을 의미한다.
대표적인 마크업 언어는 HTML, XML, Markdown, LaTex 등이 있다.
XML의 구성은
1. 프롤로그: 버젼, 인코딩
2. 루트요소(단 하나)
3. 하위 요소들
<?xml version="1.0" encoding="UTF-8"?>
<OSTList>
<OST like="1">
<name>마녀 배달부 키키</name> <song>따스함에 둘러쌓인다면</song>
</OST>
<OST like="2">
<name>하울의 움직이는 성</name> <song>세계의 약속</song>
</OST>
</OSTList>
위와 같이 구성이 되어있다.
4. HTML와 XML의 차이
HTML
- HTML은 주로 데이터를 표시하는, UI를 보여주며
- HTML은 정해진 태그를 사용한다.
- 대소문자 구분이 없다.
- 종료태그가 필요없는 태그도 있다.
XML
- 데이터를 저장, 전송한다.
- 태그를 커스텀마이징 할 수 있다.
- 대소문자 구분이 있다.
- 종료태그가 필수이다.
5. Sitemap.xml
sitemap.xml은 xml을 사용할 때 필수적으로 사용하는데, 이 이유는 큰 사이트거나, 링크가 서로 종속적으로 연결되어 있지 않을 경우, 페이지의 데이터 누락이 생길 수도 있다. 이를 방지하기 위하여 sitemap.xml을 사용한다.
sitemap.xml이란
서비스 내의 모든 페이지들을 리스트업한 데이터라고 보면 된다. 자세하게 말하자면 웹 사이트의 모든 페이지 목록을 포함한 XML 파일로, 검색 엔진이 사이트의 콘텐츠를 효과적으로 크롤링(수집)할 수 있도록 도와준다.
대규모 사이트나 링크가 서로 종속적으로 연결되지 않은 사이트에서는 필수적으로 사용된다.
위와 같이 sitemap을 사용하는 이유는
- 검색 엔진 크롤링 최적화
- 검색 엔진(google, Bing 등)이 사이트의 모든 페이지를 빠짐없이 인식하도록 도와준다.
- 내부 링크가 부족하거나, 페이지 간 연결이 약한 경우에도 사이트의 구조를 명확하게 제공한다.
- SEO(검색 엔진 최적화)
- 사이트의 모든 페이지가 검색 엔진에 색인(indexing)될 가능성을 높인다.
- 웹 사이트 내 중요한 페이지를 우선적으로 검색엔진에 노출
- 페이지의 최신 업데이트 정보를 제공하여 검색 엔진이 더 빠르게 반영될 수 있도록 도와준다.
6. JSON과 XML의 비교
JSON과 XML은 둘다 데이터 전송 방식이다. 하지만 현 시점에서는 XML보다 JSON을 대중적으로 사용하는데, 그 이유는
XML의 경우는
종료태그가 필수적이라서 데이터가 길어질수록 가독성이 떨어지며, 무거워질수도 있다.
반면 JSON의 경우는 키 - 값(key - value)의 구조로 데이터가 좀 더 간결하다.
그리고 JSON의 경우 JS 객체 이기 때문에, 웹 브라우저나 서버에서 바로 객체로 변환하여 사용할 수 있다.
XML의 경우는 데이터를 사용할 경우 추가적인 파싱이 필요하여 속도가 느릴 수도 있다.
또한, REST API의 경우는 기본적으로 JSON을 사용 하며, 브라우저 및 다양한 프로그래밍 언어에서는 JSON의 지원이 아주 강력하다.
하지만, XML이 아예 안쓰이는 것은 아니다.
XML이 유리한 경우도 있다.
- 문서 기반의 데이터 구조
- XML은 HTML과 비슷한 계층 구조를 가지고 있기 때문에, 문서 저장에 적합하다.
- 구조화된 데이터 및 복잡한 스키마 정의가 필요하다.
- XML은 DTD, XSD와 같은 스키마(Schema)를 이용하여 데이터를 엄격하게 정의가 가능
- 금융, 의료, 법률 시스템에서 데이터 검증이 중요한 경우에 사용
- SOAP API에서 사용
- SOAP(Simple Object Access Protocol) 기반 웹 서비스에서는 XML이 필수적으로 사용됨
- 금융권, 공공기관 등 보안이 중요한 환경에서는 XML 기반 SOAP API를 여전히 사용한다.
'CS' 카테고리의 다른 글
HTTP(Hyper Text Transfer Protocol) (0) | 2024.11.25 |
---|---|
HTTP 프로토콜 (0) | 2024.09.02 |
프로그래밍 패러다임 / 선언형과 함수형 프로그래밍 (0) | 2024.07.21 |
노출모듈 패턴 / MVC 패턴 / MVP 패턴 / MVVM 패턴 (0) | 2024.07.14 |
옵저버 패턴 / 프록시 패턴과 프록시 서버 / 이터레이터 패턴 (0) | 2024.07.05 |