이동 중에 노트북 PC를 사용하다가 가끔 인터넷 접속이 필요한 경우가 있다. 무선 AP가 잡히면 다행이지만, 그렇지 못할 때가 더 많기 때문에 보편적으로 "모뎀"을 사용하는 경우가 많다. 이런 기능은 휴대 전화로도 가능하고, HSDPA나 와이브로(WiBro)용 모뎀 등으로 쓸 수 있다. 비싼 요금이 걸림돌인데 그나마 와이브로용 에그(Egg) 단말기를 이용하면 비교적 요금이나 용량 걱정 없이 이동 중에 인터넷을 사용할 수 있다. 하지만, 이 에그는 수도권이나 일부 지역에서만 사용할 수 있기 때문에 범용성은 상당히 떨어진다.

아이폰(iPhone 3GS)도 모뎀으로 사용할 수 있는 기능이 들어있다. 이를 "인터넷 테더링(Internet Tethering)" 기능이라고 하는데, 이동 전화망에 연결된 아이폰을 다른 PC에 USB 케이블 또는 블루투스(Bluetooth)로 연결해 인터넷을 쓸 수 있도록 하는 것이다.

전화망에 연결되어 있으면 데이터 용량이나 요금의 압박을 받을 수 있으므로 주의가 필요하다. 아이폰의 경우 와이파이에 연결되어 있다 하더라도 테더링으로 사용하는 트래픽은 3G망을 통하게 된다고 한다.

이동 중에는 케이블 연결하는 것도 귀찮기 때문에 블루투스(Bluetooth)를 사용하면 더 편리하게 이 기능을 활용할 수 있다.

 

[설정] > [일반] > [네트워크]에서 "인터넷 테더링"을 켠다.  

 
 

블루투스가 켜있지 않으면 이를 확인하는 메시지가 나타나고, 이미 켜져 있으면 바로 활성화한다.

 
 

연결을 하려는 PC와 짝을 맞춘다.

 
 

PC의 운영 체제 버전마다 네트워크와 관련된 항목이 다르게 보일 수는 있지만, 기본적으로 블루투스 네트워크에서 연결 설정 기능만 켜주면 된다. Windows 7에서 주의할 점은 블루투스 장치의 연결 설정을 "직접 연결"이 아니라 "액세스 지점"으로 해야 한다는 것이다.

 

이렇게 설정을 마치면 PC에서도 아이폰의 인터넷 연결을 공유할 수 있다. 이 상태는 아이폰 화면 상태 표시줄(상태 막대) 바로 아래 "인터넷 테더링"이라는 표시를 보면 확인할 수 있다.

 
 

인터넷 테더링 상태에서도 전화 등 다른 기능은 모두 사용 가능하다
국내에서 안드로이드폰들이 대거 출시가 되면서 이제 점차적으로 많은 사용자들이 늘어나고 있습니다. 그와 더불어 국내에서 활용이 가능한 어플리케이션을 다운받을 수 있는 안드로이드 마켓의 사용도 증가하고 있습니다. 또한 국내 개발자들과 각 분야에서도 점차적으로 안드로이드 어플리케이션을 개발하고 내놓고 있어 이는 곧 안드로이드폰 사용자의 혜택으로 다가오고 있습니다.


안드로이드 어플 추천 - My Market


즉 안드로이드 마켓은 안드로이드폰 사용자에게 보물상자 같은 역할을 하는곳입니다. 그런데 국내에서는 해외와 다르게 동일한 혜택이라는 부분에서 다른 점이 있으니 바로 게임 카테고리 분야죠! 국내에서는 심의문제로 현재 안드로이드 마켓에 게임 카테고리에는 게임이 없는 상태입니다. 현재 이러한 오픈마켓 게임심의를 위해 정부와 업계가 논의를 하고 있기는 하지만 어찌하였든 현재는 국내 안드로이드폰 사용자들은 안드로이드 마켓을 통해 게임을 즐길 수 없는 실정입니다. 그렇지만 안드로이드 마켓에 올라온 어플리케이션을 통해 국내 안드로이드폰 사용자도 게임 어플리케이션을 마켓에서 다운받을 수 있습니다. 바로 My Market 라는 어플리케이션으로 안드로이드 마켓 제공자를 SK가 아닌 해외로 바꾸면 가능하게 해주어 게임을 다운받을 수 있게 되는것이죠!

