블로그 이미지
올해목표 // 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-24 08:10
 

달력

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

최근에 올라온 글

최근에 달린 댓글


일반적인 TreeLoader 에서는 파라미터를 GET 방식으로 넘기게 됩니다. GET 으로 처리하기 어려운 특수문자의 경우 POST 로 보내야 하는데, 이럴 경우에는 TreeLoader 에서는 방법이 없어 클래스를 확장하게 되었습니다.
(requestMethod 를 post 로 주더라도 실제로 발송 시에는 파리미터가 GET 방식으로 넘어갑니다.)



실제로 사용 시에는 beforeload 이벤트를 통해 JSON 데이터를 설정합니다.



확장성이 좀 유연한 Ext JS... 덕분에 쉽게 해결합니다.

Posted by 자수씨
, |

회사에서 최근에 기존 프로젝트를 메이븐으로 분리하면서 고민거리가 생겼습니다. 바로 그건 GWT...

버전관리도 안되고 별도로 컴파일 후 배포할 수 있는 메이븐 플러그인을 찾지도 못하여 고민을 하고 있던 찰나... 먼가에 이끌리듯 개발을 진행하였습니다.

아이디어는 생각보다 단순합니다.

1. 등록된 소스 서버에서 관련 소스를 체크아웃 or 업데이트 합니다.
2. 등록된 모듈을 컴파일합니다.
3. 컴파일 결과물을 압축하여 특정폴더에 복사합니다.
4. 매일 새벽에 작업이 진행됩니다.

한 4일 정도 작업을 한 결과 쓸 수 있을 정도의 결과물이 나왔습니다.

0123



음하하하하하...

Posted by 자수씨
, |

어노테이션을 이용한 Task Scheduling 을 하려면 annotation-driven 엘리먼트를 추가합니다.



그 후, 스케쥴링에 이용할 메소드에 @Scheduled 어노테이션 설정을 합니다.

익숙한 cron 방식으로 설정을 하는 것이라 따로 설명을 하지 않겠습니다.

어노테이션... 생각보다 편의성이 돋네요;;;

참고자료: http://krams915.blogspot.com/2011/01/spring-3-task-scheduling-via.html

Posted by 자수씨
, |

JRebel 을 쓰면서 좀 불편했던 점이 rebel.xml 파일에 로컬 환경에 따라 경로가 다르게 되는데, 이 파일까지 버전관리를 하다보니 최초에 도입하신 분 외에는 커밋하기 어려운 점이 있었습니다.

구글링 몇 번으로 해결책을 찾았습니다.




위와 같은 설정이 있을 경우 "c:\myWorkspace" 의 경로는 로컬 환경의 경로입니다. JRebel 에서 제공해주는 변수를 통해 설정이 가능합니다.

아래와 같이 VM 파라미터를 추가하고
-Dmyproject.root=c:\myWorkspace

아래와 같이 rebel.xml 을 설정하면, 로컬 환경에 구애받지 않고 버전관리가 가능합니다.



참고사이트: http://www.zeroturnaround.com/reference-manual/app.html

Posted by 자수씨
, |

Java 로 SVN 가지고 놀기~

JAVA / 2011. 1. 14. 09:57

데일리 빌드 프로그램을 만들기 위해 자바로 서브버전 리파지토리에서 데이터를 가지고 오는 것이 필요하였습니다.

이클립스 서브버전 커넥터에서 많이 보았던 SVNKit(http://www.svnkit.com/) 을 이용해보기로 하였습니다.

테스트 기반은 메이븐으로 이루어져 있으며, SVNKit 의 최신버전은 1.3.5 의 디펜던시를 추가하였습니다.



테스트 코드는 다음과 같습니다. 특정 리파지토리에 연결하여 최신(HEAD) 리비전 체크아웃 또는 업데이트 받기 입니다.

1. 각 프로토콜에 대한 SVN 라이브러리를 초기화합니다.



2. 리파지토리에 연결에 필요한 객체를 생성합니다.
 >> SVNURL: 리파지토리 주소 관련 객체
 >> SVNClientManager: 인증관련 정보 설정 객체



3. 해당 리파지토리를 체크아웃합니다.



3-1. 로컬 리파지토리를 업데이트하는 기능은 다음과 같습니다.



테스트 코드를 돌리면서 로컬에 파일이 내려지는 걸 보니 마음이 뿌듯해집니다.



Posted by 자수씨
, |

메이븐을 이용하여 기본적으로 제공해주는 webapp archetype 으로 프로젝트를 생성하게 되면 이클립스에서 웹 프로젝트로 인식이 되지 않습니다.

프로젝트도 아래와 같이 단순하게 구성되어 있습니다.



pom.xml 에 wtp 와 관련된 plugin 설정을 합니다.



그런 후에 eclipse:eclipse 를 goal 로 빌드를 하게 되면~




[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building gwtbuilder-webapp Maven Webapp
[INFO]    task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse {execution: default-cli}]
[INFO] Adding support for WTP version 2.0.
[INFO] Using Eclipse Workspace: D:\**********
[INFO] no substring wtp server match.
[INFO] Using as WTP server : Tomcat v6.0 as wiseOne
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] @@@ TRUE - Manifests are equal
[INFO] Not writing Manifest file as it is unchanged: D:\**********\gwtbuilder-webapp\src\main\webapp\META-INF\MANIFEST.MF
[INFO] File D:\**********\gwtbuilder-webapp\.project already exists.
       Additional settings will be preserved, run mvn eclipse:clean if you want old settings to be removed.
