가장 많이 사용되는 자바스크립트 라이브러리 jQuery가 2.x대로 업그레이드 되었습니다. 

1.x대 버전과 똑같은 API를 사용하는 특징이 있어서, 호환성이 그대로 유지됩니다만,

1.x대 버전과 가장 큰 차이점은 더 이상 ie 6,7,8 버전을 지원하지 않는다는 것입니다.


이 글을 쓰는 시점에 최신 배포되는 1.10.2.js 의 크기는 266.80KB 입니다. 

http://code.jquery.com/jquery-1.10.2.js


똑같은 기능을 하지만, ie6,7,8을 지원하지 않는 2.0.3.js는 다음과 같이 크기가 236.47KB입니다.

http://code.jquery.com/jquery-2.0.3.js


10% 정도의 코드량이 감소했습니다. 압축된 버전도 90KB 대 81KB로 약 10%정도의 차이가 납니다.

http://code.jquery.com/jquery-1.10.2.min.js

http://code.jquery.com/jquery-2.0.3.min.js


호환성을 위해서 이전 버전을 지원할 것이냐, 깔끔하게 털고 갈 것이냐의 결정은 언제나 어렵습니다. jQuery쪽에서도 2.x 사용에 대한 조건이 있습니다. 

"Since IE 6/7/8 are still relatively common, we recommend using the 1.x version unless you are certain no IE 6/7/8 users are visiting the site." from: http://jquery.com/download/

"IE 6/7/8 버전이 여전히 보편적이기 때문에, 사이트에 IE 6/7/8 사용자가 안 올 것이라는 확신이 없다면 1.x 버전 사용을 권장합니다."


쉽지 않은 작업을 잘 해내는 듯한 팀입니다.

https://github.com/jquery?tab=members

현재 46명의 개발자들이 협업을 하고 있습니다.


jQuery를 만든 친구, John Resig은 jeresig 아이디를 씁니다.

외부 파일을 불러와서 웹페이지에 표시를 하는 가장 간단한 방법입니다. 

index.html

jquery-2.0.3.min.js

file.txt


순서로 페이지에 로딩됩니다.

http://gmyenu.appspot.com/gmyenu.jsp


Words

  • 교육(education)과 강의(instruction)는 다른 개념이다. 강의는 수학, 과학, 지리, 역사를 머릿속에 입력해 주는 것이지만, 교육은 강의를 통해 입력한 지식을 어떻게 삶에 적용하고 미래에 활용할지를 바르게 알도록 해 주는 것이다. 대다수의 학교는 강의에는 능숙하지만 진정한 교육은 잘 하지 못하는 것 같다. 
    (협동조합으로 기업하라, 스테파노 지마니 지음, 송성호 옮김, 붇돋움, p215)

안녕하세요.

메일 많이 기다리셨죠.

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


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

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 버튼 클릭하시면 다운로드 가능합니다.

<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script> <script type="text/javascript"> var data = [32, 57, 112], dataEnter = data.concat(293), dataExit = data.slice(0, 2), w = 360, h = 180, x = d3.scale.ordinal().domain([57, 32, 112]).rangePoints([0, w], 1), y = d3.scale.ordinal().domain(data).rangePoints([0, h], 2); window.onload = function() { var svg = d3.select("#chart-2").append("svg") .attr("width", w) .attr("height", h); svg.selectAll(".little") .data(data) .enter().append("circle") .attr("class", "little") .attr("cx", x) .attr("cy", y) .attr("r", 12); d3.select("#chart-2 button").on("click", function() { svg.selectAll(".select").remove(); svg.selectAll(".select") .data(data) .enter().append("circle") .attr("class", "select") .attr("cx", x) .attr("cy", y) .attr("r", 60) .style("fill", "none") .style("stroke", "red") .style("stroke-opacity", 1e-6) .style("stroke-width", 3) .transition() .duration(750) .attr("r", 12) .style("stroke-opacity", 1); }); } </script> </head> <body> <div id="chart-2"> <button>Run</button> </div>


