[Backend] 데이터 포맷의 양대 산맥: JSON vs XML 완벽 비교

웹 개발이나 시스템 간 데이터를 주고받을 때 우리는 일상적으로 JSON과 XML을 마주한다. 일반적인 개발에서는 대부분 JSON을 사용하는 추세이지만, 설정 파일이나 레거시 시스템을 연동하다 보면 XML을 사용해야 할 때가 있다.

오늘은 이 두 데이터 포맷의 특징을 살펴보고, 실무에서 상황에 따라 어떤 것을 선택해야 하는지 정리해 보려고 한다.


1. JSON과 XML에 대하여 

데이터를 전송하기 위해서는 일정한 '규격'이 필요하다. 그 규격의 양대 산맥이 바로 JSON과 XML이다.

✴️JSON(JavaScript Object Notation)

JSON은 가볍고 가독성이 뛰어난 데이터 교환 형식으로, 주로 웹 애플리케이션에서 널리 사용된다.
본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다.

💧장점

  • 직관적인 구조 덕분에 데이터의 이해가 용이
  • 태그 없이 키-값 쌍으로 구성되어 있어 데이터 크기가 작음
  • 웹 애플리케이션에서 성능이 우수함
  • 구조가 일관성이 있으며, 다양한 언어와 플랫폼에서 쉽게 파싱 및 생성

💧포맷

{
  "userId": 20241027,
  "username": "coder_kim",
  "isPremium": true,
  "interests": ["coding", "hiking", "jazz"],
  "stats": {
    "followers": 1250,
    "following": 300
  }
}

✴️ XML(eXtensible Markup Language)

데이터를 구조화하고 저장하는 데 사용되는 유연한 마크업 언어다. 데이터의 의미를 명확히 표현할 수 있으며, 다양한 표준과 프로토콜에서 활용된다.

💧장점

  • 복잡한 데이터 구조 표현하는데 적합
  • 스키마 지원
  • 다양한 시스템과 프로토콜에서 XML 지원
  • 데이터뿐만 아니라 문서의 의미와 구조를 함께 저장 가능

💧포맷



✴️ 표로 한 번에 비교하기

구분JSONXML
가독성매우 높음 (직관적)보통 (태그가 많아 복잡함)
데이터 크기상대적으로 작고 가벼움태그 때문에 용량이 큼
파싱 속도빠름상대적으로 느림
데이터 타입숫자, 문자열, 불리언 등 지원모두 문자열로 처리
주석 지원공식적으로 미지원지원함

2. 실제 어디서 주로 사용하는가?

✴️ JSON을 써야 할 때

  • REST API 통신 : 대부분 웹/앱 서비스의 API에서 사용
  • 비정형 데이터 저장 : 가벼운 설정 값이나 로그 데이터 저장
  • 빠른 개발이 필요할 때 : 별도의 파싱 설정 없이도 바로 객체화가 필요할 때

✴️ XML을 써야 할 때

  • 설정파일 : 스프링 프레임워크, 안드로이드 레이아웃 같이 구조가 복잡하고 엄격한 설정이 필요할 때 사용
  • 데이터 검증이 중요할 때 : DTD나 XSD 등을 이용해 데이터 규격에 맞는지 확심히 검증해야 하는 금융권이나 레거시 시스템 연동 시 사용 
  • 문서 중심의 데이터: 데이터뿐만 아니라 문서의 서식이나 구조가 함께 유지되어야 할 때

3. 한 줄 결론 

가벼운 통신과 빠른 개발에는 JSON을, 엄격한 구조와 데이터 검증이 최우선이라면 XML을 선택하자

댓글 쓰기

0 댓글