맥에 jdk를 설치하면, jdk7부터는 /Library/Java/JavaVirtualMachines/ 아래 설치됩니다. 시스템 환경변수에서 중요한 것이 JAVA_HOME인데, 이 경로를 참고해서 설정을 해야할 것입니다.


이를 편하게 변경하는 기능을 만든 것이 있습니다.

http://www.guigarage.com/downloads/jvc.jar

다운로드를 받으면 적당한 위치로 옮기고, 터미널에서 다음과 같이 명령을 내리면 됩니다.

java -jar jvc.jar



원하는 버전을 선택하고 아래 set Version 버튼을 클릭하면 됩니다. 시스템 비번을 입력하면 설정이 완료됩니다.

터미널을 새로 띄우고, 아래 명령으로 확인합니다.


java -version


참고: http://www.guigarage.com/2013/02/change-java-version-on-mac-os



^^;

http://www.captainforever.com




화면처리 레이어(Presentation Layer)

화면처리 레이어는 MVC(Model-View-Controller) 패턴에서 View에 해당합니다. 화면처리 레이어의 구성은 다음과 같습니다.  


<그림> 화면처리 레이어 구성  




Spring MVC, Internationalization, Ajax Support, Security, UI Adaptor 이상 5가지 기능을 제공합니다.  


MVC 패턴의 프레임워크는 스프링 MVC, 스트럿츠(Struts), 웹워크(Webwork) 등이 있지만, 표준프레임워크에서는 스프링 MVC를 채택하였습니다.  


국제화(Internationalization) 기능은 다국어를 처리하는 방법입니다. 스프링 MVC의 LocaleResolver를 이용합니다. 브라우저 헤더, 세션, 쿠키 등에 있는 언어 정보를 이용해서 해당 언어로 페이지를 보여주는 기능입니다.  


Ajax 지원은 AjaxTags 라이브러리를 이용합니다. Ajax를 이용해 자주 사용되는 기능을 custom tag형태로 제공합니다.  


인증, 권한 같은 일반적인(통상적인) 개념의 Security 서비스는 Spring Security를 활용한 공통기반 레이어에

서 제공합니다. 화면처리 레이어의 Security 서비스는 입력값 유효성 검증 기능을 제공한다. 스프링과 연결되는 자카르타 커먼스 밸리데이터(Jakarta Commons Validator)를 이용합니다.  


UI 어댑터는 표준프레임워크와 RIA(Rich Internet Application) 솔루션을 연결하기 위한 기능입니다. 마이플랫폼 등의 상용 솔루션과 연결을 지원하는 기능입니다.  


전자정부 표준프레임워크의 실행환경은 애플리케이션 프레임워크와 라이브러리 39가지가 8개의 서비스 그룹으로 구성되어 있습니다.



그림과 같이 공통기반 위에 화면처리, 업무처리, 데이터처리, 연계통합, 배치처리, 모바일 화면처리, 모바일 디바이스 API 레이어(Layer)들이 있습니다. 


공통기반 (Foundation Layer) 

공통기반 레이어는 아래 그림과 같이 구성되어 있습니다. 20가지 기능별 컴포넌트들은 실행환경의 각 레이어에서 공통적으로 사용되는 기능을 제공합니다.    



AOP, Cache, Compress/Decompress, Encryption/Decryption, Excel, File Handling, File Upload/Download, FTP, ID Generation, IoC Container, Logging, Mail, Marshalling/Unmarshalling, Object Pooling, Property, Resource, Scheduling, Server Security, String Uril, XML Manipulation 이상 20가지의 공통기능을 제공합니다.

이 중에서 가장 주의깊게 봐야할 것이 IoC Container입니다. 스프링의 핵심이고, 이것을 기준으로 표준프레임워크의 애플리케이션 패턴이 이루어집니다. 나머지 기능들도 각기 중요한 역할을 하기 때문에 후반에 하나씩 살펴보겠습니다.   



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

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

경력 15년

멘토링 그룹 6개 배정받음

2시간씩 한달에 팀별로 두 번 이상 권장

시간당 컨설팅비 1/3에 해당하는 금액


메일로 언제든 요청하라고 멘티.님.들에게 부탁했지만

한 팀 이외에는 감무...


6*2*2=24

한 달에 24시간 내기가 어렵나 싶었는데,


한 달에 8시간 내기가 슆지 않았습니다. 

약속 잡고, 활동 보고서 멘티와 함께 쓰고,

사진 찍고,







멘토링 멀.티.로. 잘 하시는 분들 존경합니다. ^^ b

<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>


http://youtu.be/daC2EPUh22w


엑셀의 경쟁제품 numbers는 다릅니다. 달라도 너.무. 다릅니다.

엑셀의 가장 좋은 기능 중 하나는 테이블 통계를 내는 피벗 테이블(pivot table) 기능입니다.


그런데 numbers에는 이 메뉴가 없고 대신 "이 열 단위로 카테고리화"라는 기능이 있습니다.


아래 순서대로 스크린샷을 따라하시면 됩니다.


컬럼 상단을 클릭하면 우측에 역삼각형이 나오고 메뉴에서 "이 열 단위로 카테고리화"라는 메뉴를 선택합니다.


항목별로 정렬이 되어서 나타납니다. 좌측 화살표를 클릭해서 접을 수 있습니다.


접고난 뒤에 옆 빈 셀의 역삼각형을 클릭하면 소계, 평균, 최소, 최대, 개수 등의 항목이 나옵니다. 


개수를 선택하면 피벗테이블과 비슷한 결과를 볼 수 있습니다. 


+ Recent posts