안드로이드 마켓 검색어 : My Market

안드로이드 마켓에서 다운받아 설치를 합니다.

실행 하고 최초 허용을 터치하여 줍니다.

My Market의 초기 화면입니다.

메뉴 버튼을 눌러 Settings를 터치하여 줍니다.

Providers를 터치하여 SK가 아닌 다른 나라를 선택해줍니다.

My Market 게임 카테고리에 들어가면 게임들이 보이고 다운하여 설치하면 됩니다.

실제로 다운받아 설치하고 플레이하는 화면입니다.

현재 국내에서 게임심의 문제로 안드로이드 마켓에서 게임을 다운로드 받아 즐길 수 없지만 이렇게 본 어플리케이션을 설치하면 다른 나라의 안드로이드 마켓으로 접속을 하여 수많은 게임들을 손쉽게 다운받아 즐길 수 있게 됩니다. 이러한 방법 말고 빨리 오픈마켓 게임심의가 해결이 되어 국내 안드로이드 마켓에서 게임을 즐겼으면 합니다. 그 전까지는 이러한 방법으로 그나마 쉽게 게임을 다운로드 받고 즐길 수 있지 않나 싶습니다.
관련 기사  : http://news.hankooki.com/lpage/economy/201007/h20100704160841111720.htm

천하
의 애플도 소비자 앞에선 무릎을 꿇었다.

수신 불량이 제기된 애플의 아이폰4 구입자들을 대상으로 전액 환불을 공지하고 나섰기 때문이다. 지난 달 말 애플이 스마트폰으로 야심 차게 내놓은 아이폰4(사진)은 5,000만대 이상의 누적 판매고를 올리고 있는 아이폰3의 후속 제품으로, 미국 시장 등에 출시한 지 사흘 만에 170만대 이상이 팔려 나가면서 기록적인 초기 판매량을 보이고 있다.

하지만 애플은 2일(현지시간) 자사 홈페이지에 "손으로 쥐는 방법에 따라 아이폰4의 수신 표시 바가 4~5개 급격히 줄어든다는 일부 고객들의 지적에 대해 자체 조사한 결과, 수신 강도를 나타내는 바의 수를 표시하는 공식이 완전히 잘못됐다는 사실을 발견했다"고 밝혔다.

이어 "이런 사실을 몰랐을 고객들에게 우려를 끼친 데 대해 사과한다"며 "아이폰4에 만족하지 못한 고객들이 구입 30일 이내에 제품을 반납할 경우엔 전액 환불해 줄 수 있다"고 공지했다. 사실상 소비자들이 공공연히 제시한 아이폰4의 문제점을 인정한 셈이다.

이와 관련, 스티브 잡스 애플 최고경영자(CEO)는 아이폰4의 수신불량을 경험한 한 소비자가 이메일을 보내 해결책을 묻자, "단말기 쥐는 방법을 바꾸라"고 답변한 것으로 알려졌다.

'휴대기기' 카테고리의 다른 글

아이폰 텐더링 기능 (아이폰 모뎀 기능)  (0) 2010.07.06
안드로이드 마켓 이용하기  (0) 2010.07.05
갤럭시S? 아이폰4? 대박일세!  (0) 2010.06.25
godfinger 아이폰 ,아이패드  (0) 2010.06.25
아이폰 4.0  (0) 2010.06.22

http://www.etnews.co.kr/news/detail.html?id=201006300191&portal=001_00001

관련 기사 링크

델이 부품에 결함이 있는 것을 알면서도 이를 이용해 제조한 데스크톱PC 1000만대 이상을 유통한 것으로 밝혀졌다. 기업 윤리성에 치명타를 입힐 수 있는 사건으로 파장이 커질 것으로 보였다.

뉴욕타임스는 30일 델이 지난 2003년 5월부터 2005년 7월까지 부품 결함으로 인해 고장날 위험이 있는 기업용 ‘옵티플렉스’ 데스크톱PC 모델을 1180만대 이상 출하했다고 보도했다.

델은 유독물질이 흘러나와 제품을 손상시킬 위험이 있는 콘덴서를 이용해 만든 마더보드를 옵티플렉스 모델에 탑재했다. 이 콘덴서는 일본 전자부품업체 니치콘에서 공급한 것으로 다른 PC제조사에도 공급됐다.

