'WEB'에 해당되는 글 56건

  1. 2008.03.03 xp 1
  2. 2008.01.17 웹로직 에러 <BEA-101215>
  3. 2007.12.21 DAX 에러
  4. 2007.08.20 WebLogic 세션 클러스터링
  5. 2007.08.14 Ajax를 소개합니다.
  6. 2007.07.04 HTML에서 padding
  7. 2007.05.28 AJAX 관련
  8. 2007.04.27 Ruby and AJAX

xp

WEB
posted by 구름너머 2008. 3. 3. 13:43
XP(EXtreme Programming)의 12가지 핵심 훈련
[방법론] XP(EXtreme Programming)의 12가지 핵심 훈련

http://xprogramming.com/

XP는 객체지향의 대가인 켄트 벡(Kent Beck)이 창시하였으며, 혁신적인 새로운 소프트웨어 개발 방법론이다. XProgramming.com의 편집주인 론 제프리(Ron Jeffries)는 XP를 위한 12가지 핵심 훈련을 다음과 같이 서술하였다.

1. 계획 절차(The Planning Process) : 고객이 요구하는 비즈니스 가치를 정의하고, 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려준다.

2. 소규모 릴리즈(Small Release) : 작은 시스템을 먼저 만들고, 짧은 단위로 업데이트한다.

3. 상징(Metaphor) : 공통적인 이름의 체계를 갖고 공통적인 시스템 서술서를 갖게 되면, 개발과 의사소통을 돕는다.

4. 단순 설계(Simple Design) : 현재의 요구사항에 들어맞는 가장 단순한 시스템을 설계한다. "미래를 위해서"라는 것은 필요 없다. 리팩토링을 통해서도 좋은 설계를 할 수 있다.

5. 테스팅(Testing) : XP는 항상 소프트웨어의 적합성에 초점을 두고 있다. 개발자는 테스트를 먼저한 후에 소프트웨어를 작성한다. 그렇게 되면 이미 테스트에서 요구사항을 충족하게 된다.

6. 리팩토링(Refactoring) : 개발하는 동안내내 시스템의 설계를 향상시킨다.

7. 짝 프로그래밍(Pair Programming) : 개발자 둘이서 짝으로 코딩한다. 짝 프로그래밍은 혼자 코딩하는 것보다 비슷하거나 혹은 더 적은 비용을 들인다고 한다.

8. 공동 소유(Collective Ownership) : 모든 코드는 모든 개발자에게 속해있다. 이는 팀을 최상의 속도로 움직이게 하며, 변경이 필요할 때에도 지연을 줄인다.

9. 지속적인 통합(Continous Integration) : 매일 여러 번씩 소프트웨어를 통합하고 빌드한다.

10. 주당 40시간 업무(40 hour Week) : 피곤한 개발자가 실수를 더 많이 한다.

11. 현장고객 지원(On site Customer) : 의사소통을 향상시키고 문서의 양을 줄일 수 있다.

12. 코딩 표준(Coding Standard) : 효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩 표준을 정의한다.


발췌 : 이클립스 기반 프로젝트 필수 유틸리티 CVS, Ant, JUnit, 민진우, 이인선, 한빛미디어, 2004



1. 조금씩, 하지만 자주 발표한다.

2. 사이클을 반복해서 돌리면서 개발한다.

3. 스펙에 없는 것은 절대 집어넣지 않는다. (아무리 그 기능이 나중에 쓰일 것 같은 느낌이 들어도 그러지 않는 것이 좋다.)

4. 테스트 코드를 먼저 만든다.

5. 야근은 하지 마라. 항상 정규 일과 시간에만 작업한다.

6. 기회가 생기는 족족 언제 어디서든 코드를 개선한다.

7. 모든 테스트를 통과하기 전에는 어떤 것도 발표하지 않는다.

8. 조금씩 발표하는 것을 기반으로 하여 현실적인 작업 계획을 만든다.

9. 모든 일을 단순하게 처리한다.

10. 두 명씩 팀을 편성하고 모든 사람이 대부분의 코드를 알 수 있도록 돌아가면서 작업한다.

발췌 : Head First Java, 케이시 시에라, 버트 베이츠, 한빛미디어, 2004
내용 발취 : http://www.eve.or.kr/study/s_content.asp?idx=353&page=1

'WEB' 카테고리의 다른 글

오픈소스 chart  (0) 2009.12.16
바이러스? 웜? 악성코드?  (0) 2008.03.03
웹로직 에러 <BEA-101215>  (0) 2008.01.17
DAX 에러  (0) 2007.12.21
WebLogic 세션 클러스터링  (0) 2007.08.20
WEB
posted by 구름너머 2008. 1. 17. 09:45

웹로직 에러:

웹로직 버전: wl810 sp6

조치사항 : 웹로직 엔지니어가 서비스팩 패치(CR283305_810sp6.jar )

에러내용 및 현상: 아래 로그형태로 BEA-101215 에러 무수히 발생함!

원인 : 클라이언트의 bad request 가 일단 원인인데 PROTOCOL 부분이 깨진경우
내부적으로 웹로직은 플러그인 쪽으로 retry 하게 되어 있다고 합니다.
일부러 HTTP 요청을

GET /xxxx.jsp HTTP/1.0<바로여기스페이스>
<엔터 두번>

처럼 요청을 하면 이 현상 발생함

플러그인이 sp6 이면 뒷단 웹로직 sp2-6 까지 상관없이 모두 발생함
플러그인이 sp6 미만이면 뒷단 웹로직 버전 상관없이 대여섯번 나다가 말아 버림
유첨하는 패치는 플러그인에 대한 패치가 아니라, 플러그인 sp6 에 뒷단 웹로직 sp6을
쓰는 경우에 적용할 수 있는 jar 패치임(확인해 봤음)

===
DIAGNOSIS:
If there is any request parsing error, WLS throws exception back to client
and closes the socket. To successfully send the error response WLS atleast
require the PROTOCOL. In UPS case due to extra space after PROTOCOL request
parsing failed. As protocol was not set, error response could not be send to
client (here plug-in was the client) and socket was closed.

에러로그:

<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>
<2008. 1. 16. 오후 7시 08분 23초 KST> <Error> <HTTP> <BEA-101215> <Malformed Request "/cgi-bin/a1stats/ HTTP/1.0". Request parsing failed, Code: -10>

'WEB' 카테고리의 다른 글

바이러스? 웜? 악성코드?  (0) 2008.03.03
xp  (1) 2008.03.03
DAX 에러  (0) 2007.12.21
WebLogic 세션 클러스터링  (0) 2007.08.20
Ajax를 소개합니다.  (0) 2007.08.14
WEB
posted by 구름너머 2007. 12. 21. 11:11
본문스크랩 DAX 에러 스크랩

2007/12/21 11:09

http://blog.naver.com/damool2/40045601146

출처 블로그 > chanydang님의 블로그
원본 http://blog.naver.com/chanydang/120021087814

원인

- ActiveX Component 에서만 발생하는 에러로서, 브라우저는 Component 를 사용하기 위하여
윈도우를 처리하기 위한 프로시저를 가지고 있는 윈도우 클래스를 사용하게 되는데, 이게 처음
메모리에 로딩되는 Component 의 것을 사용합니다. 만약 1번 ocx 가 언로드 중일 때 2번 ocx

를로딩하면 윈도우 클래스가 등록된 줄 알고 사용하는데 실은 언로드 된 상황이라 에러를 발생
합니다.

- 위와 같은 문제점을 해결 하기 위하여 각 ocx 가 모두 자신의 윈도우 클래스를 사용하게끔
처리를했습니다만, 동시에 2개 이상의 OCX 를 로딩할 경우 간혹 발생하기도 합니다.
IE(Internet Explorer)자체에서 Module 을 처리함에 있어서 완벽한 안정성을 보이지
않기 때문입니다.

-ActiveX가 설치가 제대로 안되었을때 나타납니다

해결 방법

- PC에 설치된 사항을 제거하고 새로 받으면 됨

'WEB' 카테고리의 다른 글

xp  (1) 2008.03.03
웹로직 에러 <BEA-101215>  (0) 2008.01.17
WebLogic 세션 클러스터링  (0) 2007.08.20
Ajax를 소개합니다.  (0) 2007.08.14
HTML에서 padding  (0) 2007.07.04
WEB
posted by 구름너머 2007. 8. 20. 09:47

한동안 세션 클러스터링이 안되는 문제가 발생되었는데

원인은 객체직렬화를 구현하지 않아서 생긴문제로 결론났습니다.

아래를 참고하세요.

세션복제가 가능하려면 모든 서블릿 및 jsp세션 데이터가 Serializable되어야 합니다.

app중에 HTTP 세션 서블릿이나 jsp가 있을 것입니다. 이들이 serializable을 구현해야 합니다.

아래는 예시입니다. 참고하세요.

import java.io.Serializable;
public class MyBean implements Serializable

{

……….

}

그리고 직렬화 대상은 멤버변수만 가능합니다. 변수가 static, transient로 선언된 것들은 제외되므로 주의하세요.

또한 jsp에서 usebean을 사용하면서, scope session으로 아래와 같이 설정을 하는 경우에는.

] <jsp:useBean id="myBean" scope="session" class="MyBean"/>

해당 클래스가 Serializable interface를 제대로 구현되어 있어도 웹로직에서는 세션 정보가 복제되지 않습니다..

session.setAttribute 로 명시적으로 session에 넣어준 것만 복제 됩니다.

따라서, 위와 같이 사용하시는 경우에 usebean이 복제되려면, usebean 사용하는 jsp 마지막에 아래와 같이 한 줄을 추가 해주셔야 합니다.

session.setAttribute("myBean",myBean);

주의!!

http 세션의 putValue removeValue 메쏘드는 더 이상 사용되지 않으며 사용할 경우 세션 복제에 문제가 있을 수 있습니다.

확인해 보시고 위와 깉이 수정하시기 바랍니다.

ps: 디플로이하신 웹appWEB-INF/weblogic.xml

아래와 같이 설정해 주어야 합니다.

<session-descriptor>

<session-param>

<param-name>PersistentStoreType</param-name>

<param-value>replicated_if_clustered</param-value>

</session-param>

</session-descriptor>

'WEB' 카테고리의 다른 글

웹로직 에러 <BEA-101215>  (0) 2008.01.17
DAX 에러  (0) 2007.12.21
Ajax를 소개합니다.  (0) 2007.08.14
HTML에서 padding  (0) 2007.07.04
AJAX 관련  (0) 2007.05.28
WEB
posted by 구름너머 2007. 8. 14. 09:33

http://blog.naver.com/gaussian12/70018812004

출처 블로그 > 호군 블로그
원본 http://blog.naver.com/hoya0229/40021101044

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

호군생각 ==

아작스? 아약스? 에이잭스? 에작크스?

Ajax라면 어떤게 떠오를까?? 나 호군은 이 단어 먼저 접하고 몰까 라는생각을 했었다..

헌대 단어를 몰랐던거였을뿐 우리가 이미 개발을 해왔던 거였던거다.

우리가 요기 요기~~naver에서 검색시 유사 단어가 콤보박스처럼 뜨는거 요고였던거였다는거쥐.

우리가 흔히 XML을 쓴다 썻다 이런표현. 값을 던지고 받고 스크립트 처리하고 XML로 된 것을을

바인딩시켜 뿌려주는거 까지..아 기억나는가? 해본 기억이~~~^^;

현재 프로젝트에서도 적용을 했구나 하는 생각을 해본다.

강좌탭이 없는점을 아쉽게 생각하자 언제 허접하지만 호군이 개발한 것들을 볼 수도? 있을걸로

생각하며 아래글을 읽으면서 다음을 기약하자.

Ex) 호군의 사이트를 만들고 싶은 충동이 요즘 부척 든다. 혹 만들게 된다면 많은곳에서 아작스가 사용될것만 같은 생각이 든다.

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

1)

Ajax는 'Asynchronous JavaScript + XML'의 줄임말로, 뜻은 '비동기 자바스크립트 XML'이다. Ajax는 자바스크립트 렌더링 엔진을 이용한 기술로, Ajax를 이용할 경우 플래시나 액티브엑스(ActiveX) 의존도를 많이 벗어날 수 있다. 대표적으로 구글과 야후, 아마존 등의 여러 서비스에서 Ajax 기술을 활용하고 있다. 이들 사이트의 서비스는 액티브엑스를 사용하는 사이트와 달리 윈도의 익스플로러가 아닌 다른 운영체제나 브라우저에서도 사용할 수 있다.

'Ajax'라는 낱말은 제시 제임스 가렛(Jesse James Garrett)이 2005년 2월 18일 쓴 'A New Approach to Web Applications'이라는 에세이에서 'Ajax(Asynchronous JavaScript + XML)'라는 낱말로 이 기술을 소개한 이후 퍼진 것으로 알려졌다. Ajax를 한글로 표기하면 '에이잭스'나 '에작크스' '아약스'에 가깝지만 현재 대부분의 한국 네티즌에게는 '아작스'라는 표기로 친숙해진 상태다.


* Ajax를 소개하는 제시 제임스 가렛의 2월 18일자 컬럼


Ajax는 웹프로그래밍의 한 종류로 하나의 기술이 아니라 여러 가지 기술이 복합된 방법론 또는 기술덩어리를 뜻한다. Ajax에 사용된 기술을 보면 XHTML과 CSS를 사용한 표준 설계에 동적 표시, DOM을 사용한 상호작용, XML과 XSLT를 이용한 자료 교환과 조종, XmlHttpRequest을 이용한 비동기 자료 검색, 모든 것을 결합시켜 정리해주는 자바스크립트 등이 고루 섞여 있다. 그러니까 '브라우저와 서버 사이의 통신에는 XML를 사용하고, 사용자가 보는 브라우저 화면의 인터페이스로는 자바스크립트를 이용하는 기술'로 개념을 잡을 수 있다. 기술적으로 보자면 '웹서버-브라우저'의 구조 사이에 Ajax가 중간에 위치한 '웹서버-Ajax엔진-브라우저'의 구조로 바뀐다고 보면 된다.



* 제시 제임스 가렛이 비교한 이전의 웹응용 모델과 Ajax 웹응용 모델의 차이

