github 화면이 개편되었네요.

URL이 우측하단으로 옮겨졌습니다.

상단의 색상 라인은 언어의 분포입니다.

OKJSP는 반반입니다. 자바 반, 자바스크립트 반



https://github.com/okjsp/okjsp-site




메이븐의 scope는 compile, runtime, test, provided, system 이 있습니다. 이 중에서 custom jar를 관리하기 위해서 system scope를 지정해서 사용했었는데, war파일 패키징에서 누락되게 됩니다. WEB-INF/lib 폴더에 복사되지 않는다는 뜻입니다. 이 때문에 다음과 같이 코드를 작성했다면, in-project 저장소를 구성해서 변경하는 것이 좋습니다.


<!-- custom -->

<dependency>

    <groupId>Acme.JPG</groupId>

    <artifactId>AcmeGif</artifactId>

    <version>1.0.0</version>

    <scope>system</scope> 

    <systemPath>${basedir}/libs/AcmeGif-1.0.0.jar</systemPath> 

</dependency>


<dependency>

    <groupId>com.cubrid</groupId>

    <artifactId>cubrid-jdbc</artifactId>

    <version>8.3.1.0152</version>

    <scope>system</scope> 

    <systemPath>${basedir}/libs/cubrid-jdbc-8.3.1.0152.jar</systemPath> 

</dependency>


위 세팅을 다음과 같이 변경합니다.

<repositories>

    <repository>

        <id>in-project</id>

        <name>In Project Repo</name>

        <url>file://${project.basedir}/libs</url>

    </repository>

</repositories>


<!-- custom -->

<dependency>

    <groupId>Acme.JPG</groupId>

    <artifactId>AcmeGif</artifactId>

    <version>1.0.0</version>

</dependency>


<dependency>

    <groupId>com.cubrid</groupId>

    <artifactId>cubrid-jdbc</artifactId>

    <version>8.3.1.0152</version>

</dependency>



libs 폴더 구성도 다음과 같이 바뀝니다.


in project jars


참고: http://stackoverflow.com/questions/5597099/maven-add-jars-through-systempath-system-but-not-added-to-war-or-anywhere-else

holo dark

  1. navigation
  2. action
  3. rating
  4. collections
  5. content
  6. social
  7. location
  8. images
  9. av
  10. device
  11. alerts
  12. hardware
1-navigation-accept.png
 
1-navigation-back.png
 
1-navigation-cancel.png
 
1-navigation-collapse.png
 
1-navigation-expand.png
 
1-navigation-forward.png
 
1-navigation-next-item.png
 
1-navigation-previous-item.png
 
1-navigation-refresh.png
 
2-action-about.png
 
2-action-help.png
 
2-action-search.png
 
2-action-settings.png
 
3-rating-bad.png
 
3-rating-favorite.png
 
3-rating-good.png
 
3-rating-half-important.png
 
3-rating-important.png
 
3-rating-not-important.png
 
4-collections-cloud.png
 
4-collections-collection.png
 
4-collections-go-to-today.png
 
4-collections-labels.png
 
4-collections-new-label.png
 
4-collections-sort-by-size.png
 
4-collections-view-as-grid.png
 
4-collections-view-as-list.png
 
5-content-attachment.png
 
5-content-backspace.png
 
5-content-copy.png
 
5-content-cut.png
 
5-content-discard.png
 
5-content-edit.png
 
5-content-email.png
 
5-content-event.png
 
5-content-import-export.png
 
5-content-merge.png
 
5-content-new-attachment.png
 
5-content-new-email.png
 
5-content-new-event.png
 
5-content-new-picture.png
 
5-content-new.png
 
5-content-paste.png
 
5-content-picture.png
 
5-content-read.png
 
5-content-remove.png
 
5-content-save.png
 
5-content-select-all.png
 
5-content-split.png
 
5-content-undo.png
 
5-content-unread.png
 
6-social-add-group.png
 
6-social-add-person.png
 
6-social-cc-bcc.png
 
6-social-chat.png
 
6-social-forward.png
 
6-social-group.png
 
6-social-person.png
 
6-social-reply-all.png
 
6-social-reply.png
 
6-social-send-now.png
 
6-social-share.png
 
6_social_share.png
 
