IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  XML | 웹 개발  >

Thinking XML: 파이어폭스 2.0과 XML (한글)

파이어폭스 최신 버전에서 XML을 처리하는 방식을 살펴보자

developerWorks
문서 옵션

JavaScript가 필요한 문서 옵션은 디스플레이되지 않습니다.

토론

영어원문

영어원문


제안 및 의견
피드백

난이도 : 초급

Uche Ogbuji, 파트너, Zepheira, LLC

2008 년 4 월 01 일

파이어폭스 2.0은 몇 가지 주요한 측면에서 XML 지원 방식이 달라졌습니다. 현재 파이어폭스 사용자 수는 급격하게 늘어나는 추세입니다. 여기서는 파이어폭스 2.0에서 달라진 XML 기능을 살펴봅니다. 또한 현재 논쟁이 분분한 RSS 웹 피드 처리 방식도 소개합니다.

현재 소프트웨어 업계에서 가장 주목 받는 소프트웨어를 꼽으라면 새로운 응용 프로그램 플랫폼으로 부상한 웹 브라우저라 하겠다. 특히 근래 들어 Ajax(Asynchronous JavaScript + XML) 같은 동적 HTML 기술이 다시 떠오르고 마이크로소프트 인터넷 익스플로러(Microsoft® Internet Explorer®) 개발이 부활하는 등 소프트웨어 개발 부문에서 흥미로운 변화가 쏟아지고 있다. 과거 몇 년 간 파이어폭스/XML과 관련한 developerWorks 기사는 모질라 게코 브라우저 버전 1.8에 기반을 둔 파이어폭스 버전 1.5를 다루었다(참고자료 참조). 그러나 맹렬한 개발 끝에 모질라 프로젝트는 드디어 게코 1.8.1 웹 브라우저 엔진에 기반한 파이어폭스 2.0을 내놓았다. 파이어폭스 2.0는 XML 처리 방식을 다소 변경했는데, 이 기사에서는 개발자가 염두에 두어야 할 커다란 암초 하나를 포함하여 파이어폭스 2.0에서 달라진 XML 처리 방식을 소개한다.

줄어든 웹 피드 통제권

파이어폭스 2.0에서 달라진 기능 중 하나는 파이어폭스 사용자 공동체를 깜짝 놀라게 했다. 흔히 RSS나 Atom과 같은 웹 피드는 스타일시트를 사용자에게 보이는 다른 형식으로 변환하는 XSLT를 포함한다. Listing 1은 이러한 변환을 참조하는 Atom 피드 예제다.


Listing 1. 스타일시트를 참조하는 Atom 피드
                
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xml" href="atom2html.xslt"?>
<feed xmlns="http://www.w3.org/2005/Atom"
      xml:lang="en"
      xml:base="http://www.example.org">
  <id>http://www.example.org/myfeed</id>
  <title>My Simple Feed</title>
  <updated>2005-07-15T12:00:00Z</updated>
  <link href="/blog" />
  <link rel="self" href="/myfeed" />
  <author><name>Uche Ogbuji</name></author>
  <entry>
    <id>http://www.example.org/entries/1</id>
    <title>A simple blog entry</title>
    <link href="/blog/2005/07/1" />
    <updated>2005-07-14T12:00:00Z</updated>
    <summary>This is a simple blog entry</summary>
  </entry>
  <entry>
    <id>http://www.example.org/entries/2</id>
    <title />
    <link href="/blog/2005/07/2" />
    <updated>2005-07-15T12:00:00Z</updated>
    <summary>This is simple blog entry without a title</summary>
  </entry>
</feed>

여기서 두 번째 행이 스타일시트 처리 명령(PI, processing instruction)이다. 위 Atom 피드를 파이어폭스 1.5에서 열면, 브라우저는 충실하게 atom2html.xslt를 읽어 결과를 표시한다. 실제 XML을 보려면 ‘소스 보기’를 수행해야 한다(자세한 내용은 이 기사 연재 2부를 참조한다). 파이어폭스 2.0에서는 브라우저가 스타일시트 처리 명령을 무시하고 그림 1과 같은 전용 파이어폭스 뷰를 사용한다(그림 1은 맥 OS X에서 실행한 파이어폭스 2.0.0.6이다).


