Web Client/jQuery2012. 1. 30. 00:18
jQuery의 힘은 역시 다양한 Plug-In 이 아닐까한다. 필요하다 싶은 기능을 찾으면 거의 있다는 것이 놀라울 따름이다.

Javascript 객체를 JSON 으로 변환하기 위해서는 jQuery 플러그인이 필요하다.
http://code.google.com/p/jquery-json 에 방문하여 jquery.json-2.3.min.js 를 다운받고 페이지 상단에 추가한다

<script language="javascript" src="jquery.json-2.3.min.js" type="text/javascript"></script>

사용법은 매우 간단하다..

----------------------------------------------------------------------
// Create test user Object
var user = new Object();
user.name = "gildong";
user.age = 18;

// Object to JSON
var userJSON = $.toJSON(user);
alert("userJSON = " + userJSON); // { name : "gildong", age : 18 }

// JSON to Object
var userObj = $.evalJSON(userJSON);
alert("userObj.name = " + userObj.name); // gildong
alert("userObj.age = " + userObj.age); // 18
----------------------------------------------------------------------

포스팅 하기엔 너무 간단한 내용인가보다.. ^.^

'Web Client > jQuery' 카테고리의 다른 글

jQuery 로 XML 파싱하기  (0) 2012.04.09
jQuery에서 Cookie 사용하기  (0) 2012.01.30
jQuery에서 폼 검증하기 (Form Validation)  (0) 2012.01.20
JQuery 링크모음  (0) 2012.01.04
Posted by 꼰스
Java/Tip & Tech2012. 1. 25. 15:33

UTF-8 로 작성된 Java 소스를 import 하면 당연히 깨집니다.. 저는 Java 소스를 MS9494 인코딩으로 쓰니깐요..
해서 한칼에 모든 소스를 변경하고 싶은데 마땅한 툴이 없네요..
이럴때 개똥도 약에쓰려면 없다는 말이 생각납니다.
땡칠이 작업으로 변경을 하려 하다가 훗날을 생각하며 후딱 짜서 돌려봅니다.. 잘 되네요..

SrcEncodingConverter.jar

 SrcEncodingConverter.java

 
사용법은 아래와 같습니다.

1. SrcEncodingConverter.jar 를 다운로드하여 임의의 폴더에 저장

Ex) C:\temp 에  SrcEncodingConverter.jar을 다운로드

2. 변경되어진 소스가 저장될 폴더 생성

Ex) C:\temp\src 를 생성

3. 명령프롬프트에서 jar 파일이 있는 폴더로 이동

Ex) CD C:\temp

4. 명령구문 실행

Ex) C:\workspace\MyPrj\src 내 *.java 파일의 인코딩 변경후 C:\temp\src 에 넣을때 예제

java -classpath SrcEncodingConverter.jar kr.innofactory.util.SrcEncodingConverter C:\orkspace\MyPrj\src c:\temp\src .*\.java UTF-8 MS949

arguments 는 아래와 같습니다.

- args[0] : 소스 input 폴더
- args[1] : 변경소스 output 폴더
- args[2] : 파일패턴 정규식
- args[3] : 현재 Encoding (null 이면 시스템 charset)
- args[4] : 바꿀 Encoding (null 이면 시스템 charset)

도움 되셨길...

SrcEncodingConverter.jar

Posted by 꼰스
Web Client/jQuery2012. 1. 20. 01:13

내가 jQuery 를 이용하는 단 한가지의 이유는... 날 믿지 못하기 때문이다. ^^
나보다 훨씬 잘난 사람들이 공들여 만들고 우리 팀원보다 훨씬 많은 사람들이 QA를 진행해준 라이브러가 지천에 널린 세상이다. 내가 만든것이 남이 만든것보다 우월하단 자신감도 필요하겠지만 업무의 효율성을 위해 범용적인 기능구현을 하고자 할때 자체 개발에 앞서 적절한 오픈소스 라이브러리가 있는가를 먼저 찾아보는 지혜가 필요하겠다. 줏대없어 보일지 모르겠으나 경험상 이 판단은 대부분의 경우 옳은 판단이 될것이라 믿는다.

