웹 개발이나 시스템 간 데이터를 주고받을 때 우리는 일상적으로 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 지원
- 데이터뿐만 아니라 문서의 의미와 구조를 함께 저장 가능
💧포맷
✴️ 표로 한 번에 비교하기
| 구분 | JSON | XML |
| 가독성 | 매우 높음 (직관적) | 보통 (태그가 많아 복잡함) |
| 데이터 크기 | 상대적으로 작고 가벼움 | 태그 때문에 용량이 큼 |
| 파싱 속도 | 빠름 | 상대적으로 느림 |
| 데이터 타입 | 숫자, 문자열, 불리언 등 지원 | 모두 문자열로 처리 |
| 주석 지원 | 공식적으로 미지원 | 지원함 |
2. 실제 어디서 주로 사용하는가?
✴️ JSON을 써야 할 때
- REST API 통신 : 대부분 웹/앱 서비스의 API에서 사용
- 비정형 데이터 저장 : 가벼운 설정 값이나 로그 데이터 저장
- 빠른 개발이 필요할 때 : 별도의 파싱 설정 없이도 바로 객체화가 필요할 때
✴️ XML을 써야 할 때
- 설정파일 : 스프링 프레임워크, 안드로이드 레이아웃 같이 구조가 복잡하고 엄격한 설정이 필요할 때 사용
- 데이터 검증이 중요할 때 : DTD나 XSD 등을 이용해 데이터 규격에 맞는지 확심히 검증해야 하는 금융권이나 레거시 시스템 연동 시 사용
- 문서 중심의 데이터: 데이터뿐만 아니라 문서의 서식이나 구조가 함께 유지되어야 할 때
3. 한 줄 결론
가벼운 통신과 빠른 개발에는 JSON을, 엄격한 구조와 데이터 검증이 최우선이라면 XML을 선택하자
0 댓글