7-location-directions.png
 
7-location-map.png
 
7-location-place.png
 
7-location-web-site.png
 
8-images-crop.png
 
8-images-rotate-left.png
 
8-images-rotate-right.png
 
8-images-slideshow.png
 
9-av-add-to-queue.png
 
9-av-download.png
 
9-av-fast-forward.png
 
9-av-full-screen.png
 
9-av-make-available-offline.png
 
9-av-next.png
 
9-av-pause-over-video.png
 
9-av-pause.png
 
9-av-play-over-video.png
 
9-av-play.png
 
9-av-previous.png
 
9-av-repeat.png
 
9-av-replay.png
 
9-av-return-from-full-screen.png
 
9-av-rewind.png
 
9-av-shuffle.png
 
9-av-stop.png
 
9-av-upload.png
 
10-device-access-accounts.png
 
10-device-access-add-alarm.png
 
10-device-access-alarms.png
 
10-device-access-battery.png
 
10-device-access-bightness-low.png
 
10-device-access-bluetooth-connected.png
 
10-device-access-bluetooth-searching.png
 
10-device-access-bluetooth.png
 
10-device-access-brightness-auto.png
 
10-device-access-brightness-high.png
 
10-device-access-brightness-medium.png
 
10-device-access-call.png
 
10-device-access-camera.png
 
10-device-access-data-usage.png
 
10-device-access-dial-pad.png
 
10-device-access-end-call.png
 
10-device-access-flash-automatic.png
 
10-device-access-flash-off.png
 
10-device-access-flash-on.png
 
10-device-access-location-found.png
 
10-device-access-location-off.png
 
10-device-access-location-searching.png
 
10-device-access-mic-muted.png
 
10-device-access-mic.png
 
10-device-access-network-cell.png
 
10-device-access-network-wifi.png
 
10-device-access-new-account.png
 
10-device-access-not-secure.png
 
10-device-access-ring-volume.png
 
10-device-access-screen-locked-to-landscape.png
 
10-device-access-screen-locked-to-portrait.png
 
10-device-access-screen-rotation.png
 
10-device-access-sd-storage.png
 
10-device-access-secure.png
 
10-device-access-storage.png
 
10-device-access-switch-camera.png
 
10-device-access-switch-video.png
 
10-device-access-time.png
 
10-device-access-usb.png
 
10-device-access-video.png
 
10-device-access-volume-muted.png
 
10-device-access-volume-on.png
 
11-alerts-and-states-airplane-mode-off.png
 
11-alerts-and-states-airplane-mode-on.png
 
11-alerts-and-states-error.png
 
11-alerts-and-states-warning.png
 
12-hardware-computer.png
 
12-hardware-dock.png
 
12-hardware-gamepad.png
 
12-hardware-headphones.png
 
12-hardware-headset.png
 
12-hardware-keyboard.png
 
12-hardware-mouse.png
 
12-hardware-phone.png

from: http://developer.android.com/design/downloads/index.html


find xhdpi -type f > darklist


awk -F / '{print "<dt><img src=\"" $0 "\"></dt><dd>" $2 "</dd>"}' darklist > dark.html


<dt><img src="xhdpi/1-navigation-accept.png"></dt><dd>1-navigation-accept.png</dd>

<dt><img src="xhdpi/1-navigation-back.png"></dt><dd>1-navigation-back.png</dd>

<dt><img src="xhdpi/1-navigation-cancel.png"></dt><dd>1-navigation-cancel.png</dd>



2013/06/05 전자정부 표준프레임워크가 나왔습니다.

MyBatis 추가된 것이 가장 눈에 띄네요. iBatis팀이 아파치 떠나서 만든 신버전이 MyBatis입니다.

Release Note
2013.06.05 : 실행환경 2.6.0 업데이트
  • apache POI 버전 업그레이드(3.2-FINAL -> 3.9)
    엑셀2007이상 버전(xlsx형식) 추가지원
  • 배치 실행환경 EgovSchedulerRunner loop 기능 추가
    ex: delayTime이 -1인 경우 loop 처리
  • 배치패키지명 변경
    egovframework.brte.core -> egovframework.rte.bat.core
  • 배치 템플릿 schema-ddl-mysql.sql 오류 수정
  • ID gen. 필드명 속성 처리
  • validation 규칙 추가(패스워드 관련)
  • validation jboss 오류 수정
  • 실행환경 MyBatis 서비스 추가


