과연 xml 이 왜 유용한건가요?

Posted 2005. 10. 13. 15:52 by alice201405
자바 서비스넷에서 가져온 내용입니다.

저도 종종 xml을 쓰면서도 정규화된 개념으로 왜 좋은가라고

생각해 본적이 없었네요.

==========================================================
제목 : 과연 xml 이 왜 유용한건가요?
글쓴이: 이호준(silnoon0) 2005/10/06 13:03:51 조회수:408 줄수:8
안녕하세요.개발자로 들어선지 1년밖에 안된 아직 먼길을 가야하는 초보 프로그래머입니다.
프로젝트를 몇개 진행하다가 보면서, 조금씩 배워가고 있는데요
저는 프로젝트 내에서 XML은 단지, 설정파일로만 사용을 했습니다.
근데 예전부터 지금까지 쭈~욱 xml에 관심을 많이 가지시는것 같아서요.(제 생각입니다.)
과연 xml을 이용하면 뭐가 유용해질 수 있으며, 또한 어디에 적용을 할 수 있는지
너무나 궁금합니다. 무엇이든 그렇겠지만, 목표의식이 뚜렷해야 공부할 맛이 나는데요,
전 아직 xml이 왜 중요한지 또 왜 써야 하는지를 잘 몰라서 계속 인터넷만 헤매이고 있습니다.
경험 많으신 선배님들의 조언 부탁드립니다.감사합니다.^^
제목 : Re: 과연 xml 이 왜 유용한건가요?
글쓴이: 서민구(guest) 2005/10/12 22:36:58 조회수:60 줄수:55
저는 경험은 별로 없지만, 며칠간 아무도 답글을 안달고 계시길래..

일단 XML은 하드웨어/소프트웨어 독립적인 데이터 저장 방법이라는데
의미가 가장 크죠. 덕분에 여러가지 프로그래밍 언어를 써도, 여러가지
운영체제를 써도 데이터를 공유할 수가 있게 되었구요..

그 덕에 웹서비스 같은데서도 어떤 메소드를 어떻게 던지고 파라미터는 뭐고
내가 부를 메소드는 어디에있지 찾아보는데도 XML이 쓰일 수 있죠.
이기종 환경에서 그렇게 다 통할 수 있는 포멧은 역시나 XML이기 때문에요.

설정파일의 경우에는, 설정과 코드를 분리해서 저장하고 코드는 내버려두고
설정만 고치면 좋겠다.. 라는 건데, 그나마도

db.server = localhost
db.port = xxxx
db.user_id = xxxx
db.password = yyyy
mail.server = localhsot
mail.port = xxxx

와 같이 다 왕창 넣어버리던걸

<db>
  <server>localhost</server>
  <port>xxx</port>
  <user_id>xxxx</user_id>
  <password>xxxx</password>
</db>
<mail>
  <server>localhost</server>
  <port>xxxx</port>
</mail>

과 같이 써주면, 일단 전용 프로그램이 아닌데서도 쉽게 편집가능한데다가
사실 '사람'이 읽기에도 후자의 형태가 편하죠...

그런데 설정 파일의 경우에는 요즘엔 또 난데없이 "annotation이 더 좋아요~"라는
추세로 조금 바뀌는 듯 하네요. EJB의 새버젼에서는 정말 끝내주던데요..

사실 별로 맨날 바꾸는 것도 아닌 설정 내용을 별도의 XML로 해놓으면,
사실 사람이 읽기에는 쉽다고 앞에 써두긴 했지만, 길어지면
실은 읽기 어렵거든요. (아 이랬다 저랬다 죄송 ^^. 양면성이 있단 거죠..)

그 길고 긴 XML 내용을 잘 읽어서, 
클래스는 어디 com.xxxx.yyyy.aaaa.bbbb 이고 그 클래스의 파라미터 
zzz 는 1이구나 라는걸 XML보고 알 수야 있지만 정작 또 그 클래스에대한
소스를 열고나면 '아 근데 zzz가 얼마였지?' 라고 또 헷갈리고.. 