서설만 길고 본문내용은 별것 없을것 같다. 폭주하는 업무에 지금 난 매우 피곤하니까~~
할일이 쌓여있고 배울것도 많지만 시간이 부족한 요즘 좋은 것을 찾아 잘 활용하는 것도 능력이라 자위하며
정보가 어디에 있는지 알고만 있자는 취지하에 링크만 죽 걸어놓을란다.. 바로 내일 써야하니깐~~~

jQuery Form Validator 플러그인에 대한 정보는 아래와 같다.

- jQuery Form Validation Plugin 폼 검증 플러그인 간단 사용법 By 녹풍
- http://docs.jquery.com/Plugins/Validation

다운로드는 jQuery plugin: Validation 홈페이지에서 받을 수 있겠다.

녹풍님 홈페에 나온 예제를 파일로 정리해봤다..

즐거운 검증 되시길~~~


'Web Client > jQuery' 카테고리의 다른 글

jQuery 로 XML 파싱하기  (0) 2012.04.09
jQuery에서 Cookie 사용하기  (0) 2012.01.30
jQuery에서 JSON 사용하기 (JSON to Object, Object to JSON)  (2) 2012.01.30
JQuery 링크모음  (0) 2012.01.04
Posted by 꼰스
Java/Tip & Tech2012. 1. 6. 23:49
[ 2010년 01월 27일 에 작성한 글입니다 ]

Java 응용프로그램을 만들면 모하나.. Windows 가 시작되면서 자동으로 이 프로그램을 구동시키려면 Windows 서비스에 등록해야만 하는데..

예전 회사에서 KT회선을 쓰고 있을때 퇴근하고 난뒤 2~3시간만 지나면 회사서버에 접속이 되지 않았었지.. 그래서 난 java 로 1시간에 한번씩 특정사이트를 호출하게 만드는 어플리케이션을 만들고 이것을 회사 서버에 윈도우 서비스에 등록해서 우리 회사서버를 외부에서 언제나 접속하게 했던 기억이나.. 이렇게 만들어놓음으로써 회사에는 언제나 사람이 브라우저를 사용하는 것처럼 될테고.. KT는 서버로의 접근을 차단할 근거가 없어지게 되니깐~~ ^^

[방법 1] Java Service Wrapper 를 이용하는 방법

http://wrapper.tanukisoftware.org 를 잘 참조하면 되겠어..
Profession 은 상용이지만 Community 버전은 프리하게 사용가능한가바. 문서도 좀 읽어야 가능하겠는걸?

[방법 2] JavaService 를 사용하는 방법

이건 좀 자세히 설명할꺼야.. 오늘 내가 직접 해볼꺼거등 ^^

[STEP 1] 프로그램 다운로드

http://javaservice.objectweb.org (http://forge.ow2.org/projects/javaservice/)
2010년 01월 27일 현재 "JavaService-2.0.10.zip" 이 나와있네...
압축파일을 풀면 많은 JavaService.exe 라는 파일이 있어.. 그게 젤 중요하니 한번 살펴보자...
(다른 bat 파일들은 이름만 살펴봐도 그 용도를 알 수 있을꺼야..)
JavaService.exe 을 C:\temp 에 한번 복사해놓고 테스트해보자구..



[STEP2] JavaService 의 install 옵션 둘러보기


자.. 도스커멘드에서 JavaService 어떻게 사용하나 알아보려고 "-help" 옵션으로 실행시킨 결과야..
-----------------------------------------------------------------------------------------------------
JavaService (Windows NT Service Daemon) commands:-
        -version
        -licence
        -install service_name jvm service_options...
        -queryconfig service_name
        -status service_name
        -uninstall service_name
        -help
        -help topic
-----------------------------------------------------------------------------------------------------

