자세한 내용은 아래 링크를 클릭하세요. :)
http://www.ibm.com/developerworks/kr/library/wa-aj-ajaxcomm/index.html


요약: 비동기 JavaScript 및 XML(Ajax) 기반 웹 애플리케이션의 핵심이 되는 부분은 클라이언트와 서버 사이의 통신 계층입니다. 이 계층을 구현하려면 브라우저에서 제공하는 다양한 통신 메커니즘뿐 아니라, 각 메커니즘의 장단점에 대해서도 잘 이해할 필요가 있습니다. 이 기사에서는 어떤 애플리케이션의 구체적인 통신 요구 사항과 그에 알맞은 메커니즘을 올바로 매치하는 방법을 학습할 수 있습니다. 세부적인 사항을 보여주는 예제들을 통해 이런 각기 다른 클라이언트-서버 통신 요구를 충족시킬 수 있는 통신 계층을 만드는 방법을 이해할 수 있습니다.


Ajax 방식으로 작업하는 방법

Ajax 기반 웹 애플리케이션은 보통 서버에서 작동하는 애플리케이션에 대한 클라이언트 역할을 하므로, 그 서버로 데이터를 앞뒤로 보내며 통신 기능을 집중적으로 사용하는 애플리케이션이 되는 결과를 낳는다. 데이터 전송 기능을 제공할 메커니즘이 필요하다. 애플리케이션의 주요 컴포넌트로서, 이런 메커니즘은 최대한 가볍고 안전해야 한다. 다행히도, 모든 현대적 브라우저에는 정확히 이런 목적으로 사용할 수 있는 오브젝트, 즉 XHR(XMLHttpRequest)이 갖춰져 있다. 실제로 가벼운 XHR은 페이지를 검색한 서버로 한정되는 요청을 생성한다. XHR은 사이트 간 스크립팅 문제를 제거하며, 텍스트만 전달할 수 있다.


할 수 있는 일과 할 수 없는 일

애플리케이션은 XHR 오브젝트를 사용하여 서버로 정보를 보내고 서버에서 데이터를 페치할 수 있다. 이 메커니즘은 앞서 설명한 메커니즘에 비해 여러 가지 장점이 있다.

어떤 유형의 HTTP 메소드라도 사용 가능
현재 도입된 대부분의 일반적인 서버 아키텍처는 REST 원리를 기반으로 하기 때문에, GET, PUT, POST 및 DELETE 요청을 사용해야 한다. 클라이언트와 서버 간 통신의 핵심이라 할 수 있는 XHR 오브젝트의 사용으로 RESTful 서버 아키텍처를 사용할 수 있다.
완료 시 알림
XHR 오브젝트는 생성에서부터 응답이 완전히 로드되기까지 여러 가지 상태에서 존재할 수 있다. 각각의 상태 변화 시, 이벤트가 실행되고 앞으로의 상태 변화 시 호출할 콜백을 정의할 수 있다. 이 이벤트 핸들러를 통해 서버에서 페치된 데이터에 의존하는 코드가 해당 데이터를 사용할 수 있을 때 실행되도록 할 수 있다.
페이지 히스토리에 개입 없음
XHR 호출은 페이지의 히스토리 오브젝트에 반영되지 않으므로, 브라우저의 뒤로 및 앞으로 동작의 일반적인 용도에서 벗어나지 않는다.

 

Posted by 클로버,,

자세한 내용은 아래 링크를 클릭하세요. :)
http://www.ibm.com/developerworks/kr/library/x-dataAndroid/index.html

[요약 내용]
 Android 애플리케이션은 인터넷에 있는 데이터에 액세스해야 하는 경우가 자주 있으며 인터넷 데이터는 여러가지 다른 형식으로 구조화될 수 있다. 먼저 CSV 데이터를 XML, JSON 및 프로토콜 버퍼 형식으로 변환하는 웹 서비스를 개발한다. 그런 다음 이러한 형식으로 웹 서비스에서 데이터를 끌어낼 수 있는 샘플 Android 애플리케이션을 빌드한 후 사용자에게 표시하기 위해 구문 분석한다.

 이 기사에서는 아래 그림과 같은 Day Trader라는 Android 애플리케이션을 개발하는 방법을 알려준다. Day Trader를 사용하면 사용자가 하나 이상의 종목 기호를 입력하여 이러한 기호가 표시하는 종목의 최신 가격 정보를 검색할 수 있다. 사용자는 데이터에 사용할 형식(XML, JSON 또는 프로토콜 버퍼)을 지정할 수 있다.