그림 1. 파이어폭스 2.0에 내장된 웹 피드 뷰
파이어폭스 2.0에 내장된 웹 피드 뷰

내장 뷰를 사용하지 않고 사용자가 선택한 스타일시트를 강제하는 유일한 방법은 파이어폭스가 웹 피드를 판단하는 알고리듬, 즉 파일 첫 512바이트에서 "rss"나 "feed"라는 단어를 검색하는 방식을 속이는 길 뿐이다. Listing 2는 널리 쓰이는 우회책으로, 주석을 삽입하여 실제 XML 내용을 512바이트 밖으로 밀어낸다.


Listing 2. 파이어폭스 2.0과 인터넷 익스플로러 7 스타일시트 기본 처리 방식을 우회하는 Atom 피드
                
<?xml version="1.0" encoding="utf-8"?>
<!-- Firefox 2.0 and Internet Explorer 7 use simplistic feed sniffing to override desired
presentation behavior for this feed, and thus we are obliged to insert this comment, a
bit of a waste of bandwidth, unfortunately. This should ensure that the following
stylesheet processing instruction is honored by these new browser versions. For some more
background you might want to visit the following bug report:
https://bugzilla.mozilla.org/show_bug.cgi?id=338621
-->
<?xml-stylesheet type="text/xml" href="atom2html.xslt"?>
<feed xmlns="http://www.w3.org/2005/Atom"
      xml:lang="en"
      xml:base="http://www.example.org">
<!-- content of the feed identical to listing 1, so trimmed -->
</feed>

사용자 커뮤니티에서 상당한 논쟁을 벌인 끝에 파이어폭스 개발자들은 자기네 입장을 고수하기로 결정했다. 즉, 앞으로 나오는 파이어폭스 버전 역시 동일한 방식으로 동작한다는 뜻이다. 나는 이 방식이 마음에 들지 않지만 독자들은 논쟁을 읽어 보고 적절한지 나름대로 판단하기 바란다. 한 가지 언급하자면 이 새로운 방식은 인터넷 익스플로러, 애플 사파리와 비슷하다.

마이크로서머리(Microsummaries)

Live Title이라고도 하는 마이크로서머리는 파이어폭스 2.0이 새롭게 제공하는 멋진 기능이다. 웹 사이트가 마이크로서머리를 제공하는 경우 브라우저는 웹 페이지 제목, 특히 즐겨찾기 제목을 적절하게 유용한 문구로 바꿔준다. 예를 들어, IBM developerWorks에서 사이트 제목을 “developerWorks: IBM’s resource for developers”라고 지정하는 대신 마이크로서머리에다 최신 기사 제목을 넣을 수 있다. 마이크로서머리는 웹 사이트에서 제공해도 되지만 사용자가 직접 생성해도 된다. 후자를 “마이크로서머리 생성기”라고 하는데, 이런 기술을 이번 기사에서 흥미롭게 다루는 이유는 사용자 측에서 XML/XSLT 처리가 필요하기 때문이다(XML에 익숙하지 않은 사용자는 다른 사람들이 작성한 생성기를 사용해도 좋다). Listing 3은 developerWorks 사이트에서 특집 기사 제목을 추출하는 마이크로서머리 생성기다.


Listing 3. IBM developerWorks 사이트 특집 기사 제목을 사용하는 마이크로서머리 생성기
                
<?xml version="1.0" encoding="UTF-8"?>
<generator xmlns="http://www.mozilla.org/microsummaries/0.1" 
  name="IBM developerWorks featured article">
  <template>
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
        xmlns:html="http://www.w3.org/1999/xhtml">
      <xsl:output method="text"/>
      <xsl:template match="/">
        <xsl:text>Featured article:</xsl:text>
        <!-- On sites that make wider use of element IDs
        you can use more direct and efficient XPaths -->
        <xsl:value-of select="//html:a[@class='feature'][1]"/>
      </xsl:template>
    </xsl:transform>
  </template>
  <pages>
    <include>http://www.ibm.com/developerworks/[a-zA-Z0-9]*/?</include>
  </pages>