빨간 install 옵션이 제일 중요하니 어떻게 쓰는지 살펴보기 위해 다시한번 "-help install" 을 해보자고..
-----------------------------------------------------------------------------------------------------


To configure and install a background service:
JavaService -install service_name jvm_library [jvm_options]
        -start start_class [-method start_method] [-params (start_parameters)]
        [-stop start_class [-method stop_method] [-params (stop_parameters)]]
        [-out out_log_file] [-err err_log_file]
        [-current current_dir]
        [-path extra_path]
        [-depends other_service]
        [-auto | -manual]
        [-shutdown seconds]
        [-user user_name -password password]
        [-append | -overwrite]
        [-startup seconds]
        [-description service_desc]
Where:
  service_name: The name of the service. ← 서비스명
  jvm_library:  The location of the JVM DLL used to run the service.  ← jvm.dll 위치
  jvm_option:   An option to use when starting the JVM, such as: "-Djava.class.path=c:\classes" or "-Xmx128m".
  start_class:  The class to load when starting the service.  ← 클래스명
  start_method: The method to call in the start_class. default: main
  start_parameters:Parameter(s) to pass in to the start_method.
  stop_class:   The class to load when stopping the service.
  stop_method:  The method to call in the stop_class. default: main
  stop_parameters:      Parameter(s) to pass in to the stop_method.
  out_log_file: A file to redirect System.out into. (gets overwritten)
  err_log_file: A file to redirect System.err into. (gets overwritten)
  current_dir:  The current working directory for the service. Relative paths will be relative to this directory.
  extra_path:   Path additions, for native DLLs etc. (no spaces)
  other_service:        Single service name dependency, must start first.
  auto / manual:        Startup automatic (default) or manual mode.
  seconds:      Java method processing time (startup:sleep, shutdown:timeout).
  user_name:    User specified to execute the service (user@domain).
  password:     Password applicable if user specified to run the service.
  append / overwrite:   Log file output mode, append (default) or overwrite.
  service_desc: Text describing installed service (quoted string, max 1024).
-----------------------------------------------------------------------------------------------------
저 위에서 service_name, jvm_library, start_class 옵션 정도만 사용해서 한번 install 해볼 예정이야..
jvm_option 은 필요할때 사용하고, start_method 는 대부분 main() 일테니 생략하자구..

[STEP3] 테스트 java 클래스 만들기

지금 테스트 하려고 하는데.. 아.. 간단한 클래스 없을까 하다가..
간단하게 10초에 한번씩 standard out으로 "hello word"를 찍는 클래스를 만들어보려구 해..
Timer 나 TimerTask 에 대한 것은 API를 참조해바바.. (자꾸 말로 물어서 해결하려하지 말구...)
-----------------------------------------------------------------------------------------------------
package test;

import java.util.Timer;
import java.util.TimerTask;

public class HelloWorldPrinter extends TimerTask {
    private static int count = 0;
    public void run() {
        count ++;
        System.out.println(count + " : Hello World !");
    }

    public static void main(String[] args) {
        HelloWorldPrinter printer = new HelloWorldPrinter();
        Timer timer = new Timer();
        timer.schedule(printer, 0, 10 * 1000);
    }
}
-----------------------------------------------------------------------------------------------------


이 클래스를 빌드해서 C:\temp\classes\test\HelloWorldPrinter.class 에 놓어보자구효~

[STEP4] Windows Service에 클래스 등록하기

아래와 같은 정보로 서비스를 등록해볼 참이야..
service_name : HelloWorldPrintingService
jvm_library : %JAVA_HOME%\jre\bin\server\jvm.dll
jvm_option : Djava.class.path=.\classes
start_class : test.HelloWorldPrinter
out_log_file : C:\temp\javaservice_test.log (테스트 결과확인을 위해 등록)
도스커멘드에서 아래의 커멘드를 실행시켜서 서비스로 등록을 해보자구..
-----------------------------------------------------------------------------------------------------
JavaService -install "HelloWorldPrinting Service" %JAVA_HOME%\jre\bin\server\jvm.dll -Djava.class.path=c:\temp\classes -start test.HelloWorldPrinter -out C:\temp\javaservice_test.log
-----------------------------------------------------------------------------------------------------