주식 데이터 제공하기
 애플리케이션을 위한 서버는 두 가지 사항을 수행할 수 있어야 한다. 먼저 종목 기호 목록을 가져와서 각각에 대한 데이터를 검색해야 한다. 다음으로 형식 매개변수를 승인하고 해당 형식을 기반으로 데이터를 인코딩해야 한다. XML 및 JSON 형식의 경우 서버는 텍스트로 직렬화된 주식 데이터를 리턴한다. 프로토콜 버퍼의 경우에는 바이너리 데이터를 전송해야 한다.

데이터 형식에 대해 작업하기
 기본 Activity는 서버가 전송할 수 있는 다양한 형식으로 데이터에 대해 작업해야 한다. 또한 적절한 형식으로 데이터를 요청해야 하며 데이터가 구문 분석되면 데이터로 ListView를 채워야 한다. 따라서 데이터 형식과 관계없이 기능의 많은 부분이 공통된다.


SAX를 사용하여 XML 구문 분석하기
 Android SDK는 표준 DOM 및 SAX를 포함하여 XML에 대해 작업하는 여러가지 방법을 제공한다. 메모리 사용량이 더 많은 상황의 경우에는 SDK의 풀(pull) 구문 분석기를 사용할 수 있다. 대부분의 시간 동안 SAX는 가장 빠른 방법이었기 때문에 Android에는 SAX를 더 편리하게 사용할 수 있게 하는 편의 API가 일부 포함되어 있다.

JSON 사용하기
 XML은 Android의 중요한 구성원이며 XML에 의존하는 웹 서비스가 얼마나 많은지를 생각하면 이것은 바람직한 것이다. 또한 많은 서비스에서는 자주 사용되는 또다른 형식인 JSON도 지원한다. JSON은 XML보다 좀더 간결하지만 사람이 읽을 수 있기 때문에 작업을 편리하게 하고 JSON을 사용하는 애플리케이션의 디버깅을 쉽게 만든다. Android에는 JSON 구문 분석기가 포함되어 있다.

프로토콜 버퍼를 사용하여 바이너리화하기
 프로토콜 버퍼는 네트워크를 통해 데이터를 전송하기 위해 XML보다 빠르도록 설계된 Google에서 개발한 언어가 특정되지 않은 데이터 직렬화 형식이다. 프로토콜 버퍼는 서버 간 호출에 대한 Google의 사실상의 표준이다. Google은 이 형식과 C++, Java 및 Python 프로그래밍 언어를 위한 해당 바인딩 도구를 오픈 소스로 사용할 수 있도록 했다.

Posted by 클로버,,
자세한 내용은 아래 링크를 클릭하세요. :)
http://www.ibm.com/developerworks/kr/library/j-5things6.html

[요약 내용]
 대부분의 Java 개발자에게 JAR 파일은 단순히 장기적인 Ant 또는 Maven 프로세스의 최종 결과에 불과하다. 일반적으로 JAR을 서버의 올바른 위치에 복사한 다음 잊어버린다. 하지만 JAR 파일은 소스 코드를 저장하는 것 이상의 작업을 수행할 수 있다.

1. JAR은 실행 파일이다.

 애플리케이션 실행 시, Java 프로그래밍에서는 java가 JVM을 프로세스로 부트스트랩하고, 사용자가 실행할 main() 메소드가 있는 클래스를 나타내는 명령행 인수(com.tedneward.Hello)를 전달해야 한다. 이러한 추가 단계로 인해 Java에서는 사용자 친화적인 애플리케이션을 작성하기가 더 어렵다. 즉, 일반 사용자가 이러한 모든 요소를 명령행에 입력해야 한다.
 이 문제를 해결하는 방법은 JAR 파일을 "실행 파일"로 만드는 것이다. 즉, Java 실행 프로그램이 JAR 파일을 실행할 때 시작할 클래스를 자동으로 인식할 수 있도록 만들면 된다. 이를 위해서는 다음과 같이 JAR 파일의 매니페스트(JAR의 META-INF 서브디렉토리에 있는 MANIFEST.MF)에 항목을 추가하면 된다.


