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

달력

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

최근에 올라온 글

최근에 달린 댓글


java.math.BigDecimal 을 RPC 통신을 할 경우에 기본 GWT 에서는 처리가 불가능 합니다.

그걸 처리가 가능하도록 나온 라이브러리가 있습니다.

http://code.google.com/p/gwt-math/



gwt-math-2.0.3.jar 는 client 컴파일시 사용을 하며
gwt-math-server-2.0.3.jar 는 was 라이브러리 경로에 배포합니다.


왜 이걸 이제야 찾았을까요~ (BigDecimal 을 직접 써야 하니깐... -_ㅜ;;;)




Posted by 자수씨
, |

Maven 을 이용하여 GWT, GWT Ext 프로젝트 환경을 구성해보겠습니다.

ㅁ Maven GWT Plugin
http://code.google.com/p/gwt-maven/
위의 플러그인 프로젝트의 도큐먼트를 참조하여 프로젝트를 생성합니다.

적당한 위치에서 아래와 같은 명령을 통해 Maven 프로젝트를 생성합니다.
Group ID 와 Artifact ID 는 적당한 값으로 설정합니다.
mvn archetype:create -DarchetypeGroupId=com.totsp.gwt 
    -DarchetypeArtifactId=maven-googlewebtoolkit2-archetype 
    -DarchetypeVersion=1.0.3 
    -DremoteRepositories=http://gwt-maven.googlecode.com/svn/trunk/mavenrepo 
    -DgroupId=[Group ID]
    -DartifactId=[Artifact ID]

생성된 프로젝트의 구조는 아래와 같습니다.



생성된 폴더 바로 아래 pom.xml 이 있을 것입니다.




GWT Ext 에 대한 설정을 추가합니다. 기본 주소에서는 GWT Ext 라이브러리를 받을 수 없어 jboss 쪽에서 받습니다.



이클립스 프로젝트로 변환합니다.

mvn eclipse:eclipse



BUILD SUCCESSFUL 입니다.

일단은 만들었으니... 그담에는 쫌 이따가 ㅋㅋㅋ







Posted by 자수씨
, |

대학교 DB/SE 연구실의 랩짱이 된지 4일이 지났습니다.

연구실 리빌딩작업과 후배들 관리, 회사에서 주어진 작업, 그리고 사적인 일들(놀기.. 등)을 하다보니

몸이 받쳐주질 않는 것 같습니다. 일단 적응이 될 때까지는 몸이 힘들어야지 어쩌겠습니까...


교수님께 라꾸라꾸 침대도 사달라고 말씀드렸고 하니... 이제는 버닝~~~

회사일도 빵꾸 안나게 젊음(... 이 남았나...)을 불살라서 고고싱 해야겠습니다.


-_ㅜ... 아 쩐다...



Posted by 자수씨
, |

오늘은 JMock 에 대해서 한번 후집어 보았습니다.

일단 JMock 은 아래 설명과 같습니다.
JMock is a library that supports test-driven development of Java code with mock objects.
Mock objects help you design and test the interactions between the objects in your programs.

영어는 보시는 분에게 해석을 맡기고 저는 바로 jMock 을 사용하는 방법에 대해서 설명 들어갑니다.

jMock 홈페이지는 다음과 같습니다. http://www.jmock.org




1. maven 을 이용하여 JUnit 과 jMock 을 사용할 수 있는 이클립스 프로젝트 만들기

일단 지난 포스트에서 설치했던 maven 을 기준으로 작업을 하였습니다.
(이전 포스트 링크 : Apache Maven 으로 Eclipse 프로젝트 만들기)


ㅁ 새로운 메이븐 프로젝트를 생성합니다.
mvn archetype:create -DgroupId=kr.co.vicki.jmock -DartifactId=vicki-jmock


ㅁ JUnit 과 jMock 을 사용하기 위해 생성된 pom.xml 을 아래와 같이 수정합니다.
  - http://www.jmock.org/maven.html 참조



ㅁ 해당 프로젝트를 이클립스 프로젝트로 변환합니다.
cd vicki-jmock
mvn eclipse:eclipse


ㅁ 생성된 프로젝트를 이클립스에서 불러옵니다.