하나 고치려니 XML도 고쳐야되고 소스도 고쳐야되고. 그게 과연편한거 맞아?
라는 의문이 들어서 annotation으로 가는게 아닐까라고 생각이 듭니다..


말이 길었는데, XML은 데이터 저장 및 표현의 표준이라고 생각하시면 될 듯..

제목 : Re: 역시 강점은 표준이라 생각합니다.
글쓴이: 김영근(naucika) 2005/10/13 11:23:05 조회수:8 줄수:48
여러장점이 있긴합니다만, 기본적인건 XML관련문서가 매우 많기 때문에 
그런 글들을 보시면 될것 같습니다.

이 표준화란 개념은 매우 강력하고 무서운(?) 개념입니다.
요즘 웹이 이렇게 고속으로 광범위하게 성장한 이유가 무엇일까요?
여러 다양한 웹브라우져가 있지만, 바로 이것들은 HTML 표준을 모두 따르기 때문입니다.
유닉스를 써도, 맥을 써도 웹페이지를 보는건 똑같죠? (물론 세부적인 내용이 다를순 있지만..)
XML은 이런 HTML의 미약한 부분을 보완한 (데이터 측면에서) 새로운 표준이라 보시면 될것 같습니다.

요즘 핸드폰 충전많이 하시죠? 예전엔 각사마다 서로다른 표준을 따라서, 심지어는
집에서 또 회사에서 사용할 충전기 또는 USB 케이블을 별도로 구입하곤 했죠.
요즘은 정통부 규격때문에, 어느집 놀러가도 왼만하면 충전이 거의 가능합니다.
표준인거죠?

예를들어, 어떤회사의 레포트 툴이 있다고하면 그 레포팅툴은 엔진은 C로 폼레이아웃은 
XML로 작성합니다. 이 XML규격만 맞춰주면 레포트가 출력되는 형식이죠. B사에서 
이 XML규격을 디자인해주는 자바 디자인툴을 만듭니다. 또, C사 D사 에서 서로다른 디자이너
툴을 만듭니다. 그래도 결과물은 XML 임으로 디자인툴에 상관없이 보여지는 내용은
같습니다. 게다, 만들어진 XML은 각 툴에서 서로 호환이 됩니다.

또, 요즘 RSS같은경우 이 표준화를 매우 잘 활용하고 있지 않습니까? 동일한 규격의 
데이터 폼을 제공해주면, 어떠한 홈페이지라도 한곳에서 모두 일괄 확인할수 있죠.
심지어는 블로그,위키,카페,홈페이지 전부 이 규격만 준수해주면 됩니다.

또, 웹서비스가 있죠? 바로 이런 XML의 강점으로 탄생한 수많은 기술들이 있습니다.
그 근간에는 바로 강력한 표준화란 정점이 있습니다.

어떠한 레거시와 OS와 각종언어에서도 호환되는 데이터를 이동시킬수 있다는것 만해도
정말 많은 제약을 벗어날수 있게 해줍니다.

물론 아직도 이 강력한 표준화는 진행중이라 말할수있겠지만, 
이제 곧! 입니다. 이전부터 있어왔던 XML이 근래에 대두되고 있는점은 바로 그 활용에
있습니다. 개념에서 끝나는게 아니라, 이젠 클라이언트들이 그걸 원하고 있고,
각종 서비스들이 덩치가 비대해지고, 기존 레거시들이 다양화되고, 
각종 벤더들이 본격적으로 지원하게 되면서 대두되기 시작한거죠.

설정파일에만 장점이 있는건 아닙니다.
사실 전 첨에 설정파일 나름대로의 문법(?)으로 만들어놓고 그걸 읽어드리는 로직을
만드는것도, 이 XML 을 이용하고, 파서를 이용하면서 매우 편해졌습니다.
내가 만든 파서도 모를때도 많던데요. -_-;

그외에도 많죠~~ 




온세상을 자바로~ -_-!!
http://cafe.naver.com/javalove