[INFO] Wrote Eclipse project for "gwtbuilder-webapp-0.0.1-SNAPSHOT" to D:\**********\gwtbuilder-webapp.
[INFO]
       Sources for some artifacts are not available.
       Please run the same goal with the -DdownloadSources=true parameter in order to check remote repositories for sources.
       List of artifacts without a source archive:
         o junit:junit:3.8.1
       Javadoc for some artifacts is not available.
       Please run the same goal with the -DdownloadJavadocs=true parameter in order to check remote repositories for javadoc.
       List of artifacts without a javadoc archive:
         o junit:junit:3.8.1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Wed Jan 12 16:09:35 KST 2011
[INFO] Final Memory: 8M/19M

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building gwtbuilder-webapp Maven Webapp
[INFO]    task-segment: [eclipse:eclipse]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed for project - skipping
[INFO] [eclipse:eclipse {execution: default-cli}]
[INFO] Adding support for WTP version 2.0.
[INFO] Using Eclipse Workspace: D:\**********
[INFO] no substring wtp server match.
[INFO] Using as WTP server : Tomcat v6.0 as *******
[INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
[INFO] File D:\**********\gwtbuilder-webapp\.project already exists.
       Additional settings will be preserved, run mvn eclipse:clean if you want old settings to be removed.
[INFO] Wrote Eclipse project for "gwtbuilder-webapp-0.0.1-SNAPSHOT" to D:\**********\gwtbuilder-webapp.
[INFO]
       Sources for some artifacts are not available.
       Please run the same goal with the -DdownloadSources=true parameter in order to check remote repositories for sources.
       List of artifacts without a source archive:
         o junit:junit:3.8.1
       Javadoc for some artifacts is not available.
       Please run the same goal with the -DdownloadJavadocs=true parameter in order to check remote repositories for javadoc.
       List of artifacts without a javadoc archive:
         o junit:junit:3.8.1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Wed Jan 12 16:27:06 KST 2011
[INFO] Final Memory: 8M/19M
[INFO] ------------------------------------------------------------------------



웹 프로젝트와 관련된 설정들이 추가되게 됩니다.




이제 개발 고고씽~

Posted by 자수씨
, |
아래와 같이 스프링 applicationContext 들이 web.xml 에 정의되어 있었습니다.

web.xml



conf/gw-Common.xml



conf/gw-Mail.xml



conf/gw-Workflow.xml



conf/gw-Board.xml



이상하게도 자꾸 gw-Common.xml 에 선언된 sqlmap 들을 찾을 수 없다고 하여 org.springframework.orm.ibatis.SqlMapClientFactoryBean 의 소스를 넣고 트레이싱을 해본 결과 com/idstrust/wiseone/engine/gw/conf/SqlMapConfig.xml 대신에 com/idstrust/wiseone/engine/gw/conf/SqlMapConfig-Board.xml 가 설정되고 있었습니다.

여러가지 실험을 해본 결과 gw-Common.xml 에 선언된 sqlMapConfig 의 id 를 다른 것으로 변경하여 문제는 해결하였습니다.
		
	
		
		
	

	...



자기 멋대로 오토와이어링이 먹을리는 없고... 분석할 시간이 없으므로 일단은 다음 단계로 넘어갑니다;;;
(이전 포스팅의 문제는 아니였습니다;;;)

Posted by 자수씨
, |

GWT 와 Spring MVC 를 통합시켜주는 gwtwidgets 라이브러리의 GWTHandler 사용 시 유의사항이 있습니다.

정의된 bean 들이 순서에 영향을 받는 것 같습니다.

[나쁜 예]
<beans ...>
  <bean id="hasA" ...>
    <property name="a" ref="a" />
  </bean>
  <bean id="a" ... />
  ...

</beans>

[좋은 예]
<beans ...>
  <bean id="a" ... />
  <bean id="hasA" ...>
    <property name="a" ref="a" />
  </bean>
  ...

</beans>


사용되는 프로퍼티가 미리 선언되어 있지 않으면 어디선가 꼬여버려 상상하지도 못하는 곳에서 에러가 발생합니다.

원래 스프링은 빈 팩토리가 순서에 영향을 받지 않는 걸로 알고 있는데... 오래전 라이브러리를 계속 쓰다보니 지금와서 발견하게 되네요;;; 이것 때문에 한 5시간은 삽질한 것 같습니다.



Posted by 자수씨
, |

작년에는 프로젝트 때문에 외근을 많이 다니다 보니 페이스 조절에 실패하여 붕 뜬 상태로 지내왔던 것 같습니다.

요즘은 먼가 마음을 다잡고 지내다보니 페이스를 어느정도 끌어올린 듯 하네요~

혹시 연봉 통보를 기대하고 -ㅁ-~  기대가 실망으로 바뀌는 순간에는... =ㅁ=~


Posted by 자수씨
, |

삶의 여유를 가져다 주는 뽐뿌(http://www.ppomppu.co.kr/) 가 어제 밤부터 접속이 되지 않더군요...

알약은 뽐뿌만 들어가면 바이러스 있다고 징징거리고;;;

해킹을 당한건지 -ㅁ-;;; 아니면 서버에 문제가 있는건지...

http://203.246.198.27/index.php 로 접속하면 접속은 되는데 많은 사람들이 접속을 못하는 상황이라 신규 글들은 몇개 없습니다;;;

이런;;;

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백