델은 자체 조사 결과 콘덴서 중 97%가 문제를 일으킬 가능성이 있는 것으로 파악했지만 이를 숨기기에 급급했다. 고장이 접수된 PC에 대해서만 교체를 해주고 계속 제품을 판매했다. 판매 부서에는 그 사실을 고객들에게 알리지 말라고 주문한 것으로 나타났다.

이 사실은 뉴욕타임스가 단독 입수한 소송 관련 문건에서 드러났다. IT서비스업체인 AIT는 지난 2003년부터 2098대의 델 PC를 리스해 인터넷 서버사용하다 2004년 11월 거의 모든 옵티플렉스 모델이 고장나자 제품 자체에 결함이 있다는 것을 알게 됐다. 데이터 손실 등 여러 피해를 입었음에도 델이 적절한 조치를 취하지 않자 델이 보증 협약을 이행하지 않았다며 노스캐롤라이나 연방법원에 소송을 제기했고 관련 문건에서 델의 부도덕성이 드러난 것이다. 전문가들은 결함 있는 옵티플렉스를 판매하던 시기에 델이 재정상 위기를 겪으면서 문제가 생긴 것으로 파악했다. 당시 델은 제조 단가를 낮추기 위해 고군분투하고 있었기 때문에 문제를 해결할 만한 여력이 없었다는 것이다.

시장조사업체 엔드포인트테크놀로지스어소시에이츠의 로저 케이 애널리스트는 “델은 평판 하락이라는 충격을 받게 됐다”면서 “이번 문서로 델은 미국에서 가장 존경받는 기업 중 하나라는 타이틀을 잃게 될지도 모른다”고 말했다.

한편 이번에 문제가 된 옵티플렉스 모델은 한국에서도 판매됐다. 델코리아 관계자는 “2003~2005년에 판매됐던 모델로 현재 제품들과는 전혀 관련이 없다”면서 “니치콘 콘덴서의 결함을 발견하자마자 부품 공급을 중단했고 고객들에게는 교환해주거나 보증기간을 연장해주는 등 조치를 취했다”고 말했다

!! children 이라는 의미는 나의 자식만을 의미하지 자식의 자식..손주까지 의미하진 않는다.
그건 자식의 children 일 뿐이다....

<?xml version="1.0" encoding="euc-kr"?><br/>
<inventory><br/>
 <book year="2000"><br/>
  <title name="Snow Crash"><br/>
   <genre>novel</genre><br/>
  </title><br/>
  <br/>
  <author>Neal Stephenson</author><br/>
  <publisher>Spectra</publisher><br/>
  <isbn>0553380958</isbn><br/>
  <price>14.95</price><br/>
 </book><br/>
 <book year="2005"><br/>
  <title>Burning Tower</title><br/>
  <author>Larry Niven</author><br/>
  <author>Jerry Pournelle</author><br/>
  <publisher>Pocket</publisher><br/>
  <isbn>0743416910</isbn><br/>
  <price>5.99</price><br/>
 </book><br/>
 <book year="1995"><br/>
  <title>Zodiac</title><br/>
  <author>Neal Stephenson</author><br/>
  <publisher>Spectra</publisher><br/>
  <isbn>0553573862</isbn><br/>
  <price>7.50</price><br/>
  </book><br/>
</inventory>

----------------------------------------------------------------------------
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.jdom.Attribute;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;