자.. 멋지게 등록되었고 SC를 이용해 서비스 등록상태까지 확인해봤어..

[STEP5] 서비스 실행하기

-----------------------------------------------------------------------------------------------------
net start "HelloWorldPrinting Service"
-----------------------------------------------------------------------------------------------------
이렇게 실행하고 서비스 등록시에 지정했던 로그파일을 보자구.. C:\temp\javaservice_test.log 에는 아래와 같이 찍혀있을꺼야..
1 : Hello World !
2 : Hello World !
3 : Hello World !
4 : Hello World !
5 : Hello World !
6 : Hello World !
7 : Hello World !
8 : Hello World !
9 : Hello World !
10 : Hello World !
성공이닷 !!

[STEP6] 서비스 종료하기
-----------------------------------------------------------------------------------------------------
net stop "HelloWorldPrinting Service"
-----------------------------------------------------------------------------------------------------

[STEP7] 서비스 삭제하기

-----------------------------------------------------------------------------------------------------
JavaService -uninstall "HelloWorldPrinting Service"
-----------------------------------------------------------------------------------------------------

파일 첨부해놨으니 쉽게 테스트 할수 있을꺼야.. 수고했샤~~
Posted by 꼰스
Java/Tip & Tech2012. 1. 6. 23:32
[ 2010년 05월 14일에 작성된 글입니다 ]

업계표준이 참으로 무섭기는 한가봅니다. 그토록 M$ 를 싫어하지만 내가 쓰는 OS도, 내가 쓰는 Office 도 모두 M$ 이니깐요.. (Open Office 바꿔타기를 해봐야하눈뎅.. ㅡㅡ;)
이같은 심정은 IT 시스템 개발을 발주하는 고객사 또한 마찬가지가 아닐까 합니다. 때문에 싫던 좋던 프로젝트 수행중에 Java 플랫폼에서 M$ Office 포멧을 다뤄야 하는 경우가 다반사입니다. M$ 오피스군의 파일포멧을 다룰 수 있는 Java 기반의 라이브러리는 뭐니뭐니해도 Apache POI 가 아닐까 합니다.

너무 많이 알려진 라이브러리이므로 장황하게 설명할 필요하는 없을듯하고 2009년12월에 발표된 POI-3.6 최신버전으로 여러가지 Excel 을 다루는 샘플을 만들어봤습니다. Deprecated 된 메쏘드들은 모두 새로운 사용법으로 교체되었으니 참고하세요.

예제를 실행시키기 위한 환경 및 참조된 문서는 아래와 같습니다.

[JRE]
jdk-1.6.x 이상 필요
※ jdk-1.5.x 환경은 예정실행시 "NoClassDefFoundError: javax/xml/stream/XMLStreamException" 가 발생됨

[POI 다운로드]
http://poi.apache.org/download.html

[의존성]
xmlbeans - http://xmlbeans.apache.org/sourceAndBinaries/index.html
dom4j : http://sourceforge.net/projects/dom4j/files/

[문서링크]
POI의 Excel 관련 문서홈 - http://poi.apache.org/spreadsheet/index.html
바쁜개발자를 위한 HSSF와 XSSF 가이드 - http://poi.apache.org/spreadsheet/quick-guide.html ★★★★
HOW-TO 문서 - http://poi.apache.org/spreadsheet/how-to.html

예제파일은 여기 있습니다.


동일한 Class명이 여러 패키지에 존재하니 예제 상단의 import 구문을 세심히 체크해야 할 것이다.
Posted by 꼰스
Java/Tip & Tech2012. 1. 6. 23:22