2. Service Layer 구현 및 DAO interface 정의

/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/User.java
로그인한 사용자의 정보를 가지고 있는 User 클래스


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/ILoginDAO.java
DAO 인터페이스


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/UserNotFoundException.java
사용자가 없을 경우에 대한 익셉션


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/UnmatchedPasswordException.java
패스워드가 맞지 않을 경우에 대한 익셉션


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/ILoginService.java


/vicki-jmock/src/main/java/kr/co/vicki/jmock/blog/LoginServiceImpl.java
ILoginService 구현체



3. jMock 을 이용한 테스트 코드 작성

/vicki-jmock/src/test/java/kr/co/vicki/jmock/blog/LoginServiceImplTest.java


소스에 달린 주석을 보시면 아시겠지만, jMock 이 하는 일은 인터페이스를 가지고 mock 오브젝트를 생성한 후 오브젝트의 메소드의 파라미터로 들어올 값을 예상하여 결과값을 반환해준다던가, 메소드의 호출 회수를 정의하는 역할을 하게 됩니다. Expectations Anonymous 클래스안의 초기화 블럭에서 예상되는 로직에 대한 정의를 하게 됩니다.

조금더 자세한 구문을 확인하고 싶다면 jMock 2 Cheat Sheet 를 확인하시기 바랍니다.


처음에 예제를 보구서 색다른 문법인지 알고 혼란을 겪었었는데... 알고보니 메소드명과 괄호를 한칸 띄었을 뿐이였답니다...
 
참~ 쉽죠잉... 하악...




Posted by 자수씨
, |

TDD 맛보기

JAVA / 2009. 2. 4. 03:04

이전 포스팅으로 만든 프로젝트로 TDD 를 살짝 맛보기를 해보겠습니다.

src/test/java 의 기본 패키지에 NumericTest 클래스를 생성합니다.
(테스트 소스 폴더)


NumericTest.java
처음 생성된 클래스는 역시 비어있습니다.



우리의 TODO 는 다음과 같습니다.
ㅁ 문자열이 숫자인지 확인


위의 내용을 처리하기 위해 다음과 같은 테스트 코드를 작성합니다.
NumericTest.java

위의 코드는 Numeric 이라는 클래스가 없으므로 컴파일 오류가 나게됩니다.

오류를 해결하기 위해 원래 생성하려고 했던 Numeric 클래스를 src/main/java 폴더에 생성합니다.


Numeric.java




NumericTest 클래스의 남은 오류를 제거하기 위해서는 isNumber 메소드를 구현하여야 합니다.
Numeric.java




이제는 테스트 코드에 오류도 없고 테스트를 돌려봅니다.



실패를 없앨 수 있는 가장 빠른 수정방법을 선택합니다.
Numeric.java



이걸로는 테스트를 끝냈다고 볼 수 없겠죠. 숫자가 아닌 것을 넣어서 확인을 해보겠습니다.
NumericTest.java


당연한 결과이지만 테스트 실패가 발생하였습니다.

우리의 목적은 JUnit 의 녹색바이기 때문에 Numeric 의 isNumber 메소드를 수정합니다.
Numeric.java



테스트가 성공하였습니다.
이대로 끝날 줄 알았으나 할일이 추가되었습니다.
ㅁ 문자열이 숫자인지 확인
ㅁ 입력 파라미터가 null 이면 숫자가 아님
ㅁ 소수점도 숫자임

위의 두 조건을 테스트 하기 위해 테스트 코드에 검증 조건을 추가합니다.
NumericTest.java


원래의 방식이라면 하나씩 해결하겠지만... 포스팅이 길어지는 관계로 한방에 처리하겠습니다.
Numeric.java



해결하다보니 또 하나의 TODO 가 추가되었습니다.
ㅁ 문자열이 숫자인지 확인
ㅁ 입력 파라미터가 null 이면 숫자가 아님
ㅁ 소수점도 숫자임

ㅁ 음수도 숫자

테스트 코드에 검증 조건을 추가합니다.
NumericTest.java


테스트를 성공하기 위해 수정작업을 진행합니다.
Numeric.java



모든 테스트를 통과한 녹색바를 확인하였습니다.