from: http://www.egovframe.go.kr/EgovRunEnvRelease.jsp?menu=3&submenu=1


Release Note
2013.06.05 : 개발환경 2.6.0 릴리즈
  • 기존 버전 패치 및 업그레이드 
    - 이클립스 버전 업그레이드(Juno SR1 -> Juno SR2)
    - 배치 개발환경 영문 메시지 추가
    - 배치 운영환경 DDL 수정(FILE_CN : BLOB => CLOB)
    - Amateras UML 버전 업그레이드(1.3.2 -> 1.3.4) : JDK 1.7에서 UML 저장 오류 수정
    - 표준프레임워크 플러그인 설치시 배치 플러그인 라이선스 미표시 수정
    - 템플릿 소스 수정 : 엔터프라이즈 EgovNoticeInqire.jsp
    - eGovFrame Mobile Project Example DB 방식 변경 (embedded hsql)
    - eGovFrame Web Project example DB 방식 변경 (embedded hsql)
    - 공통컴포넌트 / 모바일 공통컴포넌트 마법사 기능 추가 : 마법사 기능을 이용해서 cubrid 생성시 오류 수정
    - 개발환경 템플릿 JDK 버전 변경(1.5 -> 1.6)
    - splash 이미지 변경(2.5 -> 2.6)

개발 추천 JDK도 1.6으로 업그레이드 되었네요.

from: http://www.egovframe.go.kr/EgovDevEnvRelease.jsp?menu=3&submenu=2


계속 업그레이드 되는군요. 화이팅입니다.

개발환경 도구 다운로드 링크


요즘 파이썬을 배우는 분들에게 추천해 봅니다. python2.5버전 기준의 개(GAE; Google App Engine)를 설명합니다만 300페이지 안되는 분량에서 제법 많은 것들을 다뤄줍니다. 웹 프레임워크는 Django(장고)를 사용합니다.


구글 앱 엔진에 파이썬으로 프로그래밍을 시작하는 분들에게 적합합니다. 그리고 웹 개발을 처음 배우시는 분들에게 HTML, CSS, JavaScript, jQuery까지 단계적으로 핵심을 알려줍니다. 초고속 과외라고 할 수 있습니다. 


구글 앱 엔진을 통해서 배우는 파이썬이라고 총평하고 싶네요.




http://www.appenginelearn.com/

원 저자 찰스 세프란스가 운영하는 페이지입니다. 강의 PDF와 책의 예제를 다운로드 받을 수 있습니다. 

번역도 무난하게 잘 되어 있습니다. 역자주도 개념을 잡는 데 도움을 줍니다.


http://okae-12-ajax.appspot.com/

ae-12-ajax.appspot.com 을 올려보았습니다. 

주의) 회원가입시 사용한 비번은 회원들에게 보여집니다. ^^;



삭제, 탈퇴는 관리자만 가능합니다.

http://appengine.google.com







C:\eGovFrameSvr\bin\start.bat 를 실행하면 윈도우 서비스 자동 시작입니다.

svnserve 시작되고, tomcat 시작됩니다.

허드슨과 넥서스는 http://localhost:7070/hudson , http://localhost:7070/nexus 으로 접속 가능합니다.



eGovFrameSvr은 http://goo.gl/lDgVK 에서 로그인 후 다운로드 할 수 있습니다.


메이븐, 빌드 도구

허광남 kenu.heo@gmail.com

메이븐은 아파치의 오픈 소스 빌드 도구입니다. http://maven.apache.org 사이트에서 정보를 구할 수 있습니다. 빌드란 프로그램 소스의 컴파일을 포함해서 애플리케이션을 사용할 수 있도록 패키징까지 해주는 과정입니다. 개발환경 도구에는 메이븐의 이클립스 플러그인이 함께 설치되어 있습니다. m2eclipse라는 플러그인이며, 이클립스에서 메이븐을 쉽게 사용하도록 도와주는 기능을 제공합니다.

메이븐 프로젝트 소스 구조