RIA 개발시 Ajax 를 많이 사용하다보니 서버 응답 포멧이 XML 이나 JSON 이 대부분일 것입니다.

Java에서 String 연산으로 JSON 을 생성할 경우 예상치 못한 특수문자 오류를 만나게 되며 디버깅 또한 쉽지 않습니다. 따라서 기존에 잘 만들어진 JSON 변환 라이브러리를 사용하는 것이 현명한 선택일 것입니다.

현재 배포되고 있는 JSON 스팩 구현체들은 상당히 다양합니다. 이 여러가지 가운데 무엇을 써야할지 선택하는 것조차 쉽지 않습니다. 여러 방면으로 검토한 후 가장 쓸만한 라이브러리를 링크를 걸어봅니다.


날이 갈수록 봐야할 자료가 너무 많아 탈이날 지경이네요. ^^

첨부된 파일은
1) json.jar - 라이브러리 파일 

2) json_doc.zip - java doc
3) json_src.zip - 라이브러리 소스파일

json.jar

json_doc.zip

json_src.zip


JSON 에 대해 보다 상세한 내용은 http://www.json.org 을 참조하시기 바랍니다.


Posted by 꼰스
Java/Lucene2012. 1. 6. 01:30
[ 2009년 2월 19일에 작성한 글입니다 ]

아파치에서 오픈소스로 진행되는 Java 기반 FullText 검색엔진 Lucene 에 대한 정보들 입니다.
Google 에서 'apache lucene 한글 형태소' 로 검색을 해서 얻은 결과를 정리한 것입니다.

[아마추어가 만드는 검색엔진 DABOT(다봇) for 루씬(Lucene)]
http://dabot.tistory.com

[용식님 블로그의 Lucene 카테고리]
http://devyongsik.tistory.com/category/OpenSource/lucene

[루씬 링크모음]
http://lucene.egloos.com/1368209

[루씬 한글분석기 오픈소스 프로젝트]
http://cafe.naver.com/korlucene.cafe

[???]
http://www.wiseant.net/tc/wiseant/category/프로그래밍/Lucene(루씬)

[???]
http://theeye.pe.kr/entry/Java-Lucene-루씬을-이용한-JSP용-클래스?category=11

[???]
http://irgroup.org/zbxe/lucene

[루씬용 한글형태소 분석기 solr에 적용 사례]
http://esconsult.egloos.com/961906

[???]
http://blog.naver.com/songws72/50041586496

언제나 무료이면서 정확한 한글 자연어 검색엔진이 나올까요? (너무 도둑심보인가? ㅋ)

'Java > Lucene' 카테고리의 다른 글

XML, PDF, HTML, MS Word 텍스트 추출 라이브러리  (0) 2012.01.06
Posted by 꼰스
Java/Lucene2012. 1. 6. 01:23
[ 2009년 2월 19일에 작성한 글입니다 ]

여러 포멧의 문서를 인덱싱 하려면 텍스트 추출기가 필요합니다.
문서관리 시스템을 만들때 필수적인 라이브러리로 문서 등록시 텍스트를 추출하여 검색 인덱스를 생성하고 파일을 저장함으로써 파일 내용 검색을 가능케 합니다.

