블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
01-07 08:49
 

달력

« » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 

최근에 올라온 글

최근에 달린 댓글


우선 개발환경을 준비합니다.

1. Eclipse 구동 환경
2. m2eclipse 플러그인

이클립스와 m2eclipse 가 설치되어 있다는 가정하에 시작하겠습니다.

이번 포스팅에서는 Maven 을 통하여 iBATIS 3 개발을 할 수 있도록 기본 준비 작업을 진행할 예정입니다.

1. File > New 에서 Maven Project 를 선택합니다.



2. iBATIS 3 를 체험해보는 용도의 프로젝트이므로, 별도의 archetype 을 선택하지 않습니다.
"Create a simple project (skip archetype selection)" 을 체크하고 다음으로 넘어갑니다.



3. Maven 프로젝트의 필수 속성을 입력합니다.
Group IdArtifact Id 를 본인 프로젝트에 맞게 설정합니다. 그 후, Finish 버튼으로 프로젝트 생성을 진행합니다.



4. 생성된 프로젝트 확인 및 pom.xml 수정
아래와 같은 구조로 Maven 프로젝트가 생성되었습니다.


최초 생성된 pom.xml 은 아래와 같습니다.

iBATIS 3 + SQLite 사용을 위해 pom.xml 을 아래와 같이 dependency 를 추가합니다.



아래와 같이 Maven Dependencies 가 추가되었다면 iBATIS 3 을 시작할 준비가 완료된 것 입니다.



다음 포스팅에서는 SQLite 로 생성된 DB 에 iBATIS 3 를 이용하여 테이블의 생성, SELECT, DELETE 하는 방법에 대해 알아보겠습니다.





Posted by 자수씨
, |

갑자기 궁금해진 것이... JRebel 은 어떻게 웹 애플리케이션 서버를 리스타트 시키지 않고 클래스 변경을 인식할 수 있느냐 였습니다. 구글에서 뒤져보다 찾은 키워드를 찾아냈습니다. 

"HotSwap"...

자바 1.4 에서 부터 지원되는 JDPA 라는 기능을 이용하여 JVM 에 변경된 클래스의 바이트 코드를 주입하는 방식이였습니다.

이클립스에서 디버깅을 할 때, 소스를 변경하면 바로 인식되는 것도 위의 기능을 이용한 것으로 조사결과 확인되었습니다.

어떤 방식인지 조금 더 살펴 본 후 응용할 수 있는 부분을 찾아볼 계획입니다.


관련 사이트
JDPA 관련: http://download.oracle.com/javase/1.4.2/docs/guide/jpda/enhancements.html#hotswap
hotswap 홈: https://hotswap.dev.java.net/


Posted by 자수씨
, |

회사에서 사용하는 개발환경은 32bit JRE에 32bit 이클립스를 사용합니다. 이클립스를 띄우면 작업관리자의 프로세스 탭에는 메모리가 300M~400M 정도를 유지하며 여러가지 작업을 하면 500~600M 까지 올라갑니다.

이번에 베트남에 들고온 alienware 는 64bit JRE와 이클립스로 구성되어 있습니다. =ㅁ=... 띄우자 마자 메모리는 600M~700M 를 잡아먹습니다.


이클립스의 힙 사이즈도 거의 2배... 성능이 빨라지는 것도 눈에 보이지 않고 괜히 메모리만 2배 먹는 것 같고... 호환성도 떨어지고... 64bit... 이런...


한국 돌아가면 32bit 개발환경으로 복귀... 예정...


Posted by 자수씨
, |

웹 어플리케이션을 구동하다보면 부지런한 개발자의 error 로그를 통해 에러를 확인하는 경우도 있지만 문제가 생기면 대부분 표준 에러로 접하게 되는게 많습니다.

에러만 별도의 파일로 기록하고자 log4j 를 이용하여 Threshold 를 ERROR 로 설정하고 열심히 에러를 발생시켰으나... 로그가 발생하지 않아 생각을 해보니 표준에러와 log4j의 에러는 전혀 다른 것이였습니다. (-_ㅜ... 왜 헷갈렸을까...)

log4j의 ConsoleAppender 와 DailyRollingFileAppender를 교묘하게 조합해보면 될 것 같다고 생각도 해보았지만 역시 단순한 작업은 아닌 것 같습니다.

검색을 해보다가 System.out 과 System.err 을 파일로 로깅하는 포스팅이 있어 정리도 해둘 겸 적어봅니다.
http://blogs.sun.com/nickstephen/entry/java_redirecting_system_out_and