'비동기 자바스크립트'는 왜 유용할까? 서버의 응답을 기다리지 않고 작업이 가능하므로 대기시간이 줄어들고, 이에 따라 서버의 부담이 줄기 때문이다. 이전의 동기방식은 이용자가 아이콘을 누르면 서버에 일일이 결과를 요청하고 이 결과를 받아서 브라우저 화면에 보여주었다. 당연히 사용자는 아이콘 하나를 누르고 서버에서 결과처리를 해서 보내줄 때까지 기다려야 했다. 그 동안 자바스크립트와 브라우저는 전달자 역할만 하고 놀고 있었던 것이다. 그렇지만 Ajax를 이용하면 일일이 서버에 묻지 않고 Ajax를 읽은 브라우저가 스스로 생각하면서 작업을 한다. 브라우저 안의 자바스크립트는 부지런하게 사용자가 지시한 일을 하고, 서버와의 통신작업은 배경(백그라운드)작업으로 처리한다. 자바스크립트로 xmlhttp를 통해 XML 자료를 관리하기 때문에 다시 페이지를 불러올 필요가 없는 것이다. 예를 들어 사용자가 그림 감추기를 선택할 경우 서버 응답을 기다리지 않고 브라우저가 일단 그림을 감추어 표시하고 서버와의 통신은 비동기로 처리하는 식이다.

Ajax를 잘 활용한 구글의 지메일을 예로 들자면, 처음 편지를 읽어올 때만 로딩(Loading)을 하고 그 이후에는 자바스크립트 차원에서 처리한다. 편지나 그림, 글씨 등을 감추거나 보여줄 때 일단 자바스크립트가 재빠르게 알아서 처리하고 서버와의 통신은 배경작업으로 처리한다. 그래서 지메일은 로그인 후에 무척 빠른 속도를 보인다.



* 지메일에 로그인 하면 '로드중...'이라는 말이 나오며 서버와 통신을 한다.


* 편지보기에서 추가옵션을 누른다.


* 즉시 추가옵션을 감추거나 보여준다.


일반 브라우저 화면에서 강력한 기능 구현이 가능하다.

그렇지만 Ajax가 단순하게 속도만 좀 빨라지는 것에 불과하다면 '혁명적인 차세대 기술'로 주목받기 어려울 것이다. Ajax의 진정한 힘은 새로운 방식의 웹접근이 가능하다는 점이다. Ajax를 이용한 사이트가 기존 사이트와 다른 점을 살펴보려면 Ajax를 잘 활용하고 있는 구글의 서비스 몇 개를 살펴보는 것이 좋다.