메이븐은 설정보다 관례(CoC;Convention over Configuration)라는 컨셉으로, 먼저 나왔던 ANT(http://ant.apache.org) 빌드 도구와 달리 빌드의 설정을 자유롭게 하는 대신 지정된 규칙에 따라 코드를 위치시키면 컴파일, 패키징, 문서화 등의 나머지 작업들을 자동으로 수행해 줍니다.

자바 라이브러리 일괄 관리

메이븐은 여러 프로젝트에 중복 산재해 있는 자바 라이브러리(JAR)를 한 곳에서 관리합니다. 일반적으로 프로젝트에서 소스코드가 차지하는 용량이 3~5메가라고 하면 jar파일의 크기는 30~50메가가 넘는 경우가 많습니다. 이런 경우 버전관리 시스템에서 제외시켜서 관리할 수 있다면 매우 가볍게 작업이 가능합니다.
메이븐은 사용자 홈 디렉토리를 기준으로 .m2 라는 폴더를 만들어서 repository 폴더 하위에 인터넷에서 다운로드 받은 jar 파일을 관리합니다. pom.xml 에서 지정된 라이브러리들을 필요에 따라 복사하거나 참조해서 사용합니다.

메이븐 설치

전자정부 표준프레임워크의 개발환경 서버를 설치하면 메이븐이 함게 설치됩니다. JAVA_HOME 환경변수 같이 MAVEN_HOME을 지정하고, PATH에 추가해도 되지만 메이븐/bin, 폴더만 PATH 환경변수에 추가하겠습니다. 컴퓨터 아이콘을 클릭하고, 컨텍스트 메뉴에서 속성을 선택합니다.
<그림> 환경변수 설정 시작



제어판의 좌측에서 고급 시스템 설정을 클릭합니다.
<그림> 고급 시스템 설정



하단의 시스템 변수에서 Path 항목을 선택합니다. 여기에 들어갈 값은 빌게이츠 친구 탐색기에서 복사할 수 있습니다.
<그림> 시스템 변수 Path



탐색기를 열어서 C:폴더에 들어갑니다. 주소줄을 클릭해서 복사합니다.
<그림> 메이븐 경로 복사



시스템 환경 변수 Path의 제일 앞에 복사한 C:경로를 추가하고 ;을 붙여서 구분해 줍니다.
<그림> 메이븐 경로 Path에 추가



cmd 창을 띄워서 mvn --version 을 입력합니다. 버전이 표시되면 정상적으로 설치가 된 것입니다.
<그림> 메이븐 버전 확인


메이븐 간단 테스트

간단히 템플릿 코드를 생성해 보겠습니다. 다음의 코드를 cmd창에 입력합니다.
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

필요한 jar파일을 알아서 다운로드합니다. 그 파일들을 이용해서 archetype 플러그인의 generate 골을 실행합니다.
<그림> 메이븐 아키타입 실행



tree /f 도스 명령어를 이용해서 생성된 파일들과 폴더를 보면 다음과 같습니다. src/main, src/test 폴더에 각각 지정한 groupId 패키지에 따른 하위 폴더와 각각의 java 샘플이 있고, 가장 상위에는 pom.xml 파일이 있습니다.
<그림> 메이븐 아키타입 퀵스타트 구조



빌드는 mvn package 페이즈(phase)를 통해서 할 수 있습니다.
<그림> 메이븐 pacakge 페이즈 실행



결과는 target 폴더가 만들어지면서 담기게 됩니다. quickstart 샘플의 경우 jar파일이 만들어 집니다.
<그림> 메이븐 산출물 target



target 폴더로 이동해서 java -cp my-app-1.0.SNAPSHOT.jar com.mycompany.app.App 명령을 입력하면 실행할 수 있습니다.
<그림> 메이븐 결과 실행



간단히 메이븐을 설치하고 이용하는 방법을 알아보았습니다.


http://okjsp.tistory.com
http://okjsp.net
http://github.com/kenu
























파일 첨부합니다.




viewer : http://freemind.sf.net


GitHub_v1.mm


다음 커뮤니케이션의 초청으로 제주대에서 발표한 자료입니다.

파일 첨부합니다.


20120518_다음제주_내가 경험한 오픈소스.zip





+ Recent posts