테스트 코드를 작성하게 되면 실제 사용하는 클래스의 메소드가 변경되었더라도 기존의 테스트를 통과하여야지만
다음으로 진행할 수 있기 때문에 신뢰성을 보장할 수 있습니다.

사람이 일일히 수작업으로 확인하는 과정을 다음과 같은 테스트 코드를 통해서 손쉽게 처리할 수 있습니다.

실제 프로젝트에서 이런 방식으로 개발하는 날이 언제쯤 올까요...



Posted by 자수씨
, |

작년부터 관심을 가지고 있었던 maven 을 재성이형을 통해 익히게 되어서 정리를 해보았습니다.

Maven is a software tool for Java project management and build automation created by Sonatype's Jason van Zyl in 2002. It is similar in functionality to the Apache Ant tool (and to a lesser extent, PHP's PEAR and Perl's CPAN), but has a simpler build configuration model, based on an XML format. Maven is hosted by the Apache Software Foundation, where it was formerly part of the Jakarta Project.

출처: http://en.wikipedia.org/wiki/Apache_Maven


메이븐은 위의 내용을 빌리자만 간단하게 말해서 자바프로젝트 관리와 빌드의 자동화를 위한 툴입니다.

이제 메이븐이 무엇을 하는지 알았으니 사용해보기 위해 설치를 합니다.

ㅁ Apache Maven 의 설치

http://maven.apache.org 사이트로 접속을 하여서 좌측의 Download 링크를 클릭합니다.


필자의 설치환경이 윈도우즈이기 때문에 Maven-2.0.9 (zip) 으로 다운을 받습니다.



다운 받은 maven 압축파일을 적당한 위치에 압축을 풀고 환경변수에 설정을 합니다.
MAVEN_HOME: 압축을 푼 경로
PATH: [기존경로];%MAVEN_HOME%\bin




실제로 설정이 되었는지 확인하기 위해서 커맨드창을 하나 띄우고 아래의 명령어를 입력합니다.

mvn -version


위와 같이 Maven 정보가 나오면 올바르게 설치한 것입니다.


ㅁ 이클립스 프로젝트의 생성

임의의 폴더에 아래의 명령을 통해 maven 프로젝트를 생성합니다.

mvn archetype:create -DgroupId=kr.co.vicki.maven -DartifactId=vicki-maven


정상적으로 생성이 되면 위의 같이 BUILD SUCCESSFUL 을 보실 수 있습니다.

생성된 폴더를 탐색기로 보면 다음과 같은데, 사용할 라이브러리를 설정하기 위해서 pom.xml 를 재설정합니다.


현재 필자의 PC 에서는 기본적으로 3.8.1 버전으로 설정이 되어있어 최신버전인 4.5 로 수정하여 저장하였습니다.



이클립스 프로젝트 생성을 위해 아래와 같은 명령을 기존의 커맨드창을 통해 실행합니다.

cd vicki-maven
mvn eclipse:eclipse


기존 메이븐 리파지토리에 없는 라이브러리를 다운받고 정상적으로 빌드가 되면 위와 같은 화면을 볼 수 있습니다.

메이븐 리파지토리의 디렉토리 구조입니다. 4.5 버전을 새로 받았습니다.




ㅁ 이클립스 설정 변경

위에서 만들었던 이클립스 프로젝트를 사용하기 위해 이클립스의 File > Import 메뉴를 선택합니다.
그런 후, Existing Projects into Workspace 를 선택합니다.



Select root directoryBrowse... 버튼을 통해 기존에 만들었던 프로젝트 경로를 선택하고
아래에 Copy projects into workspace 를 체크하고 Finish 합니다.



이렇게 기존 프로젝트를 Import 하게되면 엑박을 보실 수 있습니다.



원인은 M2_REPO 라는 Classpath Variable 이 설정되어 있지 않기 때문입니다.



Window > Preferences 메뉴를 선택하고 Java > Build Path > Classpath Variables 를 선택합니다.
New... 버튼을 통해 M2_REPO 변수를 새로 추가합니다.



정상적인 프로젝트를 확인할 수 있습니다.