먼저 구글지도(http://maps.google.com/)를 살펴보자. 구글지도 사이트에서 왼쪽의 눈금자로 표시된 줌 단추를 위아래로 움직여서 확대축소(줌인아웃)를 해보면 지도가 커졌다가 작아졌다 한다. 지도를 마우스로 딸깍한 상태에서 상하좌우로 끌어다놓기를 하면 마우스 따라 지도가 움직인다. 얼핏 보면 구글지도의 기능 자체는 평범해보인다. 확대축소 이동 기능은 기존 지도 서비스에서도 지원한 기능이기 때문이다.



* 구글지도 왼쪽의 눈금자를 움직이면 지도가 확대축소된다.



* 방향키 쪽그림(아이콘)을 눌러 지도를 이동시킬 수 있다.



* 구글지도는 일반 브라우저에서도 마우스로 지도를 딸깍 하고 끌어다놓기(drag & drop) 형식으로 지도를 움직일 수도 있다.


구글지도가 놀라운 신기술로 무장했다고 찬사를 받는 이유는 이런 기능이 브라우저의 HTML 문서 안에서 이루어지기 때문이다. 구글지도를 사용하기 위해 프로그램 설치를 하거나 별도의 기능을 갖춘 새로운 창이 뜨지도 않는다. 일반 사이트의 HTML 문서를 보는 것처럼 일반 브라우저 화면 안에서 지도 서비스를 사용하고 있는 것이다. 국내에도 지도 서비스 사이트는 많지만 구글처럼 일반 브라우저 화면 안에서 자유롭게 지도를 움직일 수 있는 서비스는 없다는 사실을 생각하면 구글지도가 왜 대단한 기술인지 알 수 있을 것이다.


이미 출력된 HTML 문서를 자유롭게 재배치한다

그림만 마우스로 자유롭게 제어할 수 있는 것이 아니다. 브라우저 화면 안의 글이나 객체도 자유롭게 제어할 수 있다. 지금까지는 웹사이트 문서를 브라우저에 출력한 상태에서 자료의 위치를 사용자가 마음대로 편집하는 것이 어려웠다. 예를 들어 화면이 작은 PDA 사용자가 왼쪽의 글씨나 그림을 가려서 안 보이는 오른쪽 부분과 바꿔치기 해서 보기는 힘들다. 지금까지 이런 기능을 구현해주는 서비스도 없지만 만약 어떤 사이트에서 이런 기능을 구현한다면 특정 메뉴를 누르도록 한 다음에 HTML 문서를 서버에서 다시 보내주는 형식을 취했을 것이다. 하지만 Ajax를 활용할 경우에는 이미 출력된 HTML 문서의 그림이나 글씨 위치를 마우스로 끌어다놓기로 손쉽게 바꿀 수 있다.

구글의 개인화(한글: http://www.google.co.kr/ig, 영문: http://www.google.com/ig) 서비스에서 메뉴를 선택하면 화면 이동 없이 화면 구조가 바뀌며, 옮기려는 영역을 마우스로 끌어다놓으면 원하는 위치로 바로 재배치되는 것을 볼 수 있다. 물론 프로그램 추가 설치 없이 일반 브라우저 화면에서 이루어지는 기능이다.



* 구글개인화 서비스에서 'Add Content'를 누르면 페이지 이동 없이 화면 전체가 오른쪽으로 밀리며 왼쪽에 차림표 영역이 만들어진다.


* 왼쪽 중간의 'CNET News.com' 영역을 마우스로 딸깍 한 후 이동시킨다.


* 원래의 CNET 문단과 이동하는 CNET 문단이 겹쳐지면서 이동과정을 볼 수 있다.


* CNET 문단이 가운데 위로 이동했다.


* 이번에는 오른쪽 위에 있던 '자료모음' 문단을 왼쪽으로 옮기고 있다.


* 오른쪽 위의 '자료모음'이 왼쪽 중간의 CNET이 있던 자리로 이동했다.


이처럼 Ajax는 기존의 정적인 HTML 문서에서는 사실상 불가능했던 획기적인 기능을 구현해줄 수 있도록 해준다. 특별한 프로그램을 설치하지 않고도 PC에서나 가능했던 작업이 웹 상에서 가능해질 경우 많은 변화가 일어날 것이다. 나모웹에디터나 포토샵의 편집 기능을 웹 상에서 바로 구현할 수 있는 것이다. 해외는 물론 국내에서도 Ajax에 주목하는 이유는 Ajax를 이용할 경우 이처럼 강력하고 멋진 기능을 가진 웹서비스를 제공할 수 있기 때문이다.

구글지도나 지메일, 개인화 서비스를 보고도 Ajax의 위력이 실감나지 않은 사용자들이 있을 것이다. '프로그램을 설치하는 것이 꼭 나쁜 일인가? 구태여 꼭 Ajax로 구현해야 하는가? 구글의 몇몇 서비스에만 한정된 기술 아닌가?'라고 반문할 수 있다. 우리가 흔히 다니는 일반 사이트에서도 Ajax가 유용한가 하는 의문이 들 것이다. 그렇다면 이런 경우를 생각해보자. 처음 보는 어떤 쇼핑몰에 방문했는데 상품을 보기 위해 알 수 없는 프로그램을 설치해야 한다고 해보자. 어떤 일을 하는지도 모를 프로그램을 설치하면서 그 쇼핑몰을 이용할 네티즌이 얼마나 될까? 아마 대부분의 네티즌은 프로그램 설치를 거부하고 쇼핑몰 이용을 포기할 것이다. 쇼핑몰 사이트에서 프로그램 설치를 강요하는 것은 손님을 내쫓는 일이나 마찬가지인 것이다. 이런 쇼핑몰이 Ajax를 이용한다면 프로그램 설치를 강요하지 않고도 PC에 프로그램을 설치한 것 같은 멋진 서비스를 제공할 수 있다.

패닉닷컴의 쇼핑몰(http://panic.com/goods/)을 방문해보면 화면 아래쪽에 쇼핑카트라는 영역이 있다. 패닉닷컴에서는 셔츠를 구경하다가 상품 오른쪽에 있는 + 기호를 누르거나 셔츠를 쇼핑카트에 끌어다놓는 방식으로 쇼핑을 할 수 있다. 반대로 빼야 할 물품은 쇼핑카트에서 진열화면으로 끌어다놓으면 된다. 진짜로 할인점에서 우리가 진열대에 있는 물건을 이것저것 손에 집히는대로 쇼핑카트에 넣거나 진열대에 다시 놓는 느낌을 그대로 살렸다. 우리가 선택한 금액 합계를 자동으로 계산해주거나 힘들게 걷지 않아도 된다는 점이 할인점 쇼핑과 다를 뿐이다.


* 패닉닷컴의 쇼핑몰(http://panic.com/goods/)을 보면 하단에 쇼핑카트 영역이 표시된다.



* 가운데 파란 셔츠를 아래의 쇼핑카트로 끌어다놓는다.



* 쇼핑카트에 파란색 셔츠와 금액이 표시된다.



* 계속해서 검정색, 빨간색 셔츠도 마우스로 끌어다놓는다. 쇼핑카트에 지금까지 쇼핑한 것이 보기 좋게 표시된다.



* 불필요한 물건이 있으면 쇼핑카트에서 진열화면으로 끌어다놓으면 연기와 함께 사라진다.



* 진열화면과 쇼핑카트 사이를 오가면서 쇼핑하기 때문에 실제 쇼핑하는 것과 비슷한 느낌이 든다.


반면 기존 쇼핑몰은 물건을 하나 선택하면 다른 화면으로 넘어가거나, 어떤 물건을 구매했는지 확인하기 어려웠다. 쇼핑 도중에 지금까지 구매한 물건이 무엇인지 다른 화면으로 이동해 확인하고 별도의 차림표를 이용해 물건을 제거하는 과정을 반복하는 번거로움이 있다. Ajax를 활용한 쇼핑몰 사이트와 비교하면 그 차이가 크게 드러난다. Ajax를 이용한 쇼핑몰은 기존 쇼핑몰과 전혀 다른 형태의 쇼핑문화를 만들어가고 있는 것이다. Ajax를 도입한 쇼핑몰은 사용자의 짜증을 줄여주고 쇼핑시간을 단축시켜줄 뿐만 아니라 구매욕을 자극시키는 여러 가지 효과를 얻을 수 있다. 당연히 경쟁력을 갖추기 위한 쇼핑몰 사이트는 남보다 앞서 Ajax를 도입해야 하며, 웹사이트를 제작해주는 웹매니지먼트 회사나 웹개발자 역시 Ajax에 관심을 가져야 할 것이다.



* 국내 쇼핑몰은 장바구니 담기를 하면 화면이 바뀌기 때문에 불편하다.

HTML만으로 구현하기 어려운 복잡하고 정교한 작업을 구현해줌으로써 좀더 윤택한 사이트를 꾸며주는 인터넷 기술을 RIA(Rich Internet Application)라고 한다. 가장 대중적인 윤택인터넷응용(RIA) 기술로 매크로미디어사의 플래시와 마이크로소프트의 액티브엑스, 자바애플릿 기술을 들 수 있다. 플렉스(Flex), 위젯(Widget), 대시보드(Dash Board)를 비롯한 불여우(Firefox)의 확장도 RIA 기술로 분류할 수 있다. 그런데 구글이 Ajax를 활용하면서 빠른 속도로 Ajax 기술이 전파됨에 따라 기존 RIA 개발사의 영향력이 약해지고 있다. 대신 XML과 자바스크립트를 활용한 기술이 큰 흐름을 형성하며 떠오르고 있다. Ajax와 같은 기술은 빠른 속도와 강력한 기능 외에도 표준과 개방성, 확장성이 좋다는 것이 큰 장점이다. XML 자료를 주고받기 때문에 자료 관리가 쉬워지고 자동화가 쉽다는 점도 장점이다.

액티브엑스는 강력하지만 윈도와 익스플로러에서만 동작하는 폐쇄성 문제가 있으며, 플래시는 덩치가 크고 느리며 무겁다. 자바애플릿은 자바가상머신을 설치해야 하는 문제가 있다. 이들 기술로 웹표준을 준수하거나 다양한 기계, 다양한 브라우저와 호환성을 갖추기는 쉽지 않다. 반면 XML을 이용하는 Ajax는 기기나 브라우저에 구애받지 않으며 웹표준을 준수하기 쉽다. 호환성, 확장성도 좋다.

구글지도나 지메일의 경우 별도의 프로그램을 사용하지 않고 자바스크립트로만 구성되었기 때문에 다른 사이트에서 구글지도 서비스를 끌어와 자사 사이트에 응용하는 것이 쉽다. 이미 구글지도를 활용한 부동산사이트를 비롯하여 각종 사이트가 구글지도를 활용한 새로운 서비스를 개발해 제공하고 있는 상황이다. 심지어 개인들도 구글지도를 활용하여 자기 홈페이지에 활용하고 있을 정도다. 구글지메일도 자바스크립트로 구성되어 있어 다양한 활용 프로그램이 등장한 상태다. 야후가 2005년 7월 25일 콘파뷸레이터(www.konfabulator.com)라는 대시보드 프로그램 개발사를 인수한 것도 이런 흐름을 파악했기 때문이다. 콘파뷸레이터도 XML과 자바스크립트를 이용하기 때문에 위젯이라는 확장 프로그램을 사용자들이 개발하기 쉽다.



* 콘파뷸레이터와 같이 XML과 자바스크립트를 이용한 프로그램은 확장성이 좋다.


플래시 서비스를 대체해가고 있는 Ajax

플래시는 초기의 간단한 애니메이션 용도에서 벗어나 사이트의 메뉴 구성, 게임, 광고 등에 다양하게 활용되고 있다. 하지만 국내 사이트의 플래시 의존도는 지나칠 정도다. 플래시는 HTML보다 더 화려하게 사이트를 꾸밀 수 있지만 덩치도 크고 느리다. 또한 텍스트와 달리 수정이나 변경 때 시간과 비용이 많이 든다. 웹접근성이 떨어지는 점이나 자료 교환의 자동화와 효율성이 떨어지는 것도 문제다. 사용자의 CPU 점유율도 크게 잡아먹는다. 수 많은 사용자들이 플래시 광고를 불러오는 동안 기다리며 낭비하는 시간은 개인은 물론 국가적으로도 큰 손해다.

이 때문에 플래시를 꺼리는 일부 사용자는 인터넷 사용 도중에 플래시보기를 꺼놓고 싶지만, 메뉴나 서비스에 플래시를 적용하고 있는 사이트 때문에 플래시를 꺼놓기가 쉽지 않다. 사이트 입장에서도 덩치 크고 느린 플래시로 서비스를 제공하는 것이 부담스럽다. 이 때문에 해외 사이트 중에는 Ajax를 이용하여 플래시 메뉴나 플래시 서비스를 대체하고, 덩치 크고 느린 플래시는 광고에만 사용하는 사이트가 점차 늘고 있다.

한 예로 세계 야후에 인수된 플릭커(www.flickr.com)의 경우 Ajax로 전환 중이다. 플릭커의 사진 미리보기 기능을 플래시 대신 Ajax로 대체함으로써 지연현상을 없애고 속도향상을 꾀하는 것이다. 플릭커처럼 사이트의 서비스에 사용하던 플래시를 걷어낼 경우 남는 것은 광고용 플래시가 되므로 네티즌은 서비스를 이용하기 위해 플래시를 사용해야 하는 불편을 줄일 수 있다. 물론 사이트의 서비스도 좀더 빨라지고 자료 다루기도 한결 쉬워진다.



* 플릭커(www.flickr.com)와 같이 세계적인 사이트가 속속 플래시에서 Ajax로 전환중이다.


액티브엑스를 위협하는 Ajax

현재 Ajax를 가장 적극적으로 도입한 기업은 구글이다. 구글은 지메일, 그룹, 서제스트, 맵스 등에 Ajax를 적극 활용하고 있다. 구글이 Ajax에 적극적인 이유는 '사용자를 불편하게 하는 행동은 하지 않겠다.'는 구글 철학 때문이다. 구글은 사용자에게 프로그램 설치를 강요하는 것을 무척 싫어한다.

반면 국내 사이트는 아주 간단한 서비스를 하나 사용하려고 해도 각종 프로그램을 설치하게 만든다. 네이버의 경우 10분 동안 몇 차례나 프로그램 설치 안내문을 띄운다. 황당한 것은 이들 프로그램이 각기 다른 프로그램이라는 사실이다. 이런 현실이다보니 네이버를 비롯한 국내 사이트를 사용하려면 수 십 개의 알 수 없는 프로그램을 설치해야 하고 결국 이들 프로그램이 문제를 일으켜 컴퓨터가 먹통이 되는 일이 비일비재하다. 심지어 네이버에서 설치한 어떤 프로그램은 사용자 PC를 몰래 사용하는 등 스파이웨어처럼 활동하며 사용자 컴퓨터를 느리게 만드는 경우도 있었다. 그렇지만 이들 사이트에서 제공하는 서비스가 아주 특별한 서비스인 것도 아니다. 웹메일, 블로그, 뉴스와 같은 단순하고 흔한 서비스를 사용하기 위해 여러 개의 각기 다른 프로그램을 깔 이유가 없는데도 국내 사이트는 프로그램 설치를 강요한다.



* 국내 사이트의 액티브엑스 의존도는 심한 편이다.


그러나 잘 알려진 것처럼 액티브엑스를 사용할 경우 호환성 문제와 보안 문제가 발생하기 때문에 외국의 사이트 중에 액티브엑스를 이용하는 경우는 찾아보기 힘들다. 하지만 국내 사이트는 액티브액스를 남발하는 정도가 아니라 액티브엑스가 아니라도 구현 가능한 것조차 액티브엑스로 만드는 이상한 태도를 보이고 있다. 하지만 앞으로 Ajax가 좀더 보급된다면 불필요한 액티브엑스 남용이 줄 것으로 본다.



* 국내 사이트 상당수는 자사 사이트 안에서도 각기 다른 프로그램을 설치하는 불편함을 강요한다.

앞서 예를 든 쇼핑몰은 시작에 불과하다. 구글 외에도 여러 대형 사이트가 점차 Ajax 플랫폼을 도입하고 있다. 경쟁업체와 차별화를 위해 미국의 DVD 대여 사이트인 넷플릭스(www.netflix.com)는 Ajax를 도입해 사용자들의 편의를 돕고 있다. 넷플릭스에서 마우스를 올려놓기만 해도 상자가 뜨면서 요약 내용이 나오는 것이 Ajax의 도입 사례다. 아마존의 검색엔진 A9(www.a9.com)도 Ajax를 도입했다. 아마존의 A9은 일단 일반 검색이 아닌 전자상거래 검색 분야로 좁혀 전문적인 검색시장부터 노리고 있다.


* 넷플릭스 사이트에서 마우스를 그림에 올려놓으면 요약문이 표시된다.


* 아작스를 도입한 아마존의 검색엔진 A9(www.a9.com)


Ajax의 확산으로 위협받는 곳은 운영체제를 장악한 MS다. PC와 같은 기능을 구현한다면 사람들은 PC에 윈도를 까는 것보다 모바일기기나 멀티미디어 기기로 인터넷을 즐겨도 충분하기 때문이다. 구태여 PC일 필요가 없다. 인터넷으로 연결만 되는 기계라면 인터넷으로 사진 올려 저장하고, 인터넷 상에서 사진을 편집하면 되는 일이다. PC의 필요성이 줄어드는 것이다. 때문에 MS사도 윈도 운영체제의 지위를 유지하기 위해 Ajax 도구인 아틀라스(Atlas)를 개발해 제공할 것이라고 대응책을 발표했다.

재미 있는 사실은 Ajax의 핵심 기술 중 하나인 XMLHttpRequest 함수를 비롯한 xmlhttp 기술이 MS사에 의해 개발되었다는 점이다. 즉 Ajax라는 기술을 개발하고 이를 적용시켰던 곳은 MS사인 것이다. 하지만 정작 xmlhttp 기술을 받아들이고 활용하면서 Ajax를 보급시킨 쪽은 MS와 경쟁 중인 불여우 브라우저와 구글로, MS가 만든 기술로 MS를 공격하는 상황이 되었다.


웹표준성과 웹접근성에 대한 연구가 선행되어야 사용 가능한 Ajax

Ajax는 새로운 형태의 사이트를 출현시킬 것이며, Dojo, OpenRico와 같은 프레임워크를 제공하는 회사나 웹개발자에게도 새로운 기회를 제공할 것이다. Ajax는 많은 장점이 있는데, XML과 HTML 태그, CSS, 자바스크립트를 사용하므로 웹표준과 웹접근성에 대한 근본적인 이해가 있어야 제대로 사용할 수 있다. 웹표준과 웹접근성 문제는 웹개발자에게 당연하게 요구되는 기본지식이어야 하지만 웹디자인 학원에서 단기 과정으로 배출된 수 많은 국내 웹기획자 웹디자이너, 웹개발자에게 웹표준과 웹접근성을 요구하는 것은 쉽지 않다. 그러므로 자신의 경쟁력을 높이기 위해 Ajax 기술을 습득하고자 한다면 웹표준과 웹접근성부터 공부한 후에 Ajax에 관심을 가져야 할 것이다. Ajax는 비교적 최근에 떠오른 신기술이지만 향후 웹서비스에서 매우 중요하고 핵심적인 기술로 자리 잡을 전망이다.

출처 (http://www.dal.co.kr)

2)

정의
XHTML, CSS, 자바스크립트 등의 기술이 고루 섞여 대화형 웹어플리케이션을 만들 수 있게 하는 웹프로그래밍 기술의 복합체. 비동기식 자바스크립트와 XML(Asynchronous JavaScript And XML)의 줄임말이다.

특징
Ajax는 XHTML, CSS, JavaScript, Document Object Model, XMLHttpRequest 등의 기술로 이루어진다. 세 특징을 소개하자면 다음과 같다. 우선 Ajax는 XML기반의 웹서비스 언어를 사용하고 클라이언트에서는 자바스크립트를 가지고 서버에 응답한다. 그 결과 브라우저와 웹서버 간의 데이터량이 줄어들어 어플리케이션의 응답성이 향상되고 웹서버의 부담이 줄어들게 된다. 두 번째 특징은, 웹에서 해당 서비스를 쓰는데 있어 별도로 프로그램을 설치(예:액티브엑스, 플래시)하거나 해당 기능을 갖춘 새 창을 띄울 필요 없다는 것이다. 일반 브라우저 화면에서 그대로 이용할 수 있다. 마지막으로 Ajax는 사용자로 하여금 직접 웹 상의 자료의 위치를 편집하는 등 커스토마이징을 가능하게 해준다.

적용 사례 및 이슈
구글의 지메일, 구글맵이 Ajax를 구현한 서비스이다. 사진공유사이트인 플릭커(Flickr)는 사진 미리보기 기능에서 플래시를 빼고 Ajax로 전환했다. 차세대 인터넷 Web 2.0에 부합하는 혁신적인 기술로 평가받기도 하나, 브라우저에 따라 XMLHttpRequest를 사용할 수 없는 경우도 있고 복잡성이 문제가 되기도 하므로 아직 논란이 존재한다.


관련사이트

출처 (http://korea.internet.com/channel/content.asp?cid=464&nid=37599)


'WEB' 카테고리의 다른 글

DAX 에러  (0) 2007.12.21
WebLogic 세션 클러스터링  (0) 2007.08.20
HTML에서 padding  (0) 2007.07.04
AJAX 관련  (0) 2007.05.28
Ruby and AJAX  (0) 2007.04.27
WEB
posted by 구름너머 2007. 7. 4. 14:01
padding이 적용되는 순서는 style='padding:top rightbottom left' 순이다.

'WEB' 카테고리의 다른 글

WebLogic 세션 클러스터링  (0) 2007.08.20
Ajax를 소개합니다.  (0) 2007.08.14
AJAX 관련  (0) 2007.05.28
Ruby and AJAX  (0) 2007.04.27
자바 프로젝트  (0) 2007.03.13
WEB
posted by 구름너머 2007. 5. 28. 23:34

AJAX 관련 새로운 url 정리 http://blog.empas.com/icheon004/18859178

[본문스크랩] Ajax [www.atmarkit.co.jp] | 나의 관심정보 메모 삭제 2007/05/28 23:36
damool2 http://memolog.blog.naver.com/damool2/92
출처 블로그 > ## There's something about 똥비 ##
원본 http://blog.naver.com/kmoonki/20021021297

http://www.atmarkit.co.jp/fwcr/rensai/ajaxwatch01/01.html

제1회 Web어플리의 usability를 마구 개선하는Ajax

주식회사 피데이
카와마타 정

2005/11/2
Ajax 들떠 Watch에서는 ,Ajax을 사용한Web어플리케이션이나 서비스 제공자 , vender의 동향으로부터 「들떠 하는 것 같은」재미있는 것 , 확실히 눌러 두고 싶은 것을 엄선해 전달해 갑니다.

서두

 Ajax, 그것은Web어플리케이션의 usability를 개선하는 비장의 카드이다. 낡은 기술을 조합해 마술과 같이 다시 태어난 새로운 패션이다.

 이번보다 , 가능한 한 조밀하게 ,Ajax의 동향을 워칭 해 나가고 싶다고 생각한다.

 기본적으로는 , 새로운 화제를 중심으로 , 엄선한 재미있는 화제를 제공해 나가고 싶다고 생각하지만 , 이번 만은 첫회이기도 해 , 지금까지의Ajax에 관한 화제로부터 재미있는 것 , 확실히 눌러 두고 싶은 것을 픽업 해 보고 싶다.

 덧붙여 여기에서는 주로 일본어로 읽을 수 있는 정보에 대해 채택해 간다. 다만 , 특히 중요한 것에 대해서는 , 영어의 정보를 취급하는 경우가 있다.

Ajax(이)란 무엇인가 는 「낡고 새로운Ajax의 진실을 판별한다」를 참조하십시오.

하이라이트1·필독의 원전

 유행 기술에 전형적으로 볼 수 있는 것은 , 그것이 무엇으로 있는지를 정의하는 명확한 규정이 없는 , 혹은 규정이 있어도 간과해지고 있는 상황이다. 그 결과 , 그 이름을 말해 보면 , 웬지 모르게 무드로 그것이 통한다고 하는 상황이 발생한다.

 그러나 , 무드만으로는 끝내지지 않은 상황도 세상에는 있다. 기술자가 애매한 말을 사용해 커뮤니케이션 하고 있어서는 , 시스템이 동작하지 않을 가능성이 있다. 그리고 , 업자와 고객도 , 제공할 수 있는 것이 무엇인가 , 갖고 싶은 것이 무엇으로 있을까를 명확한 말로 말할 수가 있지 않으면 트러블의 아래이다. 그러한 트러블을 회피하려면 , 원래 그 기술을 규정하는 문서를 제대로 읽어 두는 것이 중요라고 할 수 있다. 필자가 관계되었다XML의 세계에서는 , 특히 이러한 문제에 의해 쓸데없는 트러블이 빈발하고 있었으므로 ,Ajax가 같은 문제를 안지 않기 위해서(때문에)라도 , 특히 강조해 필두로 적어 두고 싶다. Ajax그럼 이 문서가 그 때문에 읽어야 할 문서에 해당된다. “Ajax”(에이잔스라고 읽는다 )라는 말을 누군가에게 향해 말해 보고 싶은 사람은 , 대충 훑어봐 두면(자) 좋을 것이다.

 규정하는 문서 , 등이라고 하면(자) 어려울 것 같게 느껴질지도 모르지만 , 그렇지 않다. 아무도Ajax를 모르는 상황으로Ajax를 설명하기 위해서 쓰여진 문서이므로 , 당연한 일이지만 , 읽기 위해서(때문에)Ajax의 전문적인 예비 지식은 요구되지 않는다. 길이도 그다지는 아니기 때문에 , 꼭 대충 훑어보자.

 그렇다고는 해도 , 현재 상태로서는 이 정의에 들어맞지 않는Ajax의 사용법도 있으므로 , 쓰여진 말을 절대시 하지 않게 , 주의할 필요가 있다.

하이라이트2·Ajax으로 어디까지 할 수 있는 거야? 본격 어플리케이션Zimbra

 Ajax그리고 어디까지 할 수 있는 거야? 그렇다고 하는 회의론자에게는 이것이 추천.

 Ajax에 의한 지금 화제의 본격 어플리케이션 소프트이다. 차세대의 엔터프라이즈 메시징과 합작의 툴이다. 즉 , 전자 메일의 읽고 쓰기 , 스케줄이나 주소장의 관리나 검색등을 실시할 수가 있다. 영어에서의 제공이 되지만 , 상기의2종류의 데모를 보면(자) , 무심코Web브라우저상에서 동작하고 있는 것을 잊을 것 같게 되는 것 같은 고도의 어플리케이션 소프트가 실현되고 있는 것을 알 것이다.

 2개의 데모 가운데, 특히 스스로 조작할 수 있는 데모에 주목하자. Ajax(은)는 아무런 특색도 없는Web브라우저를 플랫폼으로서 실행하므로 , 단지 링크를 클릭해 진행되는 것만으로 , 응용 소프트를 사용하기 시작할 수가 있는 것이다.

 그러나 ,Web브라우저만으로 기능이 완결하고 있지 않는 것도 확인해 두자. 데이터를 축적해 , 검색등의 기능을 실행하고 있는 것은 서버측이다. 많은 경우 ,Ajax어플리케이션은 서버와 클라이언트의 쌍방을 풀 활용해 동작한다. 그 점에서 , 서버만 , 클라이언트만으로 구성되는 종래의Web어플리케이션과는 구별을 분명히 하고 있다.

하이라이트3·Google

 Ajax그렇다고 하는 붐의 출처(소)를 더듬으면(자) ,Google에 가까스로 도착한다. Google(은)는Ajax이라는 이름 의 제창자는 아니지만 , 현재Ajax로 불리는 스타일을 본격적으로 사용하기 시작한 것은 , 아마Google일 것이다. 특히 ,Google사제스트나 ,Google맵(현재는Google로컬) 이 가져온 임펙트는 크다. 각 하는 필자도 ,Google맵으로 새틀라이트 화상을 보는 것을 정말 좋아해 , 토쿄안의 여기저기를 갈 때도 봐 돌았다. 예를 들면 , 통근 통학의 차창으로부터 몇회와 없게 본 토쿄도 수도국 와다보리 급수소가 , 하늘로부터 보면(자)이러한 기하학모양으로 보인다라고 하는 것은 , 용무도 없는데 흔들흔들 곳의 서비스를 보고 있어 발견한 것이다.

 그러나 , 여기에서는 특히Google사제스트를Ajax을 말하는데 중요한 서비스라고 주장해 보자. Gmail(와)과 같이 어카운트를 취득하지 않고와도 사네 , 동시에 비동기 통신을 간편하게 실감할 수 있기 (위해)때문이다. 이 서비스는 , 검색 키워드를 입력중에 , 그 앞을 추측해 후보를 표시하는 것이다. 그러나 , 후보가 나올 때까지 기다릴 필요는 없고 , 마음대로 이용자의 페이스로 문자를 몰두해도 좋다. 타이핑과 후보의 표시의 타이밍을 맞출 필요가 없다고 하는 것은 ,Ajax의 중요한 특징의1개인 비동기 통신을 체감하기 위한 좋은 예라고 할 수 있다.

그 외의 볼거리

 이번은 첫회라고 하는 것으로 , 신구에 관계없이Ajax를 실감하는데 도움이 되는 몇개의 페이지를 소개합니다.

모두가 라고 하는 자필 캐릭터 레코그네이션

 필자가 작성한Ajax관련 링크집안에서 , 특히 고인기인 것이 이것. Ajax그리고 여기까지 할 수 있다고는! 그렇다고 하는 놀라움의 소리가 자주 들려 온다. 여기서 공개되고 있는 것은 , 순수하게 자필 문자를 인식할 뿐(만큼)의 시스템이다. 마우스로 문자를 그리면(자) , 그 문자를 인식한다. 오인식 했을 경우에 학습시키는 기능도 가지고 있다.

보존이라고 하는 개념이 없는 메모 툴

 기본적으로는 문자를 입력하는 메모 툴하지만 , 보존이라고 하는 메뉴가 존재하지 않는다. 입력하면(자) 자동적으로 서버에 보존된다. 모처럼 쓴 문장이 , 잘못해Web브라우저를 닫아 버렸기 때문에 영원히 잃게 되어 버렸다. ……그렇다고 하는 것 같은 비극을 막을 수가 있다. 입력되었다URL를 더블 클릭 하면(자) 그것이 열리는 기능도 가지지만 , 짧은 코드로 이만큼의 기능을 실현하고 있는 것은 흥미로운 곳은 아닐까?

XML(와)과는 다른 별해

 Ajax그럼 , 비동기에게 데이터의 전송을 실시한다. 그런데 사용되는 것은 , 일반의 텍스트 파일과XML문서라고 원전에 쓰여져 있지만 , 현재는 다른 것도 다수 사용되고 있다. 이것이JSON(JavaScript Object Notation)이다. JSON(을)를 한마디로 요약하면 ,JavaScript의 문법으로 쓰여진 오브젝트의 원시 코드를 교환 형식으로 하고 해 앞 , 이라고 하는 것이다. JSON그리고 쓰여진 데이터는 ,JavaScript의eval함수로 컴파일 해 프로그램중으로부터 참조할 수 있다. XML(을)를 사용하는 것보다도 , 보다 간편한 것이 특징이다.

 JSON(을)를 취급하기 위한 라이브러리는 다양한 프로그램 언어용으로 벌써 준비되어 있어 , 상기의 페이지보다 더듬어 그것들을 조사할 수가 있다.

그대로는 움직이지 않는 사례

 Amazon의ECS(E-Commerce Service)4.0보다 취득한XML문서를 ,JKL.ParseXML이라고 하는 라이브러리에서 상기의JSON형식으로 변환해 , 취급하기 쉽게 하고 나서 처리하고 있는 사례이다. 그러나 , 여기서 소개하는 이유는 ,JSON의 이용예가 아니고 , 이 샘플 소스는 「그대로는 움직이지 않는다」라고 하는 사실을 악물기 때문에 있다. 코드의 코멘트에 「url (은)는 시큐러티의 관계로 릴레이 하는 구조가 필요하겠지요」라고 써 있지만 ,Ajax그리고 사용하는XMLHttpRequest오브젝트는 , 자기 자신이 놓여진 도메인과 같은 도메인에 대해서 밖에 통신을 실시할 수가 없다. 즉 , (Amazon의 도메인하에 컨텐츠를 두므로도 없는 한 ) ,Amazon ECS에 액세스 할 수 없다. 통신하기 위해서는 , 통신 가능한 도메인내에 통신을 릴레이하기 위한 소프트가 필요하다.

 덧붙여서 , 항상Web브라우저의 주소란을 현재 표시하고 있는 정보와 동기 시키고 있기 (위해)때문에 , 언제Bookmark해도 같은 내용을 재현할 수 있는 점도 주목이다.

변경 개소의 배경을 노랗게 바꾸어 알린다

 영어의 페이지지만 ,Yellow Fade Technique에 임해서 말하고 있다. 이것은 , 변경 개소의 배경을 황색으로 전환해 그것을 서서히 배경색에 되돌려 간다 (페이드 해 나간다 )라고 하는 테크닉이다. 페이지 바꾸고를 따르지 않고 동적으로 페이지 내용이 변화하는Ajax에서는 , 어디가 변화했는지를 이해하기 어려운 일이 있어 , 이러한 테크닉을 사용해 변화한 곳을 인상지우는 것이 필요하게 된다. 그 밖에 , 로딩중을 나타내는 인디케이터 아이콘을 표시하거나 하는 테크닉등도 사용된다.

동료를 찾아라! 커뮤니티

 일본어로 운영되는 가장 주요한Ajax관련 커뮤니티이다. 입회 등록시에 보낸 메일은 , 멤버에게 배송되어 버리는 것에 주의가 필요하다. 이 메일에는 , 본문에 자기 소개를 쓰도록(듯이) 지시받고 있지만 , 그것이 전원에게 보내져 버린다고 하는 것이다. 꼭 , 어필도의 높은 자기 소개를 생각해 양호한 커뮤니케이션의 계기로 하자.

제2회 Ajax, 그것은Web 2.0으로 계속되는 길

주식회사 피데이
카와마타 정

2005/11/19

Web2.0시대의 승자로 되어야 할 ,Ajax이라고 하는 전장이 뜨겁다. Google(와)과Yahoo! 뿐만 아니라 , 마이크로소프트나 open source·재팬도 참전하고 있다. 그들이 릴리스 한Web어플리케이션을 픽업 해 전달한다.


Web2.0에의 길

 Ajax, 그것은Web어플리케이션의 usability를 개선하는 비장의 카드이다. 낡은 기술을 조합해 마술과 같이 다시 태어난 새로운 패션이다. 그것은 어쩔 수 없이 사용하는 소극적인 선택은 아니다. 미래에의 가능성을 여는 전진하려는 의사이다. 미래형의 것Web으로서 말해지는Web 2.0에 도달하는 길은RSS,ATOM등 몇개인가 있다고 여겨지지만 ,Ajax도 또한 ,Web 2.0에 계속되는 길의1개라고 할 수 있다.

 이 연재에서는 , 매월Ajax의 동향을 워칭 하고 있다. 기본적으로는 , 새로운 화제를 중심으로 , 엄선한 재미있는 화제를 제공해 나가고 싶다고 생각하지만 , 재미있는 것 , 확실히 눌러 두고 싶은 것을 채택하는 일도 있다.

 덧붙여 여기에서는 주로 일본어로 읽을 수 있는 정보에 대해 채택해 간다. 다만 , 특히 중요한 것에 대해서는 , 영어의 정보를 취급하는 경우가 있다.

하이라이트1·Google의 독주를 허락하지 말아라! Yahoo!지도 정보의 역습!!

 지도는 재미있는 것입니다. 지도는 , 본다고 하는 것 외에 , 읽는다고 하는 행위도 가능합니다. 예를 들면 , 목적지까지의 경로를 조사하는 것은 단지 지도를 보고 있을 뿐. 그러나 , 거기로부터 무엇인가 명확하게 쓰여져 않는 정보를 발견해 나가는 것이 지도를 읽는다고 하는 것이 됩니다. 최근의 개인적인 체험을 소개하면(자). 아무렇지도 않게Google 로컬을 보고 있어 발견했던 적이 있습니다. 중앙선 무사시사카에역과 경계 정수장의 사이가 이상한 곡선으로 연결되고 있는것 이 보이지 않습니까? 이것은 맵 모드로 보고 있으면(자) 이해하기 어렵습니다만 , 새틀라이트 모드에서는 선명하게 보입니다. 이것을 봐 , 나는 핀과 왔습니다. 그렇다고 하는 것은 , 현재의 신쥬쿠 서쪽 출구의 고층빌딩거리에 있던 요도바시 정수장에 중앙선에서 분기 한 선로가 들어가 있는 고지도를 본 적이 있기 때문입니다. 이것과 같게 , 정수장에 들어가는 철도의 선로가 있어 , 그 자취가 보이고 있을 것임에 틀림없다고 생각해 조사해 보면 , 아무래도 해당하고의 같습니다 (덧붙여서 , 바로 동쪽으로 같은 곡선이 보입니다만 , 이것은 중앙선 미타카로부터 무사시노 경기장에 가는 노선의 자취 같습니다 ). 이와 같이 , 지도는 원래 재미있습니다만 , 새틀라이트 화상과 바꾸어 자유롭게 볼 수가 있으면(자) 새로운 발견도 있습니다.

 이 재미를Google에 독점시키지 않든지 ,Yahoo!가 나서 왔습니다. 그 이름도Yahoo!지도 정보 - 스크롤 지도입니다. 스크롤 지도라고 하는 이름대로 , 마우스에 의한 드러그나 커서 키의 조작으로 스크롤 시킬 수가 있는 지도입니다. 항공사진으로 전환할 수도 있습니다. 나중에 대항해 나온 만큼의 보람은 있어 , 기능도 풍부합니다. 커서 키를 눌렀을 경우에는 관성이 붙은 매끄러운 이동을 보여 주고 , 축척을 바꾼다고 표시중의 화상을 확대 축소하고 나서 정규의 화상에 바뀝니다. 그리고 , 광범위를 표시하는 서브 맵도 옆에 표시되어 거기로부터 재빠르게 장소를 이동시킬 수도 있습니다. 그리고 , 항공사진 모드의 표시는 ,Google의 새틀라이트 화상보다 선명히 보이다고 생각합니다.

 이Google대Yahoo!의2강 대결은 매우 흥미로운 것입니다. 이 대결은 , 종래까지의 인터넷상의 대결과는 이유가 다른 것처럼 생각됩니다. Ajax의 기술을 전면적으로 사용해 구축된 이러한 시스템은 , 기능성이나 쓰기의 면에서의 분명히 한 차별화를 지향하고 있습니다. 그것은 , 종래라면Web사이트라고 하는 것보다는 어플리케이션 소프트의 문제였습니다. 그러나 ,Ajax(은)는 그러한 문제를 ,Web사이트에 반입하는 것을 가능하게 하는 것입니다.

하이라이트2·Windows Live

 Ajax그렇다고 하는 전장에 나서려 하고 있는 것은 ,Google이라고Yahoo!만이 아닙니다. 마이크로소프트도 그리고 이 전장에 나서려 하고 있습니다. 이전부터 마이크로소프트는 ,start.com이라고 하는 실험 사이트를 공개하고 있었습니다. 이것은 , 유저가 커스터마이즈 가능한 자신 전용 페이지를 작성하는 것입니다. 다양한 기능이나 , 복수의 사이트의 것RSS에 의한 피드를 자유롭게 배열해 늘어놓거나 색의 설정을 간단하게 바꾸거나 할 수가 있었습니다. Google의 파소나라이즈드포무등과 닮은 서비스라고 생각하면 좋을 것입니다. 그러나 , 이 실험 사이트의 개량판이 ,Windows Live로서 실용 시스템으로서 제공되는 것이 발표되었습니다. 이 서비스는 , 착신한 전자 메일 , 뉴스의 헤드라인 , 구독하고 있는 브로그의 헤드라인등을 자유롭게 늘어놓아 자신만의 편리한 페이지를 작성할 수가 있습니다.

 마이크로소프트가Ajax를 향하는 열의는 그것만이 아닙니다. 마이크로소프트는Office Live이라고 하는 서비스도 아나운스 하고 있습니다. 이것은 , 독자 도메인명 ,Web사이트나 전자 메일 어카운트를 무료로 제공함과 함께 , 유상으로 고객 , 프로젝트나 문서를 관리툴 , 시큐어인 프라이빗Web사이트등도 제공한다고 하고 있습니다. 당연 , 이것도Ajax의 기술이 대대적으로 받아들여져 가겠지요. 흥미로운 서비스입니다만 ,2006해의 빠른 시기에 베타판을 제공한다고 여겨지고 있어 , 움직이는 모습은 아직 보이지 않습니다.

 이2개의 서비스로 특히 주목받는 것은 ,Windows이라고Office라고 하는2살의 브랜드가 관 다투어지고 있는 것입니다. 모두 ,Windows는 아니고 ,Office이기도 하지 않습니다. 그럼에도 불구하고 , 이러한 가장 중요한 브랜드명을 서비스에 붙여 오는 것은 , 마이크로소프트의 진심도를 나타내는 것은 아닐까 생각합니다.

하이라이트3·Ajax? 말해라Arax입니다

 Ajax에 대항하는 화제도 채택해 둡시다. 이 프레스 릴리스는 ,Ajax의 약점을 극복했다고 칭하는Arax(에이락스 ,Asynchronous RPC and XML) 를 채용한 「다이나믹·조정석」에 대해 말하고 있습니다. 그렇다고는 해도 ,Arax라는 말은 , 검색 엔진을 사용해도 다른 장소에서 발견되지 않기 때문에 , 이 프레스 릴리스를 발행한 「open source·재팬 주식회사」가 낳은 용어겠지요.

 그런데 , 이Arax는Ajax을 과거의 것으로 하는 획기적인 기술일까요? 프레스 릴리스를 읽는 한 ,Arax의 클라이언트측은 , 최종적으로Flash에 의해 동작하는 것 같습니다. 그것을 위한 시스템을 구축하는 기술을 제공한다는 것이 프레스 릴리스의 취지와 같이 읽어낼 수 있었습니다. 즉 , 순수하게 기술적인 입장으로부터는 ,JavaScript이라고Flash는 어느 쪽이 좋은 것인지 , 라고 하는 고전적인 물어 봐에 귀착합니다. Ajax하지만 붐이 되는 전부터 여러번 반복해진 논의라고 생각합니다만 , 아마 유일한 정답은 없다고 생각합니다. 어느 쪽이 압도적으로 뛰어난다고 할 것도 없고 ,TPO에 응해 구분하여 사용하는 것이 적당하겠지요.

 그러나 ,1개만 이 프레스 릴리스에는 코멘트하는 가치가 있는 문장이1개 포함됩니다. 그것은Ajax의 문제로서 나타난 「Web브라우저에 높은 의존도 , 정보 은폐의 곤란함 , 재이용의 어려움」이라고 하는 부분입니다. 이것들은 실은 문제는 아닌 , 이라고 하는 것보다도 , 오히려Ajax의 장점으로서 세어야 할 것이 많다고 생각합니다. 설마라고 생각할지도 모릅니다만 , 간단하게 설명합시다.

 우선 , 「Web브라우저에 높은 의존도」라고 하는 부분입니다만 , 의존성이 적은 프로그램이 좋은 프로그램이라고 하는 생각은 , 상식 같아 있어 , 실은 도착하고 있습니다. 완전 무결의 시스템 등 존재하지 않는 이상 , 항상 어디선가 의존성이 비집고 들어가 오는 여지가 있어 , 그리고 개별의 시스템이 독자적으로 가지는 편리한 기능이라는 것도 있습니다. 그것들을 명확하게 의식해 취급하는 한 , 의존성을 줄이려고 하는 노력은 노력에 비해 얻는 것이 적다고 말할 수 있습니다. 오히려 , 의존하는 것이라고 결론지어 임하는 것이 , 보다 적은 노력으로 대부분을 손에 넣을 수 있을 가능성이 있다고 생각합니다. 즉 , 모든Web브라우저의 모든 기능에 대응한다라고 하는 이상을 버려지는 나누기절의 마음만 있으면 ,Ajax의 방식은 합리적 또한 실리적이다라고 생각합니다.

 다음에 , 「정보 은폐의 곤란함」입니다만 , 이것은 나의 것Ajax에의 인상에 반합니다. 우선 ,JavaScript그리고 쓰면(자) 모두 원시 코드를 들켜 버리기 때문에 , 노하우를 숨길 수 없다고 하는 생각은 일부의 영역을 제외해 , 잘못하고 있습니다. Ajax(을)를 이용한 시스템에서는 , 대체로의 경우 , 프로그램이 서버측과 클라이언트 측에 분할되어 실장되고 있습니다. 클라이언트측 즉JavaScript으로 쓰여지는 부분은 , 대부분의 경우 유저 인터페이스에 관한 기능 뿐입니다. 즉 , 유저 인터페이스 이외의 기능에 관해서는 서버내에 숨겨져 외부로부터 방문해 알 수 없습니다. 그리고 , 유저 인터페이스의 실장 코드에는 , 숨기는 가치가 있는 획기적인 노하우가 포함되는 것은 많지 않습니다. 그리고 ,JavaScript의 코드도 난독화 툴에 의해 지극히 독해가 곤란한 형태로 제공되고 있는 예도 있습니다. 즉 ,Ajax의 방식에서도 , 대체로의 경우는 곤란하지 않습니다.

 마지막에 「재이용의 어려움」입니다만 , 이것은 원래 재이용라는 말을 꺼내는 것이 시대착오이다고 느낍니다. 프로그램 개발에서의 「재이용」이라고 하는 생각은 특히 객체 지향 프로그래밍의 세계에서 강조되어 온 것입니다만 , 이것은 벌써 파탄한 생각이라고 나는 보고 있습니다. 왜인가 하면 , 미지의 미래의 프로그램으로 재이용 가능해지도록(듯이) 클래스등 을 개발하는 수고는 지극히 커지는데 대해 , 그 만큼의 수고를 건 것을 재이용하려고 해도 , 잘 사용할 수 없는 사례가 많기 때문입니다. 즉 , 수고에 비교해 얻는 것이 너무 적습니다. 덧붙여서 재이용(=미지의 미래에 대비하는 것 ) 을 경고하는 표어가YAGNI (You Aren't Going to Need It의 약어. 「그것은 필요하게 안 된다」) 일거라고 생각합니다.

 그것은 접어두어 , 한편으로JavaScript에서도 체제적인 프로그램을 준비해 , 범용적으로 확장 가능 , 재이용 가능한 모듈을 사용해 간다고 하는 움직임도 있어 , 그것은 가능합니다. JavaScript(은)는 세상 일반이 인식하고 있는 것보다도 뛰어난 언어이며 , 그러한 시도하고는 충분히 가능하다고 생각합니다. 즉 , 만일 재이용을 의식한다고 해도 , 그것을 위한 방책은 충분히 있다고 하는 것입니다.

 덧붙여서 이제(벌써)1개 보충하면 ,Arax그럼RPC을 사용하는 것이 장점이다고 하는 것처럼도 읽어낼 수 있습니다만 , 이것이 정말로 장점이 되는가 하는 의문도 있을 수 있습니다. 인터넷상에서 범용적으로RPC를 실시하는 메카니즘인SOAP이 , 그토록 대대적으로 선전되면서도 하나 더 이용예가 많지 않은 상황으로부터 생각해 ,RPC보다 텍스트 ,XML, JSON등의 형식에서 데이터를 전송 하는 방식이 실용도가 높은 것이 아닌지 , 라고 하는 인상이 있습니다.

그 다른 볼 만한 곳

 게다가Ajax거기에 관련하는 화제를 소개합니다.

브라우저내에서 동작하는 가상 브라우저

 dragfloatWindow.html(을)를 다운로드해 , 로컬의 하드 디스크상으로부터 엽니다 (주). 그러자(면) , 브라우저의 윈도우내에 다른 드러그 가능한Web브라우저가 출현합니다. 외형이 재미있기 때문에 , 꼭 시험해 보세요. Internet Explorer한정입니다.

 그런데 , 이러한 프로그램을 소개한 이유는 , 외형이 재미있기 때문에라고 하는 것 만으로는 아닙니다. 이것은 , 페이지의 일부가Web브라우저로서 기능해 , 페이지에 부가가치를 매기는 것 같은Ajax어플리케이션이 성립할 가능성을 나타내고 있습니다. 아직도 악과 놀라는 것 같은 재미있는Ajax어플리케이션이 태어날 가능성은 많이 있습니다.

주:필자가 확인한 시점에서는 , 이하의 부분을 정정할 필요가 있었습니다.

수정전: src="/js/prototype-1.3.1.js"

수정 후: src="http://prototype.conio.net/dist/prototype-1.3.1.js"

HTML리얼타임 편집

 Ajax전용이라고 하는 것은 아닙니다만 , 매우 유용한 툴이므로 소개합니다. 이것은 ,Web브라우저의 북마크(마음에 드는 것) 에 등록해 사용하는 북마크 렛입니다. 어느 페이지를 열람중에 , 이 북마크 렛을 선택하면(자) , 별윈도우가 열려 , 거기에 편집 가능한 페이지의 원시 코드가 표시됩니다. 그 원시 코드를 고쳐 쓰면(자) , 거기에 응해 페이지 내용이 변화합니다. 이것은 매우 편리합니다. 개발중에 , 시행 착오적으로 페이지를 새로 짜넣기에도 편리하고 , 디버그를 위해서(때문에) 일시적으로 구조를 바꾸는 것도 간단. 너무 좋은 일이 아닙니다만 , 타인의 작성한 페이지의 동작을 해석하는데도 사용할 수 있습니다.

 그러나 , 여기서 주목 해야 할것은 그것만이 아닙니다. Dynamic HTML 덕분에 , 모든Web페이지는 외부로부터 용이하게 개서 가능이라고 하는 사실을 악물어 주세요. 폼을 고쳐 써 본래라면 송신되는 것이 없는 값을 서버에 송신시키는 일도 용이하게 할 수 있습니다. Ajax에 대응하는 서버측의 프로그램은 , 그러한 부정한 값이 송신될 가능성을 의식해 , 만전이 갖추고를 해 둘 필요가 있습니다.

대화적인CSS데자이나

 Ajax의 개발에서는 ,CSS은 피해 통과할 수 없는 중요한 기술이 됩니다. 페이지의 외형의 디자인을 동적으로 변경하려면 ,JavaScript그리고CSS의 지정을 고쳐 써 가게 됩니다. 그런데 , 프로그램으로CSS를 고쳐 쓴다는 것이 의외로 큰 일입니다. 정적인 페이지이면 ,WYSIWYG의 대화적인 툴로 메뉴로부터 색이나 스타일을 선택해 가면 , 의도하는 디자인의 페이지가 완성됩니다. 그러나 ,JavaScript로부터 고쳐 쓰는 경우 , 색이나 스타일은CSS의 문법에 따른 캐릭터 라인으로 쓰지 않으면 되지 않습니다. 예를 들면 , 화선의 스타일을groove로 전환하는 경우는 ,groove이라고 하는 묶음을 기억해 두지 않으면 되지 않습니다. 그리고 ,groove가 어떠한 외관이 될지도 알지 않으면 안됩니다. 이러한 암기의 귀찮음을 철거하려면 , 이QrONE CSS Designer - CSS Style Editor가 편리합니다. 폼을 조작하는 것으로 , 대화적으로CSS의 설정을 만들어 내 , 즉석에서CSS의 문법으로 결과를 볼 수가 있습니다. 덧붙여Dynamic HTML로 사용하는 경우는 , 약간의 읽어 바꾸고 (예를 들면"border-width"을"borderWidth"에 ) 가 필요하게 됩니다.

Google 로컬(Maps) 이 세계 측지계로 바뀐다!

 엄밀하게 말하면Ajax의 화제에는 들어맞지 않습니다만 ,Ajax주변에서의 큰 화제라고 하는 것으로 채택합니다. Google 로컬(Maps) 은 , 위도 경도의 파라미터로 위치를 지정해 지도나 새틀라이트를 표시할 수가 있습니다. 종래 , 이 좌표계는 일본 측지계인 것이 ,12월1일부터 세계 측지계로 변경된다고 합니다. 이것에 의해 , 같은 위도 경도를 지정했을 경우에서도 , 다른 장소가 나타날 가능성이 있습니다. 상세나 대책은 , 상기URL에 있습니다. 세계 측지계에의 이행은 , 국경이 없는 심리스인 서비스를 실현하기 위해서(때문에) 행해진다고 해 , 이것은 이것대로 바람직한 개선이라고 할 수가 있겠지요.

 덧붙여서 ,Google Maps API와는 자작 페이지내로부터Google 로컬(Maps) 의 지도를 이용하기 위한API입니다.

서적 「입문 Ajax」

 아마 일본 최초의Ajax에 관한 서적이 발매되었습니다. 이것이 타카하시 노보루 시로씨의 「입문 Ajax」입니다. 심플한 타이틀로 보입니다만 , 굳이 「Ajax입문」이라고 쓰지 않고 어순이 역전하고 있는 곳(중)이 , 미묘하게 긴장감이 있는 어감을 낳고 있어 흥미로운 네이밍입니다. 그런데 , 인터넷을 검색하면 뭐든지 정보가 나오는 상황으로 , 인쇄물을 소개하는 가치가 있는 것일까요? 그것은 틀림없이Yes입니다. 왜냐하면 , 서적을 읽는 (분)편이 훨씬 편하게 효율적으로 정밀도의 높은 정보를 얻을 수 있고 , 인터넷상에 존재하지 않는 정보가 서적에 있는 일도 드물지 않기 때문입니다. 그것은 ,2499엔(세금 포함) 의 돈을 지불할만한 가치가 있는 메리트입니다. 옛날 사람은 , 「책을 버려 거리에 나오자」라고 했습니다만 지금은 다릅니다. 지금은 갱의지금 짊어진다. PC의 화면만 보지 않고 , 「책을 사러 거리에 나오자」. (그러나 , 필자는 인터넷 통신 판매로 이 책을 사 , 거리에 나와 있지 않은 것은 비밀입니다 )

 이 서적은 , 완전한 아마추어가 최초로 손에 넣는 책으로서는 드나들기가 거북한 감이 있습니다. 그러나 , 풍부한 코드예에 의해 , 기술적인 구체상을 매우 알기 쉽게 결정되고 있습니다. Web브라우저간의 비호환성이나 , 다양한 기능의 실장 방법등도 소개되고 있습니다. 특히 , 상기의 것Google Maps API에 대해서는1장을 할애해 자세하게 설명하고 있습니다. 지금부터Ajax의 세계에 발을 디뎌 가려는 기술자의 이정표가 되는1권이지요.

제3회 아무리 도리에 맞지 않음을 해도 「그것도 있는 곳인」Ajax

주식회사 피데이
카와마타 정

2005/12/28

 Ajax들떠Watch에서는Web어플리의 usability를 마구 개선하는Ajax,Ajax, 그것은Web2.0으로 계속되는 길과Ajax근처에서의 동향을 전하고 있다.
 이번은 「Backbase」이라고 하는 개발 언어와 툴이나 「BrowserHawk」이라고 하는Web브라우저 자동 판정 툴 , 곧바로 반응이 되돌아 오는 채팅 , 「ConnectiveChat」을 메인에 이번달의 동향을 해설한다.


하이라이트1·Ajax개발용 강력 언어 & 툴 Backbase

 Ajax관계의 툴이나 라이브러리가 여러 가지 태어나고 있습니다. 특히 , 사탕 리어인가에서는 상용의 제품도 차례차례로 릴리스되고 있습니다. 실은 , 이러한 제품의 사이트를 봐 곤란한 것은 , 구체적으로 그것이 무엇을 해 주는 것인지 읽어내기 어려운 일이 많은 일입니다. Ajax의 특징으로서 실제로 움직이는 데모를 보이는 것은 용이합니다. 예를 들면 , 이 제품의 경우 ,Backbase RSS Reader라고 하는 데모의 링크를 더듬어 ,RSS리더의 데모를 보면(자) , 그것이 잘 되어 있어 움직이고 있는 것은 곧바로 압니다. 그러나 , 이 제품이 이RSS리더를 작성하는에 해당되어 , 어떻게 공헌했는지가 핀과 오지 않았습니다.

 그래서 , 문서를 몇개인가 대충 봐 깜짝. 이것은 , 클릭 몇차례로JavaScript의 코드를 자동 생성해 편리해요 , 라고 주장하는 타입의 「 제1인상은 대단히가 , 현장에서는 하나 더 사용할 수 없는 툴」은 아닙니다. 간편하게 코드를 자동 생성하는 툴의 문제는 , 생성할 수 있는 기능이 한정되어 버리는 것으로 , 생성한 후 의 코드의 메인트넌스가 귀찮은 일입니다. 그러나 , 이Backbase는 , 그러한 어프로치로Ajax어플리케이션을 개발하는 것은 아닙니다.

 Backbase그리고Ajax어플리케이션을 기술하기 위해서 사용하는 것은 ,BXML(Backbase eXtensible Markup Language)라고 하는XML에 의해 만들어진 독자 언어입니다. 이 언어를XHTML문서안에 묻어 컨텐츠를 기술할 수가 있습니다. BXML(은)는 ,XHTML보다 훨씬 고도이고 강력한 기능을 제공하므로 , 보다 간편하게 리치인Ajax어플리케이션을 개발할 수 있는 것입니다.

 물론 , 독자적으로 결정한 언어를XHTML문서에 묻어Web브라우저에 보내도 , 그것이 해석될 것은 없습니다. 그런데 나오는 것이BPC(Backbase Presentation Client)라고 하는JavaScript프로그램입니다. XHTML문서에는 , 이BPC에의 참조를 포함해 두어 문서가 읽힌 시점에서 이것이 실행되도록(듯이) 합니다. 그리고 , 이BPC가BXML로 기술된 컨텐츠를 해석해 실행합니다. (아마 ,Web브라우저내에서 동적으로 해석과 실행을 한다고 생각합니다 )

 이러한 어프로치에는 , 당연한 일이면서 장점과 단점이 있습니다. 장점은 , 물론보다 고수준의 사용하기 쉬운 언어로 어플리케이션을 개발할 수 있는 것입니다. 이것에 의해 개발 효율이 오르는 것은 틀림없을 것입니다. 한편, 단점으로서는 독자 언어를 해석할 때까지의 순서가 생기기 (위해)때문에 , 페이지를 표시할 때의 대기 시간이 증가하는 일이 있습니다. 그리고 ,1기업의 독자 언어를 습득한다는 것도 , 기억한 지식의 재이용성이 제한된다고 하는 의미로 , 단점이라고 볼 수 있을지도 모릅니다.

 덧붙여서 ,Backbase에는Visual Studio으로 비주얼 개발하는 플러그 인이다든가 ,J2EE라고 제휴하는 툴등도 있어 , 개발 효율은 높은 것 같습니다.

 그런데 ,Backbase와 같은 독자 언어를 사용하고 해 앞 , 이라고 하는 어프로치는 , 실은JavaScript으로 개발하는 것을 조건의1개에 자리잡고 있는Ajax의 정의에 반한다고 볼 수가 있습니다. 확실히 최종적으로는JavaScript으로서 실행됩니다만 , 주된 기술 언어는JavaScript이 아닙니다.

 이 점에 관해서 말하면 ,Ajax에 터부는 없고 ,JavaScript그리고 기술하는이다든가 ,XMLHttpRequest오브젝트를 사용한다고 했다Ajax의 정의에 포함되는 조건은 아무리 찢어도 상관없다고 생각합니다. 사실 ,Ajax붐의 원점이라고도 할 수 있는Google Maps으로 지도가 마우스 드러그로 스크롤 하는 기능을 실현하기 위해서(때문에) ,XMLHttpRequest오브젝트는 특히 기여하고 있지 않습니다. 원점으로부터 해 이러한 상황이기 때문에 , 기존의Web브라우저상에서 usability를 올리는 수법을 이용한 것은 모두Ajax라고 불러 지장없는……, 즉Ajax에 터부는 없다고 생각합니다.


하이라이트2·Web브라우저의 차이를 자동 판정·BrowserHawk

 이BrowserHawk라고 하는 소프트도 , 언뜻 봐 무엇을 해 주는지 이해하기 어려운 것이었습니다. 이것은 , 서버측에서Web브라우저의 종류를 판정해 , 처리를 바꾸기 위한 소프트입니다. 브라우저의 종류를 정의하는“visual browser definition editor”이라고 서버측의ActiveX컴퍼넌트 또는JavaBean으로부터 구성됩니다. 이것이 어느 정도 상세한Web브라우저의 체크를 실시해 줄까는 , 이하의 데모 페이지를 본다고 안다고 생각합니다.

Analyze your browser

 이것을 본다고 아는 대로 , 단지Web브라우저의 종류나 버젼 , 플랫폼등을 조사할 뿐만 아니라 , 쿠키나SSL가 유저의 설정으로 유효한가 아닌가 ,SVG등의 플러그 인이 인스톨 되고 있는지 ,Flash플러그 인의 버젼은 몇개인가등도 모두 체크됩니다. 게다가 , 송구했던 것에 브로드 밴드 접속인지 어떤지도 판정되어 접속 스피드도 계측 되고 있습니다. 이러한 정보를 바탕으로 해 , 프로그램에 최적인 동작을 실시하도록 할 수 있으면 , 매우 사용하기 쉽게 뛰어난 소프트가 생기겠지요.

 덧붙여서 , 이 툴은 서버측의 툴이라고 하는 일도 있어 ,Ajax전용이라고 하는 것은 아니라고 생각합니다. 그러나 ,Web브라우저의 비호환성을 앞에 두고 「표준에 적합하지 않기 때문에 안된다」라고 불평을 말하면서 코드는 쓰지 않는 태도보다 , 벌써 있는Web브라우저의 종류 마다 동작시키는 코드를 바꾸는 것으로 금방 움직이는 코드를 만들어 가려는 태도는 ,Ajax의 정신에 따른 것인 것처럼 느껴집니다.

하이라이트3·곧바로 반응이 되돌아 오는 채팅 ConnectiveChat

 Ajax에 터부는 없고 , 벌써 있는 것을 사용해 창의와 궁리로 넘어 가는 것이 긍정됩니다. 이 채팅 프로그램은 , 확실히 창의와 궁리로 핸디캡을 넘은 좋은 예라고 생각합니다.

 통상 ,Web어플리케이션은 , 클라이언트측에서 구축하는 경우에서도. 서버측에서 구축하는 경우에서도 , 통신 개시의 주도권은 클라이언트측이 가집니다. 예를 들면 , 무엇인가의 데이터를 취득하는 버튼을 클릭했을 때에 , 통신이 발생하게 됩니다만 , 이것은 클라이언트측의 조작이 방아쇠가 되어 통신이 시작되는 것을 의미합니다.

 그러나 , 이러한 아키텍쳐는 , 서버측에서 발생한 상태의 변화를 기민하게 찰지해 클라이언트 측에 반영시키는 것이 곤란합니다. 전형적인 예가 , 채팅을 실시하는 프로그램입니다. 채팅은 복수의 클라이언트로부터 부정기에 메세지가 송신되어 그것이 모든 이용자에게 전송 됩니다. 그러나 , 메세지를 받아들인 서버는 , 즉석에서 메세지가 있다고 하는 사실을 모든 클라이언트에 통지하는 수단이 없습니다. 통신을 개시하는 주도권은 클라이언트 측에 있어 , 서버 측에는 없기 때문입니다. 그 결과 , 일정시간 마다 클라이언트측이 서버에 문의하는 폴링이라고 하는 테크닉이 정평으로서 사용되게 됩니다. 그런데 , 이 폴링이라고 하는 처리는 , 간격이 길면 닿은 메세지가 반영될 때까지의 타임 러그가 길어져 , 반대로 간격을 짧게 하면(자) 네트워크와 서버의 부하가 높아진다고 하는 문제가 생깁니다.

 그런데 , 이ConnectiveChat는 , 이 문제를 창의와 궁리로 해결했습니다. 복수의 PC로부터 접속하고 시험하자마자 압니다만 ,1개의 클라이언트에 입력한 메세지는 , 즉석에서 모든 PC에 반영됩니다. 이것은 클라이언트측이 먼저 통신을 개시 하게 해 , 그에 대한 응답을 다른 클라이언트로부터의 메세지를 수신할 때까지 지연 시킨다고 하는 방법으로 실현되고 있습니다. 확실히 클라이언트측에서 처리를 실시한다Ajax만이 가능한 테크닉이라고 할 수 있습니다. 서버측의 프로그램으로 , 이것과 동등의 처리를 실시하는 것은 아마 곤란하겠지요.


그 다른 볼거리

 Ajax(와)과 거기에 관련하는 화제를 소개합니다.

자신의 브로그에 지도첩두창β

 그리고 지도의 화제입니다. 이Ajax 들떠 Watch는 지도 관계의 화제가 많습니다만 , 그 이유의1개는 틀림없이 「내가 지도를 좋아하기 때문에」라고 하는 점에 있습니다. 그러나 , 그것만으로는 , 이 정도 많은 지도 관계의 화제는 모이지 않을 것입니다. 역시 ,Ajax라고 지도는 궁합이 좋은 것이라고 생각합니다. 그리고 ,Google Maps가 각방면의 지도 관계자의 영혼에 불을 붙여 , 좀 더 대단한 지도를 보여 준다! (와)과 나서 온 가능성도 있을 것 같네요.

 그런데 , 스크롤 지도의 세계에 나서 온 것은Google이나Yahoo만이 아닙니다. 지도에서 유명한 출판사의 쇼분샤도 나서 왔습니다. 그러나 , 무임승차 내 온 것 만으로는 아닙니다. 자신의 브로그에 지도를 붙일 수 있다 , 라고 하는 기능을 제공한다고 하는 재미있는 챌린지를 시도해 왔습니다.

 그러나 , 자신의 브로그에 지도를 붙일 수 있으면(자) 재미있는 것일까요? 이것은Yes이라고 생각합니다. 「이 근처」라고 장소를 지시하는데도 편리하고 , 페이지 내용도 화려하게 됩니다. 독자도 , 지도를 봐 「아 , 내가 알고 있는 그 장소의 근처인가」라고 납득할 수 있는 일도 있겠지요.

 물론 ,Google Maps(Local) 의 지도도 ,API를 이용해 자신의 페이지에 붙일 수가 있습니다. (자세하게는 전회 소개한 서적 「입문 Ajax」등 을 참조). 그러나 , 미리 그것이 생기도록(듯이) 만들어진 시스템으로 사용하는 경우를 제외해 , 그것을 실시하는 허들은 약간 높다고 말할 수 있습니다. 만약 , 좀 더 간편하게 지도를 붙일 수가 있는 서비스를 제공한다는 것이면 , 그것은 주목할 만합니다. 그리고 지도를 매개로 한 브로그에의 액세스와 같이 새로운 서비스도 있는 것 같아 , 이것은 주목하고 싶다고 생각합니다.

가로의 사진이 있다A9.com Maps

 미안합니다. 그리고 지도입니다. 검색으로 유명한A9.com도 , 스크롤 지도를 다루고 있습니다. 특징적인 것은 , 가로의 사진이 있는 것입니다. 예를 들면 상기 페이지로부터New York, NY를 선택하면(자) , 교차점으로부터 본 사방위의 사진이 표시되어 방향을 바꾸어 볼 수가 있습니다. 항공·위성 사진과는 다른 보이는 방법의 어프로치군요.

Ajax에 의한 리바시게임

 겨우 지도로부터 멀어질 수 있었습니다. Ruby on Rails그리고 작성된 , 이른바 리바시(오델로라고도 불린다 ) 의 게임입니다. 돌을 둘 수 있는 장소에 마우스 포인터를 가져 가면 색이 바뀌는 등의 interaction도 있습니다. 한쪽 팔꿈치 펴지 않고 ,Ajax(와Ruby on Rails) 의 이용 사례를 체감 하기에는 좋은 샘플이라고 생각합니다.

 덧붙여서 , 필자는 리바시는으로부터 기사 약합니다만 , 약한 나라도 이길 수 있었습니다. 컴퓨터의 사고는 , 마음 편하게 놀기에는 좋은 레벨이라고 생각합니다. (컴퓨터의 사고 루틴은 강하면 항상 좋다고 하는 것도 아니다 )

Google Maps API(을)를 배경으로 한 게임

 게임의 예가 계속됩니다. 이것은 , 반드시 성공한 사례라고는 할 수 없습니다만 , 매우 흥미롭기 때문에 소개해 둡니다. 내용은 ,Google Maps(저것 , 그리고 지도의 화제로 연결되었다! ) (을)를 배경으로 사용한 슈팅 게임의 시작 프로그램입니다. 눈아래에Google Maps의 위성 사진을 보면서 전투기로 날아 , 총알을 쏘아 적을 넘어뜨립니다.

 여기에서도 그리고 ,Ajax에 터부는 없다고 하는 말을 재확인하고 싶다고 생각합니다. 어디까지나 , 지도 정보로서 제공된 것을 , 이러한 형태로 게임의 배경으로 사용하는 일도 가능합니다. 아마 , 게임은 아니고 실용 소프트에서도 , 깜짝 놀라는 편성으로 사용할 수 있는 일도 있겠지요. 그 조합하고를 찾아내 , 터부 없고 뭐든지 사용해 보는 것이Ajax적인 재미지요. 특히 , 이 게임과 같이 고속성을 요구마저 하지 않으면 , 이러한 이용 방법은 기술적으로 어떤 문제 없다고 하는 것에 주위를 기울여 둡시다.

Mozilla전용 ,3DGoogle Maps

 이것은SVG(Scalable Vector Graphics) 과 연동시키는 것으로 ,Google Maps를 입체적으로 표시시키는 것에 도전한 사례입니다. 표준으로SVG에 대응하는Firefox 1.5이 릴리스 된 지금그러니까 도전할 수 있는 소재라고 할 수 있겠지요. 이 프로그램은 ,Firefox 1.5을 포함한SVG이 유효한Mozilla전용이 되고 있습니다.

 그래서 , 그리고 지도의 화제가 되어버렸습니다만 , 물론 지도 그 자체는Google Maps의 내용 그 자체입니다. 여기서 주목하고 싶은 것은 , 지도가 아니고 ,SVG를 활용하는 것으로 새로울 가능성을 개척해 나가는 태도입니다. 터부 없고 벌써 있는 것을 사용한다고 하는 태도가Ajax목표라고 한다면 ,SVG과 같이 새로운 기술이든지 , 그것이 일반으로 사용되는Web브라우저에 짜넣어졌기 때문에 있으면 활용하는 것이Ajax적입니다. 물론 , 이러한 기술을 활용하면 , 모든Web브라우저로 열람 가능하게는 되지 않습니다. 그러나 , 그래서 좋습니다. Ajax(은)는 , 모든Web브라우저로 동작해야 한다고 하는 규범을 강제하는 것이 아닙니다. 실제로는 , 특정의Web브라우저에서만 동작하는 사례도 있습니다. 그리고 , 마이너스적인Web브라우저나 , 낡은 세대의Web브라우저에는 대응하지 않는다고 하는 사례를 포함하면 , 대다수는 거기에 해당하면(자)조차 말할 수 있겠지요.

전방위 공략 Ajax에 터부는 없다!

 마지막으로 , 반복합시다. Ajax에 , 터부는 거의 없습니다. JavaScript이외의 언어로 써JavaScript로 실행해도 좋고 ,XMLHttpRequest오브젝트를 사용하지 않는 것도OK입니다. Web브라우저의 종류를 한정해도OK입니다. 예를 들면 객체 지향 프로그래밍등으로는 , 초심자가 「이것은 객체 지향적이지 않다」라고 해 화가 나는 것 같은 상황을 볼 수 있습니다만 ,Ajax그럼 같은 광경을 본 적이 없습니다. 얼마나의 도리에 맞지 않음을 해도 「그것도 있는 곳인」이라고 하는 리액션이 되돌아 오는 것처럼 느껴집니다. 그러니까 , 무서워하는 일 없이 , 창의와 궁리로 렛트·트라이!

 ……그렇지만Flash만 으로 모두 쓰면(자) , 과연 「그것은Ajax이 아니야」라고 말해질지도 모릅니다만 (웃음).

제4회 자동차 업계의 것Ajax을 활용한 캠페인을 목격해

주식회사 피데이
카와마타 정

2006/1/24

 Ajax들떠Watch에서는Web어플리의 usability를 마구 개선하는Ajax,Ajax, 그것은Web2.0으로 계속되는 길,아무리 도리에 맞지 않음을 해도 「그것도 있는 곳인」Ajax와Ajax근처에서의 동향을 전하고 있다.
 이번은Ajax의 응용이 표현력의 폭을 훨씬 펼치는 예나 , 다이나믹한 데이터 송신 기술 ,AJAX데이터의 교환을 알 수 있는GIF인디케이터(indicator) ,Flash라고JavaScript를 제휴되는 툴 킷 등 , 이번달의 동향을 소개한다.

 하이라이트1·브라우저를 질주 하는Ajax구동차

 닛산 티다라고 하는 자동차의 프로모션으로서 「은 이라고 」의 일부의 페이지상에서 , 티다의 화상 데이터가 페이지상을 「달린다」라고 하는 서비스가 제공되고 있습니다. 2006연1월23일까지의 캠페인이었지만 , 당 기사 공개일의 지금은 ,TIIDA BLOG Type Hatena위에 남아 있습니다. 굳이 이것을 채택해 두고 싶은 것은 , 일본의 대표적인 공업제품인 자동차라고 하면 , 돈과 수고를 충분히 걸어 프로모션 되는 것이기 때문입니다. 그에 대해 , 브로그와 함께 ,Ajax의 기술을 사용해 「페이지상을 차가 달린다」라고 하는 서비스를 제공했다고 하는 사실은 ,Ajax이 급속히 사회에 인지되어 보급하고 있는1개의 증거이다고 생각합니다. 장난감과 같은 서비스입니다만 , 일본내의Ajax보급의1개의 이정표로서 기억에 그쳐 두는 가치가 있다고 생각합니다.

 기술적으로는 , 아마 개개의 요소를 지면에 진단해 게다가를 주행하도록(듯이) 만들어지고 있는 점이 흥미로운 곳입니다. 커서 키아래를 누르면 차는 낙하합니다만 , 아래의 요소 위를 타 낙하가 멈춥니다. 이것은 , 문서가 구조를 가져 레이아웃 되고 있는 것을 인식한 데다가 , 그것을 본래의 의도와 다른 목적으로 이용하고 있는 예입니다. 이 앞 , 이러한 타입의 응용 사례로 , 훨씬 유익한 무엇인가의 기능을 제공하는 서비스도 나온다고 생각합니다.


하이라이트2·반투명 윈도우로 성적 매력이 있는 비주얼 연출

 그리고 지도인가! (웃음)

 네 , 그렇습니다. 이것은 ,Google의 지도상에 , 브로그를 붙인다 , 혹은 브로그상에 지도를 붙이는 서비스입니다. 이것이 재미있는 것은 , 지역으로부터 찾아 브로그를 읽어 갈 수가 있는 점입니다. 이것은 , 브로그의 약점을 극복하는1개의 수단이 될지도 모릅니다.

 그런데 , 브로그의 약점이란 무엇일까요? 여기서 말하는 약점이란 , 너무 「독자인 나」라고 관계가 없는 화제가 너무 많다고 하는 것입니다. 기존의 브로그를 인용해 거의 의미가 없는 맞장구를1행……, 등이라고 하는 것은 논외라고 해도 , 「 나」가 가는 것은 생애 있을 수 없는 것 같은 원격지의 라면집이 늙고 해 있고 물지 않고 가고 등이라고 하는 화제는 , 너무나 「 나」라고 관계가 (?없습니다. 그럼에도 불구하고 , 검색 엔진은 인정 사정 없게 지역의 격차에 관계없이 페이지를 찾아 옵니다.

 그러나 , 이 지도 일기와 같은 지도로부터 브로그를 찾아 읽어 가는 시스템이면 , 「 나」의 근처의 화제만을 , 용이하게 주울 수가 있습니다. 근처의 라면집의 화제이면 , 그것은 자신도 갈 가능성이 있는 것으로 , 흥미를 가질 수가 있습니다.

 그것만이 아닙니다. 근처에서 일어난 예측도 하고 있지 않는 사건에 대해 알 수가 있을 가능성도 있습니다. 검색 엔진으로 화제를 찾는 경우는 , 미리 어떠한 정보가 있는지 , 어느 정도 예측해 실시하게 됩니다. 예측이 없으면 검색 키워드도 생각해 떠오르지 않기 때문입니다. 즉 , 완전히 예측할 수 없는 화제에는 도달할 수 없습니다. 그러나 , 지도로부터 브로그를 찾는다고 하는 것이 되면 , 화제는 지역에 의해 한정되게 되므로 , 화제의 내용은 천차만별이 됩니다. 예를 들면 더러운 강이라고 생각해 주목도 하지 않았던 근처의 강에서 , 「카모의 부모와 자식이 헤엄치고 있었습니다」라고 하는 것 같은 브로그 기사를 보는 것으로 , 새로운 발견이 있을지도 모릅니다.

 기술적으로는 ,Google이 제공하는 지도상에 , 다른 정보를 거듭해 맞추어 이용하고 있는 점에 주목해 봅시다. Dynamic HTML(이)란 , 그것을 가능으로 하는 유연한 시스템인 것과 동시에 ,Google Maps API그것이 , 이러한 이용 방법을 상정해 개발되고 있는 것도 사실입니다. 이제(벌써)1개 , 「지도 일기란?」(을)를 클릭하면(자) , 반투명 윈도우가 서서히 라고 표시되는 열중한 특수 효과에 주목해 봅시다. 이런 성적 매력이 있는 비주얼 연출을 용이하게 가르칠 수 있는 곳(중)이 ,Ajax의 장점의1개입니다. 향후는 , 이러한 비주얼 효과를 서로 경쟁하는 장면도 많아지겠지요.

하이라이트3·주도권을 가진 서버가 , 데이터를 브라우저에 푸쉬 계속 한다

 데이터의 푸쉬 기술을 제공하는 제품입니다. 즉 , 서버가 주도권을 가져 , 데이터를 클라이언트에 계속 송신하는 기능을 제공하는 제품입니다. 구체적으로 어떠한 방법으로 그것을 실현하고 있는지는 확인할 수 없지 않았습니다만 , 데모를 보면(자) 리얼타임에 차례차례로 주가가 써 교체되어 가는 곳(중)이 상쾌합니다.

 아마 , 정직하게XMLHttpRequest오브젝트를 사용해1회씩 서버에 데이터를 요구한다고 하는 스타일과는 별도로 , 이와 같이 다이나믹한 데이터 송신을 실시하는 기술도 사용되어 가게 되겠지요.

 그리고 , 그러한 시스템을 제로로부터 써 일으키는 것이 아니라, 이러한 제품을 활용해 개발을 실시하는 일도 많아지는 것은 아닐까 생각합니다. 스스로JavaScript로 쓰면 공짜인데 , 혹은 누군가가 쓴 소스를 카피하면 공짜인데 , 돈을 내 사는지? 그렇다고 하는 의문을 가지는 사람도 있다고 생각합니다만 , 그렇습니다. Ajax에는 , 인터넷에 만연하는 「뭐든지 무료로 손에 넣지 않으면 기분이 내키지 않는 무료병」을 극복하는1개의 계기가 되면 좋겠다고 생각하고 있습니다. 비록 형태가 없는 소프트웨어여도 , 그것을 개발하거나 유지해 가기 위해서(때문에)는 돈이 걸립니다. 단지 소프트웨어란 , 그 코스트를 개발자에게 부담시키거나 기부에 의지하는 것에 의해 성립하고 있는 것이며 , 코스트가 존재하지 않는 것은 아닙니다. 개발자 본인이 자발적으로 공짜로 좋으면 표명한다면 좋습니다만 , 결코 개발자에게 공짜로 제공하는 것을 강요해선 안 된다고 생각합니다.

하이라이트4·복수의Web서비스의 복합기술 Qooqle

 Yahoo(와)과Amazon의 검색을 동시에 실시합니다. 동시에Google Suggest로 입력 보완을 해는이라고북마크에 등록수에 의해 검색 결과의 문자를 크게 표시합니다. 그 모습은 , 확실히 상기의 사이트에“Ajax”이라고 입력해 검색해 보면 잘 압니다. 우선 , “Aj”까지 입력한 시점에서 후보 캐릭터 라인에“ajax”이 표시됩니다. 검색을 실행하면(자) ,Ajax관계의 서적이 아마존의 검색에 의해 표시된 아래에 , 사이트의 검색 결과가 표시됩니다. 그 때 , 는 이라고 북마크에 등록된 사이트가 큰 문자로 표시됩니다.

 이러한 복수의Web서비스의 복합기술은 , 확실히 「Ajax은 무엇이든지 있어」라고 하는 주의를 체현 하고 있는 것 같은 존재라고 할 수 있습니다. 그렇다고는 해도 , 「무엇이든지 있어」라고 하는 것은 기술적인 의미에서의 이야기이며 , 이러한 사이트가 실용 시스템으로서 운용 가능한가라고 하는 것은 다른 문제입니다. 예를 들면 ,Google은 검색 결과의 페이지에 표시되는 광고의 클릭으로부터 수익을 얻고 있는 것입니다만 , 이 시스템을 경유하는 경우에는 그 수익을 얻을 수 없습니다. 그러나 , 이 페이지를 통해 아마존에는 이익이 주어집니다. 자사에 이익이 없는 곳인가 타사에 이익을 주는 용법으로 , 자사의Web서비스의 기능을 제공하는 것이 허락될까는 다양한 판단이 있는 세계지요. 즉 , 반드시 가능하다고는 말할 수 없다고 하는 것입니다. 영속적으로 운용되는지 어떤지 모르기 때문에 , 이 페이지에는 빨리 액세스 해 재미를 즐겨 두는 것을 추천합니다.


그 다른 볼거리

 Ajax(와)과 거기에 관련하는 화제를 소개합니다.

바 그래프가 부쩍부쩍 성장하는Web투표

 Ajax에 의한 투표 시스템입니다. 투표하면(자) 결과가 리얼타임에 표시됩니다. 그리고 , 꽤 예쁜 비주얼 효과도 붙어 있습니다. 스크롤 바에 마우스 포인터를 두는 것만으로 스크롤 하거나 막대 그래프도 천천히 성장해 가는 애니메이션 첨부로 표시됩니다. 단지 선택해 투표하는 것 뿐이라면 , 투표 시스템이라고 하는 것은 , 기술적으로 그다지 어려운 것으로는 없습니다. 그러나 , 이러한 비주얼 효과를 붙여 , 모두가 공유하면(자) 즐거운 툴이 된다고 말할 수 있습니다.

AJAX데이터의 교환을 알 수 있는GIF인디케이터(indicator)

 XMLHttpRequest오브젝트로 통신을 하고 있어도 ,Web브라우저의 로딩 아이콘은 동작하지 않습니다. 그것에 의해 , 지금 통신을 하고 있을지 어떨지 이용자가 판단할 수 없다고 하는 문제가 발생합니다. 즉 , 통신을 실시하는 버튼을 클릭한 후 , 아직 새로운 데이터가 도착해 있지 않기 때문에 갱신되어 있지 않은 것인지 , 그렇지 않으면 우연히 새로운 데이터에 변화가 없고 , 표시가 변함없는 것뿐인가 , 구별을 할 수 없습니다. 그런데 , 통신중은 , 그것을 나타내는 인디케이터(indicator)를 표시하면 좋다고 여겨지고 있습니다. 여기에서는 , 거기에 사용하는데 적합한 퍼블릭 도메인(저작권이 방폐되고 있다 ) 의 애니메이션GIF파일이 몇개인가 공개되고 있습니다. 기술에는 자신이 있지만 , 디자인은 너무 자신있지 않는 독자는 , 이런 파일을 활용해Ajax어플리케이션을 써 보는 것도1개의 손이지요.

 그런데 , 여기서 이 페이지를 소개한 것은 , 이런 작은 곳부터 궁리를 겹쳐 쌓는 여지가 있다고 하는 것을 나타내기 (위해)때문입니다. 예를 들면 , 디자인에 자신이 있는 독자이면 , 이것보다 좀 더 근사하고 보기 쉬운 인디케이터(indicator)를 작성해 , 많은 사람에게 사용한다고 하는 도전이 있습니다. 아직 정평이 정해져 있지 않은Ajax의 세계이기 때문에 , 지금이라면 거기에 도전할 수가 있습니다.

Flash(와)과JavaScript를 제휴되는 툴 킷

 이런 것도 존재한다……라고 하는 것으로 , 가볍게 소개만 해 둡니다. Flash(와)과JavaScript를 제휴되는 툴 킷입니다.

 Ajax의 라이벌이라고 주목받는Flash입니다만 ,Flash이라고JavaScript는 공존할 수도 있습니다. Ajax어플리케이션이어도 , 부분적으로Flash를 사용한다고 하는 선택지요. vender에 대해서 갖고 싶은 것을 계속 주장해 , 정말로 오는지 어떤지도 확실하지 않는 미래를 기다리는 것이 아니라, 벌써 있는 것은 뭐든지 사용해 지금 곧 서비스를 만들어내는 것이Ajax류입니다. 비록 라이벌의 것Flash에서 만나도 , 그것을 사용할 수 있다면 사용해 버려야 하는 것이지요.

Firefox용무의JavaScript디버거

 이것도 , 이러한 것이 존재한다고 하는 가벼운 소개만. Firefox용무의JavaScript디버거입니다.

 실제로Ajax시스템을 개발하고 있을 때 곤란한 것이 디버그입니다. 예를 들면 ,Visual Studio을 사용하면JavaScript프로그램의 디버그도 할 수 있습니다만 , 그것은Internet Explorer위에서만 가능해집니다. Firefox그리고 조우한 트러블의 해결에는 사용할 수 없을지도 모릅니다. 그 경우는 , 이러한 툴시지요.

 그런데 , 디버그 환경은 ,Web브라우저의 종류 마다 생각하지 않으면 안 되는 것이 ,Ajax의 괴로운 곳의 하나입니다. 모든Web브라우저의 디버그 환경을 정돈한다는 것은 , 아마 현실적으로는 불가능하겠지요. 이것에 대해서는 , 모든Web브라우저로 정상적으로 동작시키려는 생각 그 자체가 실수는 아닐까 필자는 생각합니다. 그것은 , 너무나 허들이 너무 높은 요구입니다. 몇개(살)의Web브라우저를 서포트할까는 개발자의 판단하기 나름으로 바뀐다고 생각하므로 기준은 없습니다. 그러나 , 마이너스적인Web브라우저는 서포트 대상외가 되는 것이 많아질 것이다……라고 하는 것은 용이하게 예측할 수 있습니다. 즉 ,Ajax은 모든Web브라우저의 평등은 보증하지 않고 , 오히려Web브라우저의 도태를 추진하는 것 같은 생각이 듭니다. 현시점에서 ,Internet Explorer라고Firefox의 지위는 평안무사라고 생각합니다만 , 다른Web브라우저는 지금부터가 중대국면은 아닐까 생각합니다.

 덧붙여서 , 이러한 도태는 소프트웨어가 보급하는 프로세스로 필연적으로 발생하는 자연스러운 흐르고입니다. 다양한 이유로부터 , 대다수의 유저가 이용하는 소프트웨어의 종류는 소수에 수렴(수련) 합니다. 그리고 , 그러한 소프트웨어가 어이없이 지는 요구가 항상 존재해 , 그것들을 계속 적극적으로 서포트하는 한 , 마이너스적인 소프트웨어가 멸망할 것은 없습니다.


prototype.js 1.4.0(을)를 읽는

 prototype.js(은)는Sam Stephenson씨에 의해 쓰여졌다JavaScript의 라이브러리입니다. 강력한 기능을 다수 포함해 ,Ajax어플리케이션의 개발의 힘이 되어 주는 것입니다.

 그러나 , 여기서 이것을 채택한 것은 ,prototype.js을 소개하기 위해(때문에)가 아니고 , 그것의 원시 코드를 읽는다고 하는 것이 , 보다 딥인JavaScript이해에의 하나의 입구가 될 수 있다고 하는 것을 나타내기 (위해)때문입니다. 유감스럽지만 , 필자도 상기의 문서를 읽어 , 「알았다」라고 명쾌하게 단언할 단계에는 달하고 있지 않습니다. 그러나 , 거기에 훌륭한 원시 코드가 있어 , 그것을 해석한 문장이 있다고 하는 사실은 , 거기에 도전해야 할 목표가 있는 것을 명쾌하게 가리키고 있습니다. 그리고 ,JavaScript와는 훌륭한 프로그램 언어이며 , 도전하는 것에 적합하다고 필자는 생각합니다.

 그러나 , 왜 원시 코드를 읽는 것일까요? 자주 있는 교환입니다만. 「프로그램이 잘 되려면 어떻게 하면 좋습니까?」 「소스를 읽어라!」

 마지막에

 이번은 새로운 화제도 , 낡은 화제도 합쳐 보내 드렸습니다. 그러나 ,Ajax에의 주목도가 높아지고 있는 지금 , 새롭게 흥미를 가진 독자로부터 봐 , 새로운 화제도 낡은 화제도 이와 같이 신선하게 느껴진다고 생각합니다.

 그리고 ,Ajax의 상식은 아직 굳어지고 있지 않습니다. Ajax(을)를 다 안 사람이어도 , 아직도 신선한 무엇인가가 튀어 나올 가능성은 부정할 수 없습니다. 아직도Ajax를 웟치 하는 것은 , 두근두근 하는 것 같은 멋진 체험으로 계속 되겠지요!

'WEB' 카테고리의 다른 글

Ajax를 소개합니다.  (0) 2007.08.14
HTML에서 padding  (0) 2007.07.04
Ruby and AJAX  (0) 2007.04.27
자바 프로젝트  (0) 2007.03.13
XML to PDF  (1) 2007.03.12
WEB
posted by 구름너머 2007. 4. 27. 17:00

1.설치

http://blog.naver.com/choibit?Redirect=Log&logNo=140036224421

2.공식사이트 Ruby 

오픈소스 프로그래밍언어 루비, 매뉴얼 및 튜토리얼 다운로드 제공.

3.ajax

http://blog.naver.com/hmsong95?Redirect=Log&logNo=130014025345

프로그래밍 루비(Programming Ruby)
Dave Thomas, Andy Hunt, Chad Fowler| 강문식, 양석호, 박지인| Insight (인사이트)| 2007.01.20 | 1,100p | ISBN : 9788991268258
평점 7.50 2 참여| 네티즌리뷰 2건| 미디어리뷰 0건
가격 39,000원 → 최저가 35,100가격비교
책찜하기 구매하기 리뷰쓰기
책 정보네티즌리뷰가격비교
종합 | 책소개 | 작가소개 | 목차
책 소개
루비스트 사이에서 곡괭이(PickAxe)로 알려진 『프로그래밍 루비』의 2판의 번역서.
루비가 세상에 나온 지 벌써 12년이 넘었지만, 최근 몇 년간 루비의 위상은 정말 놀라울 정도로 변화하고 있다. 이런 변화의 중심에는 루비의 킬러 애플리케이션인 레일스(Rails)가 있다. 레일스는 루비의 장점을 잘 살렸기 때문에 현재의 위치에 이를 수 있었고, 또 레일스가 기꺼이 루비의 생산성과 실용성을 증명해준 셈이다.
이런 성공의 후면에는 루비만의 독특한 철학이 있다. 루비는 기계나 컴파일러가 아닌 '프로그래머'를 위한 언어다. 루비 개발의 가장 큰 미덕은 그 코드를 작성하는 프로그래머를 행복하게 한다는 것이다. 코드의 간결함으로 탄성을 지르게 하고, 입가에 웃음을 짓게 한다.

이 책을 이용하면 이런 일들을 쉽게 할 수 있다.
* 루비 기초를 배운다. 클래스, 객체, 예외 등 익숙한 개념 뿐 아니라, 반복자, 믹스인, 스레드 등 고급기능도 배울 수 있다.
* CGI 스크립트, XML, SOAP, 템플릿 시스템을 이용해 웹 애플리케이션을 만든다.
* 여러 플랫폼에서 동작하는 GUI 애플리케이션을 만든다.
* 마이크로소프트 윈도우 네이티브 API에 접근하고, 윈도우 애플리케이션을 자동화한다.

이 책을 통해 얻을 수 있는 것
* 루비를 사용하기 위한 친절한 자습서
* 완벽한 언어 참조 매뉴얼

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

[별책]라이브러리 레퍼런스(Ruby Library Reference)

루비로 개발을 할 때 자주 찾게 되는 라이브러리 레퍼런스를 별책으로 제공한다. 별책에는 다음 내용이 담겨있다.
* 모든 내장 클래스, 모듈, 메서드에 대한 문서
* 98개의 표준 ... [강컴닷컴 제공] 더보기
이 책의 통합검색 결과보기 | 책소개 모두보기
TOP
작가 소개
저자 | Dave Thomas
Dave Thomas, Andy Hunt, Chad Fowler
Dave Thomas는 루비 커뮤니티의 주춧돌 같은 사람이며, 앞장서서 커뮤니티의 혁신적인 방향과 독창성을 보여주고 있다. 그와 공저자인 Andy Hunt는 Pragmatic Programmers와 Pragmatic Bookshelf의 설립자다. Chad Fowler는 루비 센트럴의 codirector로서, 루비 커뮤니티에서 활발하게 활동하며 추진력을 보여주고 있다.


강문식 (deepblue@myruby.net)
NHN에서 일했고, 현재는 오픈마루 스튜디오에서 루비스트로 일하며, 더 나은 웹을 만들기 위해 곡괭이질에 한창이다. 행복한 프로그래머가 꿈이며, 요즘 가진 화두는 꾸준히 개선되는 코드다. 한국 루비 사용자 모임(http://rubykr.org)을 운영하고, 루비 공식 홈페이지의 한국어 섹션을 만들었다. 개인 블로그인 ht... [강컴닷컴 제공] 더보기
작가의 통합검색 결과보기 | 작가소개 모두보기
TOP
목차

한국어판 서문
역자 서문
1판 추천사
2판 추천사
서문
책에서 사용한 표기법
로드맵

1부 루비 기본 다지기
1장 루비 시작하기
2장 Ruby.new
3장 클래스, 객체, 변수
4장 컨테이너, 블록, 반복자
5장 표준 타입
6장 메서드 ...

[알라딘 제공] 더보기

'WEB' 카테고리의 다른 글

HTML에서 padding  (0) 2007.07.04
AJAX 관련  (0) 2007.05.28
자바 프로젝트  (0) 2007.03.13
XML to PDF  (1) 2007.03.12
LDAP기술과 표준화 동향  (0) 2007.01.05