2. JAR은 종속성 정보를 포함할 수 있다.

 
 실행 프로그램에 대한 -jar 옵션은 -classpath 명령행 옵션의 내용을 겹쳐쓰기 때문에 이 코드를 실행할 때 Spring이 CLASSPATH 환경 변수에 있어야 한다. 다행스럽게도 JAR에서는 매니페스트에 표시할 다른 JAR 종속성을 선언할 수 있다. 이렇게 하면 사용자가 선언하지 않아도 CLASSPATH가 암묵적으로 작성된다. Class-Path 속성에는 애플리케이션에서 사용하는 JAR 파일에 대한 상대 참조가 있다. 이 참조는 절대 참조로 작성하거나 접두부 없이 작성할 수 있으며, 이 경우 JAR 파일은 애플리케이션 JAR과 같은 디렉토리에 있는 것으로 간주된다.


3. JAR은 암묵적으로 참조될 수 있다.

 
 Java 런타임에서 JAR에 대한 공통 위치로 사용하는 "확장 디렉토리"는 기본적으로 설치된 JRE 경로 아래의 lib/ext 서브디렉토리에 있다. JRE는 사용자 정의할 수 있는 위치이지만 지정된 Java 환경 내에서 사용자 정의되는 경우가 거의 없기 때문에 lib/ext가 JAR을 저장하기에 안전한 위치이고 Java 환경의 CLASSPATH에서 JAR을 암묵적으로 사용할 수 있다고 생각해도 무방하다.


4. JAVA 6에서는 클래스 경로 와일드카드를 사용할 수 있다.

 

 CLASSPATH 환경 변수와 명령행 -classpath 매개변수가 많아지는 것을 피하기 위해 Java 6에서는 클래스 경로 와일드카드라는 개념이 도입되었다. 클래스 경로 와일드카드를 사용하면 인수에 명시적으로 나열된 모든 JAR 파일을 하나하나 실행할 필요 없이 lib/*와 해당 디렉토리에 나열된 모든 JAR 파일(재귀적이지 않음)을 클래스 경로에 지정할 수 있다.


5. JAR에는 코드 이상의 것이 담겨 있다.

 일부 구성 파일은 시스템 관리자가 편집할 수 있지만 하이버네이트 맵핑과 같은 상당 수의 구성 파일은 시스템 관리자 도메인의 외부에 있기 때문에 배치 작업 중에 발생하는 문제의 원인이 되고 있다. 합리적인 해결 방법은 구성 파일과 코드를 함께 패키지하는 것이다. 이는 JAR이 기본적으로 외형 상 ZIP 형식으로 되어 있기 때문에 가능한 방법이다. JAR을 빌드할 때 구성 파일을 Ant 태스크나 jar 명령행에 포함시키면 된다.
Posted by 클로버,,
1. 바탕화면의 로보코드 아이콘을 클릭하면 아래 그림과 같은 화면이 실행될 것입니다.



2. 메뉴바의 Robot -> Editor를 클릭하면 아래 그림과 같이 로봇 편집창이 뜹니다.
   

3. File -> New -> Robot을 클릭한 후 로봇의 이름을 설정합니다.


4. 위의 과정을 모두 마치면, 로봇의 기능을 자바로 구현할 수 있는 편집창이 뜹니다.



5. 일단 디폴트로 저장하고, 다른 로봇과 전투를 시켜보겠습니다.
   편집창 메뉴바에서 Compiler -> Compile  클릭
   메뉴바의 Battle -> New 클릭 후, 내가 만든 로봇과 다른 로봇을 추가시켜 줍니다.
   아래의 Start Battle 버튼을 누릅니다.
  


6. 전투를 시작합니다.


7. 라운드를 모두 마치면 랭킹과 점수표가 나타납니다.


로보코드에 대한 자세한 것은 저도 잘 모르기 때문에 차차 알아보도록 하겠습니당.ㅋ



도움이 되셨다면^^ ↓↓
Posted by 클로버,,