나중에 좀 여유 있으면 개발 시작...


Posted by 자수씨
, |


JAX-WS 에서 웹 서비스를 호출하니 아래와 같은 오류로 실패하였습니다...

Invalid byte 2 of 4-byte UTF-8 sequence


구글링을 해보니 클라이언트 쪽에 인코딩 설정을 해야 한다는 말이 있어서 실행옵션에 "-Dfile.encoding=UTF-8" 를 주고 했더니 잘 됩니다. 근데 다시 빼고 해도 잘되네요... 뭐지;;;

여튼 해결~


참고자료: http://community.jboss.org/message/545017


 

Posted by 자수씨
, |

Ant Task 를 실행하다보면 결과물 폴더를 항상 띄워서 작업을 해야할 때가 있습니다. 모든 것을 Ant Task 로 처리하면 좋지만 ftp나 sftp 가 열려 있지 않은 곳에 파일을 복사하기 위해서는 어쩔 수 없는 절차가 있습니다.

반복적인 작업에 지쳐서 그냥 Custom Ant Task 를 만들었습니다.


일단 위의 파일을 적당한 클래스패스에 넣거나 이클립스의 경우 환경설정에 추가를 합니다.

그런 후 아래와 같이 ant script 를 수정하면...

Task 가 실행되면서 탐색기가 뜨게 됩니다.


오랜만에 개발자스러운 일을 하나 했네요. 우훗~



Posted by 자수씨
, |

Applet... RuntimePermission...

JAVA / 2010. 6. 28. 14:25

전략적으로 애플릿을 이용하여 내부 리소스를 처리하려 하였으나...

java.security.AccessControlException: access denied (java.lang.RuntimePermission accessDeclaredMembers)
 at java.security.AccessControlContext.checkPermission(Unknown Source)
 at java.security.AccessController.checkPermission(Unknown Source)
 at java.lang.SecurityManager.checkPermission(Unknown Source)



signjar 를 이용하여 인증까지 처리하였으나... applet 만으로는 처리가 안되나 봅니다.

구글링을 해보니 Microsoft SDK for Java 4.0 를 이용하라고 하는데 cab으로 만들기에는 좀 귀찮고...
웹 스타트로 처리를 해야할 것 같습니다... (일이 점점 커지네요...)

자바스크립트와 통신을 해야하므로 다시 애플릿으로...

쩝...

Posted by 자수씨
, |

메이븐을 마구잡이로 사용하는 것 보다는 책을 통해서 한번 정리를 하는 것이 좋을 것 같아서 책을 구매하게 되었습니다.

항상 구매하듯이 YES24 에서 구매하였습니다.



짜잔~ 원서입니다.



가격은 $39.99 입니다.



레알 원서입니다.




뭐 원서라도 전체를 이해하는 것이 아니라 그 의미만 마음 속으로 받아들이면 될 것 같네요~

훗~ 메이븐~




Posted by 자수씨
, |

Ant 에서 기본적으로 제공해주는 scp task 를 이용하여 ssh 가 열려있는 서버에 업로드와 다운로드를 처리할 수 있습니다.
저는 기본적으로 이클립스를 쓰기 때문에 이클립스 환경 기준으로 작성을 하겠습니다.

실제적으로 처리를 진행할 라이브러리를 다운받아 Ant 런타임 라이브러리에 추가합니다.
JCraft 홈페이지

"jsch-0.1.42.jar" 를 내려 받아서 이클립스 Preferences > Ant > Runtime 을 선택합니다.
"Global Entries" 를 선택한 후 "Add JARs..." 버튼을 클릭하여 다운받은 "jsch-0.1.42.jar" 를 추가합니다.



사용 예
08라인은 서버의 "/home/workflow.jar" 파일을 03~06 라인을 통해 생성된 로컬 디렉토리에 다운로드 합니다.
10~12라인은 서버의 "/home" 에 로컬 "/home/workflow.jar" 파일을 업로드 합니다.

scp task 사용시 trust="true" 가 없으면 " com.jcraft.jsch.JSchException: reject HostKey: <호스트>" 라는 익셉션이 발생하니 꼭 확인하시기 바랍니다.

참고자료
SCP TASK

Posted by 자수씨
, |

















아래와 같은 코드가 있습니다.


이 코드를 작성한 작자는 datas 가 8 개의 요소를 가지고 있는 배열이기를 원합니다.



오묘해... 오묘해...

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백