원래 미리 정리하려고 하였으나 연구실 복귀로 인하여 시간적 여유가 부족하여 부득히 늦은 시간에 정리하게 되었습니다.
우리 멘티 동생들에게 도움이 되었으면 좋겠습니다.  >_<




Posted by 자수씨
, |

어제부로 연구실로 복귀했습니다.
어제는 셋팅하느라 하루를 날려먹고 오늘은 연구실 리빌딩에 대해서 고민하다가 하루 다 날려먹었습니다.

어쨌든 연구실에 새살림을 차렸습니다.

새로 구매한 모니터~


TV도 잘나옵니다.



이 곳이 바로 랩짱자리입니다.



언제나 너저분~


끄응;;;



랩짱의 의자입니다. 약간 불편... 잘 때는 좋음...




아직 적응이 안되고 원래 리더는 어울리지 않는 성격이라서 조금 힘이 들지만 어쨌든 이겨나가야 하겄습니다.
SSM이랑 Campus Wizard 되었으면 죽었을지도;;; 꾸웩;;;





Posted by 자수씨
, |

지난번에 "내가 제일 좋아하는 프로젝트는 누규?" 이벤트의 선물 속에 미니 USB 가 있었습니다.
보면 볼수록 이쁘네요 ㅋㅋㅋ

이걸 어따 써먹지...











Posted by 자수씨
, |

어제 WoC 부트캠프에서 멘토님이 메이븐을 설명하시다가 터미널창에서 메이븐 명령어를 치는 것을 보고 기존에 만들었던 플러그인을 업그레이드 하면 좋겠다는 생각이 들어서 작업에 들어갔습니다.

아래 그림처럼 리소스를 우클릭하게되면 Open Terminal 이라는 메뉴가 있습니다.



메뉴를 클릭하면~ 아래와 같은 터미널창이 뜨게 됩니다.



문제는 단축키가 잘 안먹는다는 점이...
org.eclipse.ui.popupMenus > action 의 definitionId 를 command Id 로 설정을 했는데 레이블에는 나오는데 실제로 단축키가 먹지않는... 그것 때문에 계속 해보다가 그냥 포기하고 나중에 마무리 하려고 합니다. ㅋㅋㅋ


업데이트 사이트에 슬슬 올려야겠네요~~


Posted by 자수씨
, |

[WoC] Boot Camp~

외부행사 / 2009. 1. 31. 22:41

어제 술마시고 학교에서 3시간 자고 일어나서 WoC 부트캠프에 참여하기 위해 집으로 꾸역꾸역 넘어와서 씻고 삼성역으로 이동하였습니다.... 너무 피곤해서 지하철에서 졸면서...

일단 삼성동 엔씨 소프트 본사에 도착하였습니다.


행사장으로 들어가는 입구입니다.


어서왔습니다.


도착하니 (약간 늦었습니다. 5분?) WoC 에 대한 설명과 오늘 일정에 대해서 설명해주시고 있었습니다.


수다로 네트워킹 시간에 열심히 진행해주신 송시은님입니다. (많이 떠시더라구요...)



멘토와 멘티에게 제공되는 간식거리입니다.



프로젝트 매니지먼트 방법이라는 주제로 박창우님의 강의가 있었습니다.


모든 일정이 끝나고 멘토이신 박재성님(형... 이라고 해야하나요...) 과 함께 우리의 프로젝트에 대해서 많은 이야기를 나누었습니다. 그리고 프로젝트 시작을 위한 maven 설정과 TDD 시연을 해주셨습니다.

자세한 내용은 나중에 위키를 통해서...

모든 일정을 마치고 집으로 가는 길에 단체사진을 찍기위해 모였습니다. (특별출연: okjsp kenu 님)





멘토님과 동료 멘티분들을 만나서 참 좋았습니다. 애석하게도 멘티중에 제가 제일 나이가 많네요... ㄷㄷㄷ
게다가 irc 에서 온갖 만행을 나누던 쟈포동를 만나게되었다는... (날 속인...)

앞으로 잘 해보아요~


기념품을 사진찍고 싶었으나 전날 과음으로 인해 귀차니즘 크리가 발동하여...
(구성품: 후드티, 쿠션, 레몬펜 포스트잇, 티머니, 인크루트 쿠폰 등...)

랄랄라~~

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백