public class JDOM001 {
        public static void main(String[] args) {
                try {
                        SAXBuilder builder = new SAXBuilder();
                        Document jdomdoc = builder.build("src/books.xml");
                       
                        // 우선 root 엘리먼트를 가져온다. 여기서는 inventory
                        Element root= jdomdoc.getRootElement();
                       
                        DocType docType = jdomdoc.getDocType();

                        System.out.println();
                        System.out.println("Root element:");
                        System.out.println(" Name: "+root.getName());
                        System.out.println(" Text(trimmed): '"+root.getTextTrim()+"'");
                       
                        // 파싱을 위해 메스드에 넘김
                        nodeParser(root);
                       
                } catch (JDOMException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }
       
        // parent에 해당하는 element 를 받게 된다.
        public static void nodeParser(Element p_el) {
                // 현재의 parent 에 해당하는 element의 자식들!을 가져온다.
                List list = p_el.getChildren();
                // children을 Iterator에 담음...
                Iterator it = list.iterator();

               
                while(it.hasNext()) {
                        // 엘리먼트 하나만 꺼내
                        Element e = (Element)it.next();
                        // 그 엘리먼트의 속성값들을 List에 담는다.
                        List attList = e.getAttributes();
       
                       
                       
                        // 속성이 있다면 속성을 찍는다.--------------------------------------------------------
                        if (attList.size() != 0) {
                                // 역시 속성리스트를 다시 iterator 로 담고
                                Iterator i = attList.iterator();
       
                                while(i.hasNext()) {
                                        /** Attribute 파싱 **/
                                        // iterator 로 부터 하나의 속성을 꺼내와서...
                                        Attribute at = (Attribute)i.next();
                                        System.out.println("속성이 존재한다.");
                                        System.out.println("node : " + e.getName());
                                        System.out.println("attribute : " + at.getName() +"   attribute value : " + at.getValue());
                                }        // end of while
                        }        // end of 속성 if
                        // 속성 가져오기 끝....-----------------------------------------------------------------
                       
                        // 이제 자식들중에서 가져온 자식하나가 또 children 노드들을 가지고 있는지 확인하자구...
                        List li = e.getChildren();
                       
                        // 자식노드가 존재한다면.... 다시 nodeParser에 넣어서 계속 children을 타고 내려가야한다.
                        if (li.size() != 0) {
                                System.out.println("자식노드(모든서브)가 존재한다. childeren list size : "+ li.size());
                                nodeParser(e); /** recursive call **/
                        } else {
                                System.out.println("자식은 더이상 없고 노드에 값이 있음  childeren list size : "+ li.size());
                                /** 노드의 값이 있는 경우에만 출력 **/
                                if (!e.getValue().trim().equals("")) {
                                        System.out.println("parent node : " + e.getParentElement().getName() + " current  node : " + e.getName());
                                        System.out.println("value : " + e.getValue());
                                }
                        } // end of if
                } // end of while
        } // end of nodeParser
}


-----------------------------------------------------------


Root element:
Name: inventory
Text(trimmed): ''
속성이 존재한다.
node : book
attribute : year   attribute value : 2000
자식노드(모든서브)가 존재한다. childeren list size : 5
속성이 존재한다.
node : title
attribute : name   attribute value : Snow Crash
자식노드(모든서브)가 존재한다. childeren list size : 1
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : title current  node : genre
value : novel
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : author
value : Neal Stephenson
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : publisher
value : Spectra
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : isbn
value : 0553380958
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : price
value : 14.95
속성이 존재한다.
node : book
attribute : year   attribute value : 2005
자식노드(모든서브)가 존재한다. childeren list size : 6
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : title
value : Burning Tower
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : author
value : Larry Niven
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : author
value : Jerry Pournelle
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : publisher
value : Pocket
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : isbn
value : 0743416910
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : price
value : 5.99
속성이 존재한다.
node : book
attribute : year   attribute value : 1995
자식노드(모든서브)가 존재한다. childeren list size : 5
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : title
value : Zodiac
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : author
value : Neal Stephenson
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : publisher
value : Spectra
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : isbn
value : 0553573862
자식은 더이상 없고 노드에 값이 있음  childeren list size : 0
parent node : book current  node : price
value : 7.50



from http://blog.naver.com/rogerrb?Redirect=Log&logNo=100025402433
주석 추가 : ez

▒ 작성자 : 전윤경(ygchon@penta.co.kr )

▒ 작성일 : 2001년 08월 13일

1. JDOM이란 무엇인가?

JDOM은 XML을 다루기(reading,writing,manipulating) 위해 자바 코드를 사용하여 만든 새로운 API이다. JDOM은 XML문서를 다루는 데 있어서 Java-oriented API를 사용하기 때문에 ,특별히 자바 프로그래머들을 위해 최적화되었다고 할 수 있다.

JDOM은 자바 개발자들에게 보다 직관적인 방법으로 XML을 핸들링하도록 하는 오픈 소스 API이다. JDOM은 그 이름처럼 자바를 기반으로 하여 만들어 졌으며, 자바의 속성을 그대로 가지고 있다. 또한 자바 라이브러리를 사용한다. 그렇기 때문에 자바를 잘 사용하고 XML을 핸들링 하고자 하는 사람들은 자바의 개념을 그대로 유지해가면서 XML개발을 좀더 쉽게, 그리고 그들에게 익숙한 방법으로 할 수 있는 것이다.

JDOM은 웹 컨소시움에서 표준으로 정의한 SAX와 DOM과도 상호연동 되지만, 이들보다는 더 간단하다. JDOM은 SAX와 DOM의 장점만을 골라 새로운 클래스와 인터페이스를 만들어서 JDOM 사용자들에게 제공할 것이다. JDOM은 DOM과 SAX로 만들어진 컴포넌트와 통신이 가능하다. 이것은 이미 DOM과 SAX로 만들어진 프로그램과의 호환을 가능하게 한다.

JDOM은 Apache프로젝트(예를 들어,Apache 서버에서 적용되었던)에서 사용하는 라이센스 모델을 따른다. 즉 JDOM은 소스가 공개되어 있으며, 최소한의 제약사항만을 가지고 JDOM을 사용할 수 있다.

그렇다면 JDOM이 추구하고자 하는 것은 무엇일까? 간단하게 두 가지로 요약될 수 있다.

첫번째는 보다 직접적으로 자바 프로그래머들에게 JDOM API를 사용하게 하는 것이다. 기존의 XML API들은 언어 독립적으로 설계되었다. 그렇기 때문에 특정 언어를 사용하는 개발자(예를 들어 자바나 C개발자들,..)들이 XML프로그래밍을 하는데 있어서 혼란이 있었다. 예를 들어

this is element

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

와 같은 엘리먼트가 있을 경우, XML API에서는, 컨텐츠를 컨텐츠가 포함된 엘리먼트의 child로 보기 때문에 다름과 같이 그 컨텐츠에 접근한다,.

String  text = element.getFirstChild().getNodeValue();

 

그러나, JDOM은 보다 직접적으로 프로그래머가 원하는 방식으로 그 컨텐츠를 얻을 수 있다

String text = element.getText();

 

JDOM은 프로그래머의 작업을 수월하게 한다.

두번째는, JDOM은 빠르고 가볍다. 문서를 로딩하고 조작하는데 있어, JDOM은 그것을 빠르게, 그리고 메모리 사용도 최소화 하여 처리할 수 있다. 즉DOM보다 빠르고 SAX같은 속도를 가지는, SAX보다 더 많은 API를 보유하고 있도록 구현되었다.

JDOM이 표준 API의 문제들을 해결하였다??

이미 XML 표준 API가 있는데 왜 JDOM을 써야 할까? 표준이라고 해서 완벽한 것은 아니다. DOM은 XML문서를 완전히 메모리에 로드한 후 사용하며, XML을 다루는데 있어 필요한 모든 API를 포함하고 있다. 이러한 과도한 메모리 사용과 복잡한 프로세싱은, 웹 어플리케이션과 프로그램에 부담을 주게 된다. SAX는 XML문서를 메모리에 로드하여 사용하지 않는다. 그 대신에 순차적으로 이벤트를 발생시켜 XML문서를 프로세싱한다. 즉 시작 태그와 끝 태그를 만나는 모든 시점에 이벤트를 발생시킨다. 이러한 간단한 API를 가진 SAX는 그것의 빠른 수행속도로 인해 READ-ONLY프로그램에 적당하다. 그러나 이러한 SAX의 이벤트 모델은 Object Oriented 자바 개발자들에게 직관적이지 않으며, 문서를 조작하고, random access를 할 수 없는 단점을 가지고 있다. 그래서 JDOM은 DOM과 SAX의 장점만을 수용하여 구현하였다. 그래서 JDOM의 특성은 DOM이나 SAX어느 하나에 가깝다고 말하기 어렵다. JDOM은 도큐먼트 전체를 놓고 보면 random access가 가능하다, 그러나 놀랄만하게도,…그것을 메모리 전체에 로드하지 않는다. 즉 필요한 부분만 메모리에 로드한다.

JDOM은 2001년 4월에 Jason Hunter 와Brett McLaughlin라는 사람이 JDOM의 배타판을 발표했다. 현재 배타7까지 나와 있으며 조만간 JDOM1.0이 발표될 것이다. http://jdom.org에서 JDOM을 다운 받아 사용할 수 있다.

자바와 함께 XML을 사용하는 것은 정말 간단하다. 사용자는 JDK, 몇 개의 클래스 라이브러리, 텍스트 에디터만 있으면 된다. Document Object Model (DOM)은 XML데이터를 조작하는 데 있어서는 굉장히 인기 있는 표준 API이다. 그러나 JDOM이 좀더 안정적으로 되면 자바 개발자들에게는 JDOM이 훨씬 편리한 API가 될 것이다.

2. W3C DOM과 다른점은?

-DOM은 프로그래밍 언어에 독립적으로 설계되었다. 그래서 자바면 자바, C처럼 특정한 언어를 사용하는 사용자에게는 매우 불편할 수도 있다.

-DOM은 자바 클래스 라이브러리를 매우 제한적으로 사용하며, 또한 많은 부분들이 자바 클래스 라이브러리와 중복된다. 한 예로, Java.util.Iterator를 사용하는 거 대신 NodeIterator를 새로 만들어서 사용한다.

-DOM의 일부 영역은 매우 엉성하게 디자인 되었다. Overloading 메서드는 모든 프로그래밍 언어가 그것을 지원하지 않기 때문에(예를 들면, 자바스크립트), 잘 사용되지 않고 있다. 단 한 종류의 exception만이 있다.

-equals(), hashCode(), clone(), toString()같은 자바 유틸리티 메소드들이 전혀 정의되지 않았다

3. JDOM API

-Org.jdom.Document에서 XML Document를 생성할 수 있다. 다음과 같이 Document 클래스를 생성할 수 있다.

Document doc = new Document(new Element("RootElement"));

 

-builder를 사용하여 file, stream, url으로부터 도큐먼트 트리를 생성할 수 있다.

SAXBuilder builder = new SAXBuilder();

Document doc = builder.build(url);

 

builder는 org.jdom.input 패키지에서 포함되어 있으며, 아래의 두 가지 builder클래스가 있다.

public SAXBuilder(String parserClass, boolean validation);

public DOMBuilder(String adapterClass, boolean validation);

 

SAXBuilder는 파일로부터 읽어 들여 JDOM Document tree를 생성하고, SAX Parser를 사용한다. SAXBuilder는 SAX 이벤트를 발생시키면서 대응하는 도큐먼트를 메모리에 로드한다(그래서 빠르다). DOMBuilder는 org.w3c.dom.Document로부터 JDOM Document를 생성하기 위해 사용한다. 이 클래스는 이미 만들어진 dom로부터 JDOM tree를 생성할 때만 사용함을 주의해야 한다.

위의 두 파서는 디폴트로 XERCES parser를 사용하며, validation 은 “false”이다. DOMBuilder는 constructor에서 adapterClass를 필요로 한다. 이는 모든 DOM 파서들이 같은 API를 따르고 있지 않기 때문이다. 그래서 JDOM은 다양한 파서들에 대해 같은 API를 사용하기 위해 adapter클래스를 사용하며, Xerces, Crimson, IBM's XML4J, Sun's Project X 등의 파서들에 대해 적용될 수 있다.

-XML의 출력

XMLOutputter, SAXOutputter, DOMOutputter가 있는데, 주로 org.jdom.output.XMLOutputter를 사용하는데, 이것은 XML을 원하는 OutputStream으로 보낸다.

4. Sample 설명

BuilderTest.java : 간단한 builder 사용법, saxbuilder를 사용하여, xml 파일을 읽어 들여 루트 태그 이름을 바꾼 후, 그것을 파일에 출력한다. dombuilder를 사용하여 그 읽어들인 xml파일을 화면에 출력한다.

DOMBuilderDemo : dom treee를 사용하여 jdom을 생성

SAXBuilderDemo : sax2.0 parser를 사용하여 jdom build

5. 참고 사이트

http://www.jdom.org

http://www.webreference.com

JDOM API DOCS

JDOM.jar 과 JSON.jar (라이브러리) 다운로드 방법 ☆

jdom라이브러리로(jdom.jar) XML파일 읽기에 사용하려면
1. http://jdom.org/dist/binary/  이곳에서 jdom-1.1.1.zip 다운로드
2. 압축을 푼 후 build 폴더안의 jdom.jar 파일을 lib(라이브러리)폴더에 추가