</generator>

생성기는 템플릿과 페이지 정보, 두 부분으로 나뉜다. 전자는 마이크로서머리 텍스트를 추출하려는 웹 페이지에 적용할 XSLT를 포함한다. 후자는 브라우저가 마이크로서머리를 사용할 페이지를 지정한다. 마이크로서머리는 단순한 텍스트이므로 출력 명령도 text로 주어진다. 마이크로서머리에서 핵심은 특집 기사의 제목 요소를 찾는 XPath //html:a[@class='feature'][1] 행이다. pages 섹션에서는 사이트 기본 페이지와 developerWorks 영역 페이지 전체에 마이크로서머리를 적용하기 위해 정규 표현식을 지정한다.

Listing 3과 같은 마이크로서머리 생성기를 설치하는 방법은 참고자료를 참조한다. 지금은 모질라 계열에서만 마이크로서머리 기능을 지원한다.

SAX와 기타 기능

모질라 확장 기능을 개발하는 개발자들이 가장 흥미로워 할 소식이 하나 있다. 모질라의 XPCOM 컴포넌트 시스템을 위한 SAX 구문분석기 프레임워크가 나왔다. 이제 (더 적합한 처리 기술이 없는 경우) XML을 효과적으로 처리하는 확장 기능을 개발하기가 쉬워졌다. XPCOM 통합은 SAX 이벤트를 C++나 자바스크립트 코드 등 XPCOM 바인딩이 가능한 언어에서 처리할 수 있다는 뜻이다.




위로


OpenSearch

OpenSearch는 아마존 A9 자회사에서 개발한 XML 표준이다. 검색 엔진을 정의하고 사용하는 여러 XML 형식과 표기법을 제공한다. 파이어폭스는 항상 확장 가능한 검색 엔진 플러그인을 강력히 지지해 왔으며, 이 정신에 따라 버전 2.0은 OpenSearch를 지원한다. 따라서 사용자는 인터넷 익스플로러나 다른 브라우저와 호환되는 기능을 사용하여 검색 기능을 확장할 수 있다.

파이어폭스는 현재 베타 버전인 OpenSearch 1.1을 지원하므로 파이어폭스와 OpenSearch 간에 호환성을 유지하려면 판올림이 필요할지도 모른다. Listing 4는 IBM developerWorks 사이트를 기술하는 OpenSearch 문서다.


Listing 4. IBM developerWorks를 기술하는 OpenSearch 문서
                
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
      <ShortName>IBM developerWorks search</ShortName>
      <Description>Search IBM developerWorks zones</Description>
      <Tags>xml java architecture</Tags>
      <InputEncoding>utf-8</InputEncoding>
      <Contact>https://www.ibm.com/developerworks/secure/feedback.jsp</Contact>
      <!-- The template attribute is split at the "?" for formatting purposes -->
      <Url type="text/html" 
       template="http://www.ibm.com/developerworks/views/xml/libraryview.jsp?
search_by={searchTerms}"/>
      <Attribution>All content Copyright 2007, IBM developerWorks</Attribution>
</OpenSearchDescription>

이 문서는 IBM developerWorks 사이트를 검색하는 URL이 다음과 같다고 기술한다.

http://www.ibm.com/developerworks/views/xml/libraryview.jsp?search_by={searchTerms}

여기서 {searchTerms}는 검색 도구가 검색 키워드로 교체할 템플릿 인수다. 즉, "Firefox XML"을 검색하는 URL은 다음과 같다.

http://www.ibm.com/developerworks/views/xml/libraryview.jsp?search_by=Firefox+XML