[XML]
- Dom, Sax, JDom,
- Piccolo (http://piccolo.sourceforge.net)
- Apache Disester (http://jakarta.apache.org/commons/digester/)

[PDF]
- PDFBox (http://www.pdfbox.org)
- Xpdf (http://www.foolabs.com/xpdf)
- JPedal (http://www.jpedal.org)
- Etymon PJ( http://www.etymon.com)

[Html]
Jtidy (http://jtidy.sourceforge.net )
NekoHTML (http://people.apache.org/~andyc/neko/doc/index.html)
HTMLParser( http://htmlparser.sourceforge.net)

[MS Word]
POI (http://jakarta.apache.org/poi)
Text Extractors(http://textmining.org)
Antiword (http://www.winfield.demon.nl)
OpenOffice SDK (http://www.openoffice.org)

실제로 돌려보면 그래픽 위주의 파워포인트 같은 문서는 깔끔한 텍스트 추출이 불가능하네요...

'Java > Lucene' 카테고리의 다른 글

Apache Lecene 관련 링크  (0) 2012.01.06
Posted by 꼰스
MPI2012. 1. 6. 01:04
난 물리학을 잘 모르는 물리학도다... ㅡㅡ;

어릴적 대학졸업 논문이랍시고 정말 허접스러운(애덜 장난같은~) 아동용 Java Applet 가상실험실을 만들었었다.
포트리스 게임처럼 대포가 각도와 추진력을 설정하고 발포를 하면 그냥 대포알이 포물선을 그리며 날라가는 모습을 그래픽적으로 처리한 것 뿐이다. 이건 물리학이 아니라 프로그래밍을 배우는 초보자가 그리픽을 가지고 연습한 수준이라고 밖에 볼수 없는터라.. 챙피하단 거다. 공기의 저항과 같은 여러가지 Factor 들이 조합된 시뮬레이션이었다면 참 좋았을것을...

이렇듯 시간에 쫓겨 허접스런 논문을 만들기전에 선정되었던 주제가 바로 PVM (Parallel Virtual Machine)이다.

새벽 3시가 다된 지금.. 구글링을 해본다.
PVM을 처음 알게된 1996년. 14년이 흐른 지금 이 기술은 어디까지 발전되어 있을까?
PVM와 연관된 MPI (Message Passing Interface) 라는 용어도 보인다.
PVM이던 MPI던 14년전에 시작해서 지금까지 이 기술들에 관심을 가지고 공부해왔다면 뭔가 큰 성과가 나지 않았을까 하는 얼토당토한 상상도 해본다. 허긴 그것이 무엇이건간에 이토록 오랜시간을 투자하면 안될것이 어디 있겠는가?

난 지금 Java 엔지니어다.
Java MPI 스팩인 MPJ(Message Passing in Java),  JMPI(Java Message Passing Interface) 등을 공부해 보려한다.
복잡한 수식의 계산, 물리학 시뮬레이션, 기상 분석, 에니메이션 그래픽 랜더링 등에 두루 사용될 수 있는 기술이 아닐까 싶다.

응용기술은 강하지만 기반기술이 많이 부족해 보이는 "IT강국 코리아" !
게임은 많이 개발하지만 제대로 된 국산 3D 게임 엔진을 찾아보기 힘든 "게임강국 코리아" !
지금 난 아무것도 모른다. 앞으로 차근차근 알수 있게 되겠지..
기반기술은.. 뿌리와도 같다..
Posted by 꼰스
Solution/Windchill2012. 1. 5. 09:12

Windchill 은 Rose 모델링을 통한 소스 Generation 과정을 통해 개발이 진행되므로 개발환경 구축하기에 힘든 면이 있습니다. 여러가지 방법이 있겠으나 서버환경과 Eclipse Workspace를 분리해야한다는 대전제 하에 class, jsp 등을 Ant 스크립트를 통하여 옮기는 방법을 선택하여 사용하고 있습니다.

아래 build 스크립를 이용하여 Eclipse Workspace의 결과물을 Windchill로, Windchill 하위에 Generation 된 소스파일을 Eclipse Workspace 로 편리하게 이동할 수 있습니다. 샘플이니 자유롭게 수정해서 사용하시면 됩니다.

build-windchill.xml 은 Eclipse Project Root 에 넣고 Eclipse Ant View 에 등록하여 사용합니다.

build-windchill.xml

build-windchill.properties 는 Eclipse Project Root 에 넣고 자신의 Windchill 설치환경에 따라 적절하게 수정합니다.

build-windchill.properties

Windchill 10 부터는 Eclipse Plugin 이 나왔다고 하는데 이 녀석도 사용 후 후기를 올려봐야겠습니다.

Posted by 꼰스