모바일쪽은 보강해야겠습니다.
강의자료 첨부합니다.
모두 수고하셨습니다.

 
크롬브라우저가 전세계적으로 20%를 차지한다는 기사에 OKJSP의 브라우저 통계를 내보았습니다.
지난달 OKJSP는 19%정도 되는군요. 9위에 위치한 RockMelt도 크롬 엔진 기반 브라우저입니다.

2011년



1년 전에는 다음과 같습니다.


2010년


2009년


2009년부터 2011년을 보면 IE의 점유율 하락에 가속도가 붙은 것 같습니다. 


JSP를 돌리기 위해서 그리고 여러 서버를 설치해서 테스트하고 싶은 경우 기존 서버 호스팅보다 저렴하게 이용할 수 있는 서비스입니다.

http://cs.ucloud.com/ 

아마존 EC2( http://aws.amazon.com/ )와 같은 종류의 서비스이며, 아마존 서버에서 작업할 경우 느리다는 느낌이 강한데, KT 클라우드 서비스는 더 빠르고 한국어로 서비스 이용이 가능합니다.

현재 OBT를 진행 중이며, 3월에도 신규 사용 시 무료로 한달간 사용 가능하기 때문에 테스트 목적으로 사용하시기에 부담이 없으실 겁니다. 
 




1년 약정일 경우 약 30% 정도 저렴합니다.

저는 테스트하기 위해서 무약정으로 신청했습니다. 또 3월 한 달은 무료로 사용하는 이벤트 중으로 알고 있습니다.

생성 후 바로 부팅이 됩니다.



root 비번이 자동생성되어집니다. 접속 후에 바꿔야죠.

콘솔 페이지에서 확인이 가능하죠. 콘솔뷰를 클릭하면 putty 프로그램을 다운받아서 접속하도록 가이드합니다. 저는 맥이기 때문에 별도의 프로그램이 필요하지 않았습니다. terminal 실행해서 접속시도할 수 있습니다.


네트워크의 포트 포워딩 서비스를 통해서 외부에서 접속할 포트를 추가합니다. ssh는 22번 포트죠.






접속해서 root 패스워드부터 변경합니다. ssh root@......

서비스 트래픽이 많아지는 경우 Load Balancer 기능을 통해서 하나의 IP로 여러 서버에 분산처리가 가능합니다.


좋은 서비스가 되어서 많은 개발자들과 벤처들에게 희망을 주었으면 좋겠습니다.

소셜 네트워킹 서비스가 많아짐에 따라서 집중하기 힘든 세상이 되었습니다. 옛날에는 이메일만 보면 되었는데, 오프라인에서는 삐삐만 확인하면 오케이였는데, 많이 변했습니다.
Facebook 아이디가 있으면 편하게 사용할 수 있는 로그인해야 쓸 수 있는 브라우저가 있습니다. 몇 달 전에 나왔는데, 이제야 쓰게 되네요.
http://www.rockmelt.com/ 바위를 녹일만한 브라우저 같습니다. 로고가 그렇게 생겼네요. 지구위의 네트워크 표시를 하다보니 바위가 녹는 형상입니다. 

크롬브라우저 기반 위에 싹 바꿨습니다. 소셜 네트워킹에 최적화 된 것이죠. Webkit 개발도구인 WebInspector도 포함되어서 개발용으로 쓰기에도 무리가 없습니다만, 산만한 개발자들에게 최적화되어 있습니다. 좌측에는 페이스북 로그인 한 목록이 나오고 우측에는 RSS기반의 피드들이 나옵니다. 
현재 보고 있는 페이지에 RSS가 지원이 되는 경우 추가도 쉽게 됩니다.


PopOver뷰로 내용도 쉽게 볼 수 있습니다.

좀 더 써 봐야겠습니다.

어제 작지만 재밌었던 모임이 있었습니다. 이원석 박사님의 사회로 html5 kig 바캠프에 참석하였고, html5관련된 이야기들로 유익한 시간을 가졌습니다.
간단히 메모한 마인드맵 첨부합니다.
그리고 제가 발표했던 HTML5 of OKJSP 마인드맵도 첨부합니다.


+ Recent posts