OpenSearch 명세는 URL 템플릿 시스템을 정의한다. 또한 검색 결과를 (몇 가지 특수 확장을 추가하여) RSS 2.0이나 Atom 1.0 피드로 반환하는 방법도 정의한다. 하지만 파이어폭스는 아직 웹 피드 검색 결과를 지원하지 않는다. 검색 결과에 (URL에서 내용 형식을 반환하는) type=”text/html”이라는 요소가 없으면 브라우저는 오류를 표시한다. 이런 제약으로 인해 다소 안타깝지만, 대다수 사용자가 웹 2.0 메커니즘이 아니라 기존 HTML 폼과 결과 페이지로 검색을 수행한다는 사실을 감안하면 현실적인 선택이라 하겠다.

파이어폭스 2.0에서 Listing 4와 같은 OpenSearch 문서는 완전한 검색 엔진 플러그인으로 동작한다. 웹 사이트에서는 페이지 헤더에 다음 링크를 추가하면 된다.

<link rel="search" type="application/opensearchdescription+xml" 
title="IBM developerWorks" 
href="/path/to/opensearch/description/document.xml"/>

참고: 위에서 소개한 짧은 코드 예제 세 개는 보통 한 줄로 구현한다. 기사에서 이해를 돕고자 여러 행으로 나누었다.




위로


결론

현재 알파 테스트 중인 파이어폭스 3.0은 XML 기능을 더욱 크게 확장할 예정이다. 완벽한 파이어폭스 3.0은 2008년 상반기에 나올 예정인데, 아주 중요한 버그를 수정하고 새로운 XML 처리 기능을 제공한다. 새 버전이 일반에 공개되고 나면 기사를 통해 자세히 소개하겠다. 모질라의 XML 코어 툴킷은 계속 개선을 거듭하고 있으며, XML 기술을 다루는 개발자와 사용자에게 커다란 이익을 제공한다. 대다수 사용자와 개발자는 웹 브라우저를 통해 XML을 처리하므로, 앞으로도 계속해서 최신 파이어폭스가 제공하는 기능을 추적하여 보고하겠다.



참고자료

교육

제품 및 기술 얻기
  • 파이어폭스: 표준 호환, 성능, 보안, 충실한 XML 기능을 제공하는 모질라 기반 웹 브라우저를 사용해 보라. 이 글을 번역하는 현재 버전은 2.0.0.13이다.

  • IBM 평가판 소프트웨어: developerWorks에서 직접 내려 받아 다음번 프로젝트에 활용하라.


토론


필자소개

Uche Ogbuji 사진

Uche Ogbuji는 차세대 웹 기술 솔루션을 제공하는 Zepheira, LLC의 파트너다. XML, RDF, 지식 관리 응용 프로그램의 오픈 소스 플랫폼인 4Suite 개발을 이끌고 있으며, PDF 조회 언어인 Versa 개발도 이끈다. 그는 Nigeria에서 태어나 현재 Colorado 주 Boulder 시에 살고 있는 컴퓨터 엔지니어다. 자세한 내용은 Ogbuji의 블로그 Copia를 참조한다.




기사에 대한 평가


보다 나은 서비스를 제공하기 위함이오니 잠시 짬을 내어 이 양식을 제출하여 주십시오.



아니오잘 모르겠음
 


 


12345
 


이 문서 북마킹 하기

mar.gar.in mar.gar.in naver naver eolin eolin del.icio.us del.icio.us





위로


IBM is a trademark of IBM Corporation in the United States, other countries, or both. Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. 기타 회사, 제품, 및 서비스명은 다른 상표나 서비스 마크일 수 있습니다.

developerWorks 콘텐트를 다른 사이트에 전재하기:
developerWorks 콘텐트에 대한 저작권은 IBM에 있습니다. IBM의 서면 허가나 원본 저자의 허락이 없이는 전재를 금합니다. 저희 콘텐트를 전재하시려면 IBM developerWorks 담당자 에게 문의하십시오.
    IBM 소개 개인정보 보호정책 문의