달력

82019  이전 다음

  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'XML'에 해당되는 글 3건

  1. 2013.07.29 ajax 원리
  2. 2008.12.04 스프링에서 xml을 없앨 수만 있다면 (2)
  3. 2007.12.26 auction openAPI 자바 테스트 (4)

ajax 원리

JavaScript/Ajax 2013.07.29 13:25

안녕하세요.

메일 많이 기다리셨죠.

저도 이렇게 메일 쓰게 만들었던 느린 인터넷이 당황스러웠습니다.


한꺼번에 보내드릴 수도 있는데, 

5번 연재로 메일 보내드릴 생각입니다.


첫번째는 ajax원리입니다.


http://www.okjsp.net/seq/69451


function getXMLHttpRequest() {


  var xmlreq = false;


  if (window.XMLHttpRequest) {

    // Create XMLHttpRequest object in non-Microsoft browsers

    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

    // Create XMLHttpRequest via MS ActiveX

    try {

      // Try to create XMLHttpRequest in later versions

      // of Internet Explorer

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e1) {

      // Failed to create required ActiveXObject

      try {

        // Try version supported by older versions

        // of Internet Explorer

        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

        // Unable to create an XMLHttpRequest with ActiveX

      }

    }

  }


  return xmlreq;

}

function processAjax(url, params, callback) {

var req = getXMLHttpRequest();

req.onreadystatechange = function() {

if (req.readyState == 4) {

if(req.status == 200) {

eval(callback+"(req)");

}

}

}

url = url + params + "&t=" + new Date().getTime();

req.open("GET", url, true);

req.send("");


}

Ajax는 Microsoft에서 시작되었습니다.

iframe보다 진화된 형태로 ActiveXObject 객체로 시작했는데, 이것을 모질라 쪽에서 보고,

XMLHttpRequest 객체로 카피해서 사용한 것이죠.

아시다시피 MS쪽의 버전 하위 호환성은 보장하지 않기 때문에 프로그램으로 처리해야 할 경우의 수가 많습니다.

위 코드만 이해하시면 ajax의 기본 원리는 감(感) 잡으신 것입니다.

다음은 jQuery.ajax 보내드리겠습니다.

다음 주까지입니다.


감사합니다.

ps. 급하신 분은 https://github.com/kenu/gallery/tree/master/WebContent 를 참고하세요.

zip 버튼 클릭하시면 다운로드 가능합니다.

Posted by 케누 kenu허광남
스프링프레임워크 작업에서 xml은 java5의 annotation 등장 이후 많이 없어졌습니다. 하지만 완전히 없어지지는 않았지요.

http://springide.org 사이트의 툴을 통하면 xml 편집기에서도 자바 클래스의 코드 완성기능이 지원됩니다.

하지만 JavaConfig 를 통해서 그 꿈을 이뤄가고 있습니다.
<bean />  == @Bean 
위와 같은 개념으로 자바클래스를 통해서 xml의 기능을 처리하게 됩니다.

1.0.0마일스톤4 버전인데, Spring 3.0에 맞춰서 진행할 것 같기도 합니다.
DSL(Domain Specific Language)개념이라고 합니다만 아직 저는 이해가 ^^;

점점 어려워지는 듯 합니다. ^^;

Posted by 케누 kenu허광남

WoC에 제출한 프로젝트 준비중입니다. 상품 OpenAPI로 매시업 위젯만들기 프로젝트를 제안했습니다. 국내 최대의 경매 사이트인 옥션의 API를 이용해보려고 시도했는데, 웹서비스의 SOAP를 구성해서 보내야 되기 때문에 URL을 통해서 데이터를 전송하고 받아오는 REST방식보다 아주 많이 복잡합니다.

다행히 http://api.auction.co.kr/developer/APIGuide/APIGuide.aspx?categoryID=D02 페이지에 자바 샘플도 있기 때문에 이것을 이용해서 접근 테스트를 해보았습니다. 상품코드를 이용해 상품명을 가져오는 간단한 테스트입니다.

결과는 다음과 같이 보여집니다.

사용자 삽입 이미지

위와 같은 결과를 가져오기 위해서는 옥션 개발자 프로그램에 회원가입되어 있어야 합니다. 개발자 회원은 옥션의 회원아이디와는 별개입니다.

개발자 등록을 마치면 오픈API를 이용하는 애플리케이션을 등록해야 합니다. 이때 어플리케이션에서만 사용되는 인증 정보가 따로 정해집니다. 개발자 프로그램 페이지 우측 상단의 회원정보수정 링크를 통해서 이동합니다.

사용자 삽입 이미지
페이지 하단에 등록된 애플리케이션 링크가 있습니다. 클릭해서 들어가면 다음과 같은 정보들이 보입니다.
사용자 삽입 이미지

여기서 프로그램 작동에 관해 중요한 요소는 4가지입니다. 상단 빨간박스 안에 있는 회원ID, 애플리케이션 ID, 비밀번호 세 가지와 하단에 실서버, 테스트서버 IP를 추가할 수 있는데, 이렇게 등록된 IP입니다. 옥션의 api서버에 도달하는 ip는 다음 주소에서 확인할 수 있습니다.
http://www.okjsp.pe.kr/mashup/ip.jsp
이들 정보 중에서 하나라도 맞지 않으면 원하는 결과를 얻을 수 없습니다.

http://upload.auction.co.kr/APICommunity/DownloadAPICommunityFile.aspx?kind=docs&name=0711190946i37_java_auction_codesamples_new.zip 클릭하면 java 샘플을 다운로드 받을 수 있습니다.

이클립스에 java project를 만들고 import합니다. 가능하면 src 아래는 패키지에 따른 디렉토리 형태로 자바소스가 위치해야 합니다. jsp는 여기서는 다루지 않겠습니다.
사용자 삽입 이미지


소스의 구성은 위 그림과 같이 됩니다. 여기서 수정되는 파일은 service1 패키지의 RequestApplicationTicket.java 파일입니다.
45번 라인을 자신이 등록한 정보에 맞게 수정합니다.
사용자 삽입 이미지

그리고 service1.RequestApplicationTicket.java 파일을 실행합니다. 콘솔창에 보면 Ticket이 찍혀나오게 됩니다. 이 티켓을 복사합니다. 굉장히 깁니다.
service1.ViewItem.java 파일을 열어서 47번 라인으로 이동하면 "<Value></Value>" 사이에 복사한 키를 붙여넣습니다.
사용자 삽입 이미지

그리고 service1.ViewItem.java를 Run As > Java Application 메뉴로 실행하면 콘솔에 해당 상품코드와 상품명이 찍혀 나오는 것을 확인 할 수 있습니다.

테스트 서버에서 이루어진 개발이기 때문에 실 서버의 데이터를 이용하려면 서버의 주소를 바꿔줘야 합니다. 소스 내에 주석처리되어있습니다.

이것을 위젯에서 사용하려면 갈 길이 먼 듯 합니다. ^^
Posted by 케누 kenu허광남