무식한 질문이겠지만..XML 은 도대체..--a..

elfs의 이미지

몇년전부터 XML 이라는 말을 들어왔고 그때당시만 해도 유닉스계열에서는 사용이 적을 것이라는등..그때 나온 책들도 딱히 XML 이 이거다..라고 설명된게 없어서 무시하고 지낸지 어언 3년...

요새 리눅스용 애플리케이션의 설정파일등에서 심심치않게 xml 파일들을 보네요... 예전 A = "1234" 식의 설정파일 형식보다 좀 더 사용이 편리할것 같아 보이긴 하는데..

아직도 이해가 안되는건 도대체 XML 로 무얼 할 수 있느냐 라는 궁금증입니다.

아직 제가 읽은 XML 의 개념은 너무 광범위해서 실제로 어떤 프로젝트에 어떤부분에 쓰인다거나..하는 것을 읽은적이 없는것 같습니다.

누가 이 무식한 제게 XML 로 아주작은 것이라도 어디에 활용하는지 설명해 주실 분 안계신가요.. :oops:

도대체 XML 은 어디다가 쓰나요? ㅜㅜ

june8th의 이미지

문서 저장 형식으로 씁니다. (말씀하신 것 처럼 설정 파일도 ..)
통신 프로토콜에도 쓰입니다. (soap, xml-rpc, IM)

비약을 하자면, 앞으로 만들어질 대부분의 문서/프로토콜 등이 xml이 될 수 있습니다.

지금의 8bit character stream과 마찬가지로
모든 application이 xml을 해석할 수 있는 세계가 올지도 모릅니다.. ;-)

서지훈의 이미지

모든 곳에 다 사용할 수가 있지요...
예를 들어...
DB, Messanger, Editor, Web, ...
그리고 XML을 meta language라고도 할 수도 있는데...
이건 XML을 이용해서 EBXML, WML, ... 등과 같은 새로운 종류의 랭귀지를 정의 할 수가 있기 때문입니다.

그리고 이의 구성에 관한 예로 가까운데...
blog.kldp.org 에 보면은 xml 이라는 아이콘이 있는데...
이걸 클릭을 하게 되면은...
현재 화면 구성을 xml로 떨어 뜨려서 보여 줍니다.
이것도 보면은 이 놈이 어떻게 구성이 된 놈인지 약간은 좀더 이해를 하실 수가 있습니다.
그리고 좀 더 깊이 알고 싶으시다면...
관련 문서나 간단한 책을 읽어 보시길...

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

huricool의 이미지

주로 호환성이 결여된 영역의 데이타 전송을 위해 사용합니다.

예를 들어 서로 다른 DB 를 사용하는 쇼핑몰과 결재서버등과 자료를 주고 받을때 시스템에 구애 받지 않고 XML 을 통해 교환하면 비용과 시간을 줄일수 있습니다.

현재 뉴스를 한곳에서 보여주는 서비스는 다른 신문사의 HTTP 내용을 긁어서
필요한 부분만 파싱해서 보여주는 경우가 많은데 신문사에서 웹서비스로 XML 데이타를 지원하면 외부에서는 XML 데이타만 받아서 원하는 서비스를 제공하면 됩니다.

기존의 방식으로 비용과 인력이 많이 드는 부분을 XML 을 통해 구현하면 쉽게
구현이 가능하기 때문에 각광받고 있습니다.

무인도에 갇힌다면 당신이 가지고 갈 세가지는?

M.W.Park의 이미지

XML의 의의는 구조정보와 스타일정보의 분리에 있다고 봐야할 것입니다.
그리고 특히... 메타정보(DTD, schema)를 통해서 문서의 타입을 정의할 수 있으므로, 규격화된 문서를 대량으로 처리하는데에 강점이 있습니다.

이상은 일반적인 문서처리의 관점에서 본것이고요.

프로그래머의 입장에서 본다면 다음과 같은 예들을 들 수 있겠네요.

1. ANT - XML 기반의 간단하고, 알기쉬운(makefile에 비해서) 형태의 build tool입니다. 자바쪽에선 거의 일반화 되었죠. 내용을 보시면 알겠지만 여러 액션들을 정의하는 태그와 그 액션의 타겟을 지정할 수 있게 되어있어 편리한 편입니다. http://ant.apache.org/

2. FOP - XML의 Formatting Object Processor인데요. 이놈의 빌드과정을 자세히 보면, ANT의 빌드과정중에 XSLT를 활용해서 코드를 자동생성합니다. 폰트정보에 관한 것들을 저장하는 클래스를 빌드타임에 자동으로 생성하죠. 뭐 다른 툴을 사용해도 상관없겠지만, 표준이라는 점을 감안하면 XML로 하는 것이 좀더 메리트가 있다고 봐야겠죠. http://xml.apache.org/fop/index.html

3. 각종설정파일들(apache 쪽 프로젝트 거의다... -_-)에 활용합니다. 표준화된 해석기/처리기가 존재하므로, 쉽게 활용할 수 있는 강점이 있습니다. 설정 파일의 구조를 설명하는 README를 따로 주지 않아도, example XML이나 DTD 또는 Schema를 참조하면 쉽게 알아낼 수도 있죠.

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

익명 사용자의 이미지

전 XML의 장점으로 다음을 들수 있을거 같습니다.

1. 프로토콜의 확장이 용이
2. 일반 디버깅할때 눈으로 확인이 용이 ( 눈으로 보기 쉬운... )
3. 다른 동일 XML지원 소프트웨어와의 통신시
명확한 프로토콜 협약에 필요한 시간 절약.
4. XML에서 분할되어 나온 많은 규약이 이미 존재하여
따로 고민하지 않고 이미 규약된 형식을 쓸수 있음.
(예: 스마일규약 - VOD등의 통신 규약)

단점으로는 별로 없지만 굳이 트집잡는다면
1. 실제 특정 작업에 국한된 프로토콜보다 크기가 커짐.

mach의 이미지

다들 훌륭하신 관점들을 가지고 계십니다.
저의 관점은 gateway입니다.

Quote:
"모든 자료의 중간형태, 즉 게이트웨이이다."

어떤 DB에서 다른 DB로, 또는 화면묘사로, 또는 파일로, 또는 네트워크로, 또는 ......
이런 경우 XML을 그 중간자로 사용하면 아주 편리합니다. 즉, 어떤 정보를 여러가지 뷰로 변환할때 중간표현으로 사용하면, 아주 용이하다고 생각하는 바입니다.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

iamslash의 이미지

xml 은 데이타 교환용 언어입니다.

이기종간 혹은 동기종간(?)끼리 자료를 효율적으로 교환하기 위한 수단이죠...
이렇게 자료 교환 부분을 xml 이라는 수단으로 분리 해놓으면(물론 파싱하기 위한 방법까지 스펙에 포함되어있습니다. DomParser, SaxParser)

예를 들어서 사용자 고객에 대한 정보를 xml 로 만들어 놓고 이기종간에 자료교환을 할 수 있습니다. 물론 굳이 xml 이 다른 수단으로 할 수 있지 않느냐 반문 하시겠지만 xml 은 자료 교환 방식의 표준입니다. 따라서 이기 종간에도 그 표준을 준수하는 한 자료 교환 방식은 동일 한 거죠...

저의 경우는 메신저를 제작햇을때 프로토콜을 xml 로 구현해 본적이 있었습니다. xml 을 위한 파서가 이미 만들어 져 있기때문에 복잡한 프로토콜을 파싱하는 부분은 깔끔했었죠... 하지만 바이너리 통신보다는 수행성능면에서 비효율적임은 확실합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.