문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 XML (문단 편집) == 기타 == 원래는 웹에서 사용할 목적으로 만들었는데, 웹환경이 아닌 일반 [[TCP/IP]] 네트워크 통신을 할 때에도 점점 사용빈도가 늘어나고 있는 추세이다. 디지털 기반의 네트워크 통신을 할 때 송신자와 수신자간에서는 서로 주고받는 데이터 패킷을 비트 단위로 정확하게 맞춰줘야 문제가 생기지 않는데, 이 비트단위 데이터 통신에 하도 불확실성이 많아서...~~가장 큰 불확실성은 사람이 만든 버그~~ 또한 데이터 패킷단위 전송시 애플리케이션의 개발기반, 구동 환경에 따라 이런저런 잔처리가 많이 들어간다.[* 예를 들어, 자바와 C++로 만든 프로그램이 통신한다고 할 때 양자간 기본 데이터 크기와 형식이 달라서 글자 그대로 패킷을 바이트 단위로 쪼개서 주고 받아야 한다.] 그래서 요즘은 아예 XML로 데이터를 주고받는다. 이렇게 하면 최소한 패킷 사이즈가 안 맞아서 발생하는 버그는 줄일 수 있다. 그리고 이렇게 만든 프로그램은 XML로 데이터를 주고받기 때문에 웹확장성도 덤으로 갖게된다. 다른 컴퓨터 사이에 정보를 주고 받는 웹 서비스는 서버에 데이터를 요청하면 기본적으로 결과가 XML로 리턴이 된다. 구글맵 [[API]]의 경우도 XML로 데이터를 전달받을 수 있다. 아래 링크를 클릭하면 구경해볼 수 있다. [[http://maps.googleapis.com/maps/api/directions/xml?origin=Chicago,IL&destination=Los+Angeles,CA&waypoints=Joplin,MO\|Oklahoma+City,OK&sensor=false|구글맵 쿼리 테스트]] 이러한 것이 아닌, 요청과 응답을 XML에 기반하여 제정된 표준으로 XML-RPC와 SOAP이라는 프로토콜이 존재한다. 처음에는 인터넷 상에서 사용할 것을 목적으로 만들었지만, 운용하는 데 생각보다 까다롭고 부담이 많이 되기 때문에 지금은 보수적인 기업 환경이 아니면 보기 힘들다. 현대 기술에 조금이라도 관심이 있는 기업들은 이 무겁디 무거운 XML-RPC 프로토콜 따위는 집어치우고 훨씬 가벼운 REST API를 사용한다. 둘의 근본적인 차이라면 XML-RPC는 요청을 보낼 때 '''반드시 성공하도록''' 사전에 줄 수 있는 정보는 사소한 것까지 다 준다는 개념이고 REST API는 반드시 필요한 정보만 보내고 받는 쪽이 그걸 잘 해석할 수 있다고 믿는 대신 실패를 당연하게 생각하는 개념이다. 다만 [[JavaScript]]에서는 여러 모로 취급이 불편하고, '''실제 데이터 양에 비해서 엄청난 덩치를 자랑하기 때문에'''[* XML 선언 헤더, HTML 방식의 열고 닫는 태그 구조, 엔티티 이스케이핑(예를 들면 &를 &로 적어야 한다든지...) 등등이 덩치를 키우는 데 일조했다. 아니나다를까 [[리누스 토르발스]]의 [[https://web.archive.org/web/20181012132916/https://plus.google.com/+LinusTorvalds/posts/X2XVf9Q7MfV|까임을 면치 못했다.]]] [[JSON]]이라는 포맷을 따로 만들었을 정도. 단 이것은 웹 브라우저와 직결되는 환경 한정이다. 애초에 JavaScript 사용 빈도 자체가 웹 브라우저 상에서 사용되는 경우가 가장 많으니까. 그러나 이러한 장점이 있는 대신, XML이나 JSON은 공통된 단점이 있으니, 기본적으로 둘 다 문자열에 기반한 것이고, 실 데이터에 비해 오버헤드가 많으며, 메모리 상에 들어있던 데이터를 XML이나 JSON으로 변환(Serialization, Marshalling)하여 전송하고, 다시 이렇게 전송받은 XML 이나 JSON 데이터를 메모리에 복원(Deserialization, Unmarshalling)시키는 오버헤드가 크다. 네트워크 트래픽에 대해선 압축 전송으로 극복할 수 있지만 어쨌든 받은 뒤에는 그 압축을 풀어야 하니까 근본적인 문제는 해결되지 않는다. 어쩌다 한 번 이러한 방식으로 동작하는 프로그램을 운용하는 경우에는 별 문제가 없지만, 1초에도 수십 번 이상 이러한 요청을 받아서 처리하여 결과를 돌려주는 서비스를 운용할 때에는 꽤 문제가 되며, IBM 같은 곳에서는 이러한 변환 작업용 전용 가속 장비를 제작하여 기업용으로 판매할 정도이다. 어떻게든 이러한 문제점을 극복해 보고자 아예 Efficient XML Interchange(EXI)라고 하는 Binary XML 까지 등장했다.[* 이와 유사하게 JSON의 Binary 형태인 BSON도 존재.] 물론 이 정도로 데이터 오버헤드가 문제가 되면 전용 바이너리 포맷을 개발하는 게 보통이다. [[DOI]] 주소를 만들 때에도 사용되고 있다. 취급이 불편하고 부여하기가 부담스럽기는 매한가지. 이것을 응용해서 피처폰에 서비스를 제공한것이 [[WAP]].저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기