 json 배열로 데이터를 가공하려면

2. json api다운로드
http://www.json.org 페이지의 하단 부분의 json-simple 이란 부분을 클릭

http://code.google.com/p/json-simple/

갤럭시S? 아이폰4? 대박일세!



갤럭시S 아이폰4와 함께 대결이 시작 되었습니다.

아이폰4에 대응하여 나온 갤럭시S!

삼성전자가 8일 서초사옥 다목적홀에서 열린

"갤럭시S 국내 출시 미디어데이" 행사를 통해 공개한

"갤럭시S"는 삼성의 반도체, 디스플레이 등 최고 기술력이 응집된 명품이라고 합니다.


 


최고사양의 CPU와 삼성폰의 자랑인 아몰레드를 능가하는 슈퍼 아몰레드를 통한

선명하고 깨끗한 HD화질은 세계 최고 수준이라고 합니다.

안드로이드 폰의 장점과 최고의 터치감, DMB 지원, 가볍고 긴 배터리 수명 등

아이폰4를 능가하는 폰이라고 술렁이고 있습니다.





현재까지는 아이폰이  앞서는 것으로 보이지만..

앞으로는? 과연 최후의 승자는 누가 될 수 있을까요??



아직 결과를 예측하기에는 이르지만

요즘 세계 곳곳에서 애플의 독단적인 운영에 반발하고

소송이 난무하고 있으며 앱 스토어에 개발자가 올려 놓은

어플이 본인들의 마음에 들지 않는 이유로 마음대로 삭제하는 등 마찰이 빚어지고 있지요.



그래서 지금의 어플 수는 아이폰 4G가 앞설지 모르지만

갤럭시S 안드로이드폰은 개방적인 정책으로 인해

개발자들이 속속 모여들고 있습니다.

이는 앞으로의 전망에 있어서 중요한 변수가 되고 있지요.

아이폰4와 갤럭시S의 차이가 어플이라고 할 수도 있지만

벌써 안드로이드폰의 어플 수준은 상당한 수준으로 올라와 있으며,

다른 스펙 모두 앞서고 있는 갤럭시S의 승리가 점쳐 지고 있습니다.


그리고 삼성 SKT 구글이라는 각 분야의 선도업체들이 모여 한팀을 이룬만큼

시너지 효과는 더욱 클것으로 예상됩니다.


 


특히 오늘 갤럭시S의 발표 장소에는 안드로이드의 아버지라고 불리는

앤드 루빈 구글 모바일 플랫폼 부사장도 나서 갤럭시S에 힘을 불어 넣었는데요.

갤럭시S가 삼성의 기술력과 구글 운영체제의 개방성을 만난만큼 좋은 결과를 기대한다고 했습니다.



아이폰 4의 제품 발표에서는 스티브 잡스의 PT로 진행되었는데요.

유출된 아이폰 4의 디자인이 그대로 나오면서 사람들에게 약간의 실망감을 안겨 주기도 했습니다.

투박한 디자인은 그래도 이며 스티브 잡스의 마지막 히든카드 마저도

예상 할 수 있는 수준인 영상 통화인것으로 밝혀지면서

그다지 놀라움을 전해 주지는 못 했습니다.


 

주위에 아이폰 쓰고 있는 사람들에게 물으니 배터리 탈부착으로 바뀔 줄 알았는데

그래도라서 좀 실망스러운 부분도 있다고 하다군요.

고집스러운 애플은 아직 바뀔 준비는 안 되어 있는 듯 합니다.


갤럭시S와 아이폰 4 이제 발표는 되었고 주사위는 던져 졌는데요

어느 폰이 이길지는 아직 알 수 없습니다.

올해는 더더욱 스마트폰 시장의 성장이 예상되는데요.

일단 어느쪽이 승리할지..조심스럽게 점쳐본다면 갤럭시S 쪽이 좀 더 우세할 듯 합니다.


국내 경쟁업계도 ‘갤럭시 A’의 출시를 환영하는 분위기 입니다.

'스마트폰=아이폰’이라는 공식이 성립되면서

국내 제조사들의 스마트폰이 기술적으로 뒤져있다는 평가를 받아온 것이 사실입니다.

이번 삼성전자의 ‘갤럭시 S’폰으로 국내 기술의 저력을 확인한다면

국내 제조 스마트폰에 대한 신뢰도가 동반상승되리라는 기대감 때문입니다.

갤럭시S가 국내 제조 스마트폰에 대한 자존심을 살려 주리라 믿습니다.

'휴대기기' 카테고리의 다른 글

안드로이드 마켓 이용하기  (0) 2010.07.05
"아이폰4 전액환불" 무릎 꿇은 애플  (0) 2010.07.05
godfinger 아이폰 ,아이패드  (0) 2010.06.25
아이폰 4.0  (0) 2010.06.22
아이폰 4.0  (0) 2010.06.22

+ Recent posts