VS시리즈 - Json vs Xml

김현교·2023년 12월 29일
0

VS시리즈

목록 보기
12/12

공통점

  • 데이터를 저장하고 전송하기 위한 형식
  • 데이터 직렬화 형식

Json

  • JavaScript 객체와 유사한 형태를 가지며, 키-값 쌍의 컬렉션으로 구성
  • 데이터를 표현하는 데 더 간단한 구조를 가짐
  • 사람이 쉽게 읽고 쓸 수 있도록 디자인되어 있음
  • 텍스트 기반이기 때문에 읽기가 편하고, 작성하기도 비교적 간단
  • 더 적은 문자를 사용하여 데이터를 표현하기 때문에 일반적으로 XML보다 더 작은 크기를 가짐, 네트워크 전송 시에 유리
  • 구조가 단순하고 간결하여 작은 규모의 데이터를 다루는 데 효율적

Xml

  • 태그 기반의 트리 구조를 사용
  • 시작 태그와 종료 태그 사이에 데이터가 위치하며, 복잡한 구조와 계층을 가질 수 있음
  • 각 요소를 태그로 묶기 때문에 가독성이 떨어짐
  • 복잡한 구조로 인해 이해하기 어려움
  • 태그와 속성 등을 표현하기 위해 더 많은 문자를 사용하기 때문에 더 많은 저장 공간과 대역폭을 요구
  • 태그를 사용하여 데이터를 표현하기 때문에 더 유연한 구조를 가짐, 다양한 유형의 데이터를 다루는 데 더 적합
  • 주석을 지원하고, 스키마를 사용하여 데이터의 유효성을 보장할 수 있음

차이점

  • 구조 : JSON은 키-값 쌍의 컬렉션으로 구성된 반면, XML은 태그 기반의 트리 구조를 가짐
  • 가독성과 크기 : JSON은 가독성이 좋고 크기가 작지만, XML은 가독성이 상대적으로 낮고 크기가 더 큼
  • 유연성 : XML은 더 유연한 데이터 구조를 표현할 수 있으며, JSON은 간결하고 간편한 구조를 가지고 있음

예시

Json

{
  "person": {
    "name": "John Doe",
    "age": 30,
    "address": {
      "street": "123 Main St",
      "city": "Anytown"
    },
    "emails": ["john@example.com", "johndoe@gmail.com"]
  }
}

"person"이라는 객체 안에 이름(name), 나이(age), 주소(address), 이메일(emails) 등이 키-값 쌍으로 구성

Xml

<person>
  <name>John Doe</name>
  <age>30</age>
  <address>
    <street>123 Main St</street>
    <city>Anytown</city>
  </address>
  <emails>
    <email>john@example.com</email>
    <email>johndoe@gmail.com</email>
  </emails>
</person>

person이라는 태그 안에 name, age, address, emails 등이 중첩된 형태로 표현

요청 및 응답 처리

Json

요청

  • 요청 생성 : 클라이언트에서 요청을 생성할 때, 보통 JSON 형태로 데이터를 준비
    HTTP 요청 본문에 JSON 데이터를 포함시키는 방식으로 요청을 전송
  • JSON 데이터 전송 : 데이터를 JSON 형식으로 변환하고, POST 또는 PUT 요청과 함께 서버에 전송
  • 서버에서의 JSON 처리 : 서버는 전송된 JSON 데이터를 받아 파싱한 후, 해당 데이터를 활용하여 작업을 수행

응답

  • 데이터 생성 : 서버는 클라이언트 요청에 대한 응답으로 데이터를 생성합니다. 이 데이터는 주로 JSON 형식으로 구성되어 클라이언트에게 전송
  • JSON 응답 생성 : 생성된 데이터를 JSON 형식으로 변환하여 HTTP 응답 본문에 실어 클라이언트로 전송
  • 클라이언트에서의 JSON 응답 처리 : 클라이언트는 받은 JSON 응답을 해석하여 필요한 데이터를 추출하고, 이를 화면에 표시하거나 다른 작업에 활용

Xml

요청

  • 요청 생성 : 클라이언트에서 XML 형태로 데이터를 생성
    데이터를 XML 형식으로 포장하여 HTTP 요청 본문에 담아 서버에 전송
  • XML 데이터 전송 : XML로 구성된 데이터를 요청과 함께 서버에 보냄
  • 서버에서의 XML 처리 : 서버는 수신된 XML 데이터를 파싱하고 해당 요청에 맞는 작업을 수행

응답

  • 데이터 생성 : 서버는 클라이언트 요청에 대한 응답으로 데이터를 생성
    이 데이터는 XML 형식으로 구성되어 클라이언트에게 전송
  • XML 응답 생성 : 생성된 데이터를 XML 형식으로 변환하여 HTTP 응답 본문에 실어 클라이언트로 전송
  • 클라이언트에서의 XML 응답 처리 : 클라이언트는 받은 XML 응답을 파싱하고 필요한 데이터를 추출하여 활용

결론

  • 데이터 형태와 목적에 따라 JSON 또는 XML 중에서 선택하는 것이 중요
  • 웹 애플리케이션의 API 통신이나 데이터 교환에는 JSON이 보다 일반적으로 사용되고, 문서 구조를 다루거나 복잡한 메타데이터를 표현하는 경우 XML이 유용할수도 있음

profile
내가 공부하면서 궁금했던 걸 올리는 개발 블로그

0개의 댓글