블로그 이미지
Max.

calendar

  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      

Notice

2009. 10. 29. 11:30 개발관련
    ____  ____  ____
   / __ \/ __ \/ __ \
  / /_/ / / / / / / /
 / _, _/ /_/ / /_/ /
/_/ |_|\____/\____/    1.0.0.RC3 [rev 358]


1. Addon 개발
요즘 상당히 공격적으로 Add-on 개발을 권장하고 있는듯 하다. 관련해서 셀 명령어도 추가되었고, 사용법도 간단히 나와있다. 최근 SpringOne 2GX에서도 한 섹션을 할당할 정도다. 이 섹션내용은 정말 궁금하다.(Spring Roo: technical deep dive)


2. 대형 데이터 필드(CLOB,Text 등) 사용
현재까지는 지원하는 명령은 없다. 필수적으로 사용되는 위와 같은 필드들은 현재는 수동으로 고쳐서 사용해야 한다. 관련해서 대형 필드를 추가할수 있도록 기능개선 작업이 진행될듯 하다. 현재는 수동으로 해당 필드 형식을 수정하면, 잘 동작한다.(MySQL innoDB에서만 테스트 해봄)


3. ADJT 플러그인
aj에 있는 객체를 가져다 쓰기가 괴롭다. 자동완성기능이 지원안됨은 물론, 표현도 일반 텍스트 편집기와 다를게 없다. 좀 난감한 상황이다. ADJT 플러그인이 조속히 업에이트되어 자동완성 기능을 누리는 기뿐을 기다릴 뿐이다.


4. Roo 저장소
최근에 별로 업데이트 되는게 없고, 추가된 기능보다는, 버그와 잘자란 기능개선뿐이다. 슬슬 add-on에 신경써야할 분위기 인가...(요즘 업데이트 소식은 기능추가 보다는, 안정화 위주로 되는것 같다. 꾸준히 업데이트 되고 있다는것에 만족해야 겠지...)


5. Roo 개발시 가장 많은 시간은 소비하는 부분은?
처음엔 Roo 사용법과 객체상태 또는 관계 파악 이였는데, 어느정도 도메인에 익숙해지면, Html이나 Javascript 등 UI 꾸미는 일이나, jsp 수정하는데 많은 시간을 할애하게 된다. 특히 기본 addon으로 빌드시, jspx와 Dojo(Spring JS)는 가장 아쉽게 느껴진다.

'개발관련' 카테고리의 다른 글

Spring Roo 잡소식(7)  (0) 2009.11.11
DWR3.0 RC1 Maven Repository 추가하기  (0) 2009.11.02
Spring Roo 잡소식(6)  (0) 2009.10.29
Introducing Apache Mahout  (0) 2009.10.28
Spring Roo 잡소식(5)  (0) 2009.10.28
Mysql5.1 설치 및 한글설정  (0) 2009.10.27
posted by Max.
TAG RC3, ROO, Spring

댓글을 달아 주세요

2009. 10. 28. 10:00 개발관련
    ____  ____  ____
   / __ \/ __ \/ __ \
  / /_/ / / / / / / /
 / _, _/ /_/ / /_/ /
/_/ |_|\____/\____/    1.0.0.RC3 [rev 340]

현재, Roo 에서는 @OrderBy 테그를 지원하지 않고 있는데, 지원될듯하고, finder에서도 finder명으로 구분하여 Order By  기능을 지원될듯 하다.


2. Finder 제약
Finder 생성 방법은 실무에서 사용하기엔 아직 제약사항이 많다. 그것은 Finder를 생성하는 조건 이외의 검색이 필요할때가 많은데, AND, OR 조건만으로 표현하기엔 어려운점이 있고, 경우의 수를 다 표현하려면, 상당히 많은 메서드를 생성해야 하는 복잡함이 생긴다. 딱히 해결 방법이 없다. entityManger를 가져다가 직접 구현하는 수 밖에...


3. 정식 릴리즈는 언제쯤...
GA 1.0.0 버전은 올 12월을 목표로 하고 있단다. 그때쯤, 정식 Reference문서도 나오지 않을까 한다. 그전에 Roo에 대한 양질의 문서는 여기를 참고 하면 된다.


4. reCAPTCHA(글자 이미지 생성) 
Java버전으로도 지원(http://tanesha.net/projects/recaptcha4j/)하는데, Roo에서도 지원할수 있게 누가좀 만들어 줬으면 하는 바램일까? 직접 지원보다는 addon 만들것을 살며시 소개(https://jira.springsource.org/browse/ROO-287)하고 있다. ㅡㅡ;;


5. Service Layer는 어디에...
자동으로 생성된 코드에는 Service Layer가 없다. 필요하면, 추가해서 만들면된다. Roo를 사용할때는 좀더 유연한 사고가 필수적이다. 생성된 스크립트 그대로 사용해야 한다고 생각하지 말고, 초기에 한번만 사용할수도 있고, 도메인만 사용할수도 있고, 개발설정만 사용할수도 있다. 모든걸 Roo로 해결하려면, 한 10년은 더 있어야 하지 않을까?

'개발관련' 카테고리의 다른 글

Spring Roo 잡소식(6)  (0) 2009.10.29
Introducing Apache Mahout  (0) 2009.10.28
Spring Roo 잡소식(5)  (0) 2009.10.28
Mysql5.1 설치 및 한글설정  (0) 2009.10.27
Spring Roo 잡소식(4)  (0) 2009.10.27
Eclipse 다운로드 및 플러그인 URL(2009-10-09)  (2) 2009.10.09
posted by Max.
TAG RC2, ROO, Spring

댓글을 달아 주세요

2009. 10. 27. 13:41 개발관련
    ____  ____  ____
   / __ \/ __ \/ __ \
  / /_/ / / / / / / /
 / _, _/ /_/ / /_/ /
/_/ |_|\____/\____/    1.0.0.RC3 [rev 340]

Roo가 개발되면서, 지속적으로 대두되었던것 중에 하나가 Addon 개발이였다. Roo 패키지 구조가 Addon구조로 개발되면서, 사용자들이 Addon개발을 할수 있게 처음부터 고안되어 있었던 것이다. M1이 빌드되기도 전에 일부 열성적인 사람들이 Addon개발을 하여 Roo개발자들에게 보여줌으로써, 그 가능성을 보게 된 개발자들은 좀더 편리하게 Addon을 개발하기 위해, Addon지원을 위한 여러가지 조율 끝에 이번에 이 명령어가 새로 선보이게 된것이다.  아래는 addon 명령으로 크게 4개로 나누어져있고, 아직 릴리즈 되지 않은 RC3에 있다.
addon cleanup     addon install     addon list        addon uninstall


2. aj 파일 분리 히스토리
처음 설계시 aj 파일은 특정 소스 디렉토리로 배치하려고 했다고 한다. 그러나, 여러가지 툴들(Maven, AJDT, Eclipse plugin...)의 지원이 어려워서 결국 java 소스 디렉토리인, 도메인 디렉토리에 포함시킬수 밖에 없었단다.


3. Multi module project Support[https://jira.springsource.org/browse/ROO-120]
Version 1.1.0.M1 에서 지원하기로 계획되어 있다. 중대형을 위해서는 모듈화가 필수적인데, 이때나 지원될것 같다.


4. toString()
Roo에서 도메인 객체를 생성하면, toString() 메서드도 하나의 aj파일에 생성된다. 이에 대해, ITDs에 대한 과잉(overkill) 사용이 아니냐는 지적이 나오는데, 만약, 해당 모델 객체에 toString() 메서드를 추가하면, Roo Shell은 해당 toString aj파일을 자동으로 제거한다. 그리고 자동 생성된 Roo의 toString은 Debug시 상당히 유용하다.


5.RIA 지원
RIA는 과거 로드맵에서 지원된다는 아키텍처 비슷한 그림에서 본적이 있지만, 이후로 언급된걸 보지 못했다. 최근 소식을 보니, 2.0.0 버전, 약 2010년 후반기에 지원할 생각인가 보다. 아마도 Flex와 GWT가 가장 먼저 지원될듯 하다.


6. Spring Shell
지금 Roo는 Shell Command를 사용하고 있는데(JLine Shell), 명령어 내릴때 가끔 버그가 발생한다.(특히 자동완성 기능에 대해서) 이에 대해 Roo 개발자들도 익히 알고 있어서, 직접 Shell을 만들기로 했단다. 그래서 Roo 1.5.0버전부터는 Spring Shell을 이용할 예정이란다. 대략 내년 2/4분기를 목표로 개발할듯 하다. 좀더 멋진 Shell이 기대된다.

'개발관련' 카테고리의 다른 글

Spring Roo 잡소식(5)  (0) 2009.10.28
Mysql5.1 설치 및 한글설정  (0) 2009.10.27
Spring Roo 잡소식(4)  (0) 2009.10.27
Eclipse 다운로드 및 플러그인 URL(2009-10-09)  (2) 2009.10.09
Spring Roo RC2[Revision 319] Demo Testing  (2) 2009.10.06
Spring Roo 잡소식(3)  (0) 2009.10.05
posted by Max.
TAG RC2, ROO, Spring

댓글을 달아 주세요

2009. 10. 6. 09:20 개발관련
RC2가 생각보다 빨리 발표 되었네요. 좀 성급하다할 정도로 말이죠. 지금도 지속적으로 업데이트 되고 있는데, 좀 산만해 보입니다. 이렇게 서두르는 것은 가을 세미나 때문일까요? 아무튼, 버그 픽스 되자 마자 RC2를 바로 발표해버리는 것이 뭔가 쫏기고 있는듯한 인상을 줍니다. 아래는 RC2 발표 되기전인 Revision 319 버전일때 RC1과 RC2의 비교 테스트한 내용들 입니다.


1. 프로젝트 생성하기
Befer 이하 [B]
create project -topLevelPackage kr.js.sms -projectName max

After 이하 [A]
project --topLevelPackage kr.js.sms --projectName max --java 6

create명령 대신에 project명령으로 바뀌고, 옵션도 --로 바뀌었다. 새로 축된 --java 옵션도 있다. 위명령으로 생성되는 기본 디렉토리엔 WEBAPP가 포함되어 있어서 이젠 기본적으로 웹프로젝트를 염두해 두고 있다는것이 의외다.

2. 로깅 설정하기
[B]
configure logging -level DEBUG -package WEB

[A]
logging setup --level DEBUG --package ALL_SPRING

기존의 configure명령이 없어지고 logging명령으로 바뀌었다. --package옵션으로는 더 다양한 값들은 제공하고 있다.(ALL_SPRING, AOP, PERSISTENCE,  PROJECT,  ROOT,  SECURITY, TRANSACTIONS, WEB)

3. ORM 설정하기
[B]
install jpa -provider HIBERNATE -database ORACLE

[A]
persistence setup --database ORACLE --provider HIBERNATE

install명령이 제거 되었고, persistence명령이 추가 되었다. database.properties 핸들링 명령도 약간 바뀌었는데 아래와 같다.
[B]
database set -key database.url -value jdbc:oracle:thin:@127.0.0.1:1521:XE
database set -key database.username -value max
database set -key database.password -value 1111

[A]
database properties set --key database.url --value jdbc:oracle:thin:@127.0.0.1:1521:XE
database properties set --key database.username --value max
database properties set --key database.password --value 1111


4. Domain Entity 추가하기
[B]
new persistent class jpa -name ~.domain.Account

[A]
entity --name ~.domain.Account --table t_account

new persistent class jpa라는 명령에서 entity로 바뀌었다. 훨씬 깔끔해 졌다. --table같은 옵션도 추가 되었고, 기타 추상(abstract),확장(extends) 같은 명령 등이 포함되었다. 특히 --identifierColum 과 --identifierField이 추가 되었는데 무슨 차이일까~요?

5. Entity field 추가하기
[B]
add field string -class ~.domain.Account -fieldName accountId -notNull -sizeMin 2 -sizeMax 20
add field number -class ~.domain.Account -fieldName totalPoint -type java.lang.Long -decimalMin 0
add field date jpa -class ~.domain.Account -fieldName regDate -type java.util.Date

[A]
field string --class ~.domain.Account --fieldName accountId --notNull --sizeMin 2 --sizeMax 20
field number --class ~.domain.Account --fieldName totalPoint --type java.lang.Long --decimalMin 0
field date --class ~.domain.Account --fieldName regDate --type java.util.Date

기존에 add field명령으로 시작 되었던것들이 모두 field명령으로 바뀌었지만, 특별히 달라진건 없다.

6. Integration Test 하기
[B]
new integration test -entity ~.domain.Code

[A]
test integration --entity ~.domain.Code

테스트 관련되어서 보다 직관적이게 test명령으로 시작하게 바뀌었다. 새로 추가된것은 'test mock' 명령이다.

7. 관계 설정하기
[B]
add field set jpa -class ~.domain.Account -fieldName points -element ~.domain.Point
add field reference jpa -class ~.domain.Point -fieldName account -type ~.domain.Account

[A]
field set --class ~.domain.Account --fieldName points --element ~.domain.Point
field reference --class ~.domain.Point --fieldName account --type ~.domain.Account

add로 시작되는 명령 대신에 field로 시작되고, 서너개의 구분 명령을 2개의 구분 명령으로 단순화 하였다.

8. Controller 추가하기
[B]
new controller automatic -name ~.web.AccountController -formBackingObject ~.domain.Account

[A]
controller scaffold --name ~web.AccountController --entity ~.domain.Account --dateFormat yyyy-MM-dd

기존의 명령이 controller scaffold으로 변경되여 무엇이 생성될지 좀더 직관적이게 네이밍되었다. 옵션으로 --dateFormat이 추가 되었고, 모든 컨트롤러를 생성하기 위한 'controller all' 명령이 새로 추가 되었다.

9. 통합된 Maven 명령 사용하기
perform clean     perform command   perform eclipse   perform package   perform tests
Roo shell 안에서 위와 같은 Maven wrapper클래스를 제공한다.(Rev. 319 버젼에서는 잘 안된다. roo shell 밖에서는 잘됨.)

10. 기타 바뀐 명령들
[B]
new selenium test -controller ~.web.AccountController

[A]
selenium test --controller kr.js.sms.web.AccountController

[B]
list finders for -class ~.domain.Account

[A]
finder list --class ~.domain.Account


[B]
install finder -finderName findAccountsByAccountName -class ~.domain.Account

[A]
finder add --finderName findAccountsByAccountIdLike --class ~.domain.Account


[B]
install security

[A]
security setup


[B]
install email provider -hostServer localhost -protocol SMTP -port 25

[A]
email sender setup --hostServer localhost --protocol SMTP --port 25


11. ITDs 파일의 변화.
319 리비젼의 백미는 ITDs로 생성된 *.aj파일들이다. 말이 필요없다. 아래 생성된 파일을 보라. 이것이 주는 의미는 상당하다. 무엇이 상당하다는 걸 까~요?

[B]
privileged
aspect Article_Roo_Entity {
   
    @javax.persistence.PersistenceContext   
   
transient javax.persistence.EntityManager Article.entityManager;   
   
    @javax.persistence.Id   
   
@javax.persistence.GeneratedValue(strategy = javax.persistence.GenerationType.AUTO)   
    @javax.persistence.Column(name = "id")   
   
private java.lang.Long Article.id;   
   
    @javax.persistence.Version   
   
@javax.persistence.Column(name = "version")   
   
private java.lang.Integer Article.version;   
   
    public java.lang.Long Article.getId() {   
        return this.id;       
    }
...



[A]
privileged
aspect Account_Roo_Entity {
   
    @PersistenceContext   
   
transient EntityManager Account.entityManager;   
   
    @Id   
   
@GeneratedValue(strategy = GenerationType.AUTO)   
    @Column(name = "id")   
   
private Long Account.id;   
   
    @Version   
   
@Column(name = "version")   
   
private Integer Account.version;   
   
    public Long Account.getId() {   
        return this.id;       
    }
...

posted by Max.
TAG ROO, Spring

댓글을 달아 주세요

  1. Favicon of http://benelog.egloos.com BlogIcon benelog 2009.10.07 16:08  Addr Edit/Del Reply

    와 생성된 코드가 훨씬 깔끔해 졌네요.

    ROO 관련 자료 잘 보고 있습니다~ 감사합니다~

    • Favicon of http://yunsunghan.tistory.com BlogIcon Max 2009.10.08 08:35  Addr Edit/Del

      날씨가 많이 추워졌네요. 감기 조심 하세요. ^^*

2009. 10. 5. 15:36 개발관련


controller all --package ~.web
Revision 300 이상을 받아서 보면, 위와같은 명령으로 생성된 Entity의 모든 Controller를 자동으로 생성하여 타이핑 수를 줄여준다. 굳이 꼭 모든것을 생성할 필요가 있겠냐만은 이러한 기능도 있다는걸 기억하자. (
http://jira.springframework.org/browse/ROO-236)


ITDs 로 생성된파일의 표현법이 바뀌었다.
이전 : private java.lang.Integer Pizza.version;
이후 : private Integer Pizza.version;
앞에 거추장스러운것들이 사라졌다. 해당 버전을 다운받아 실행해보는것이 필수다. 거의 봉사 눈뜨는 겪이다.(http://jira.springframework.org/browse/ROO-177)


Maven명령 일부가 Roo shell에서도 가능하다.
추가된 Maven 명령 예는 아래와 같다.
perform clean = mvn eclipse:clean clean
perform eclipse = mvn eclipse:clean eclipse:eclipse
perform package = mvn package
perform tests = mvn test
이게 필요하다 싶으면서도, 굳이 포함할 필요가 있을까 하는 의문도 생긴다. (http://jira.springframework.org/browse/ROO-201)


ORM fetch 옵션이 추가 되었다.
이부분의 지원이 미약 했는데 좋은 소식이다. 예제는 아래와 같다.
field reference --class ~.domain.Pet --fieldName owner --type ~.domain.Owner --fetch EAGER
field set --class ~.domain.Owner --fieldName pets --element ~.domain.Pet --mappedBy owner --notNull false --cardinality ONE_TO_MANY --fetch LAZY
field set --class ~.domain.Vet --fieldName specialties --element ~.reference.Specialty --cardinality MANY_TO_MANY --notNull false --fetch EAGER
Entity 설정이 복잡할때, 모든걸 Roo Shell에서 다 설정할수 있게 하는것이 좋은건지는 모르겠다. 이런식으로 하나둘 추가되면, 은근히 기대할련지도 모르겠다.


추석 다녀온후 약간(?)의 변화가 생겨나고 있다. 기존의 Roo명령(RC1)과도 많이 달라졌다.(여기 저기 정리되어지는 느낌이 든다고나 할까) GA 나오기까지 여러가지도 변화될것이 틀림없다. Reference 문서도 작업을 해야 할텐데, 고작(?) 그 두사람이 과연 얼마나 할수 있을까 하는 의문도 든다. 작업 시간때를 보더라도 Alex 같은 경우 오전 정식 근무시간 전이나, 오후에만 작업하고, Stefan은 말 그대로 짬나는 시간마다 하는 것 같다.(오전 근무 시간전, 점심때, 그리고 오후 짬짬이 커밋하고 있다.) 뭐 이런식으로 해도 잘되어간다는게 신기하기만 하다.

posted by Max.
TAG ROO, Spring

댓글을 달아 주세요

2009. 9. 29. 09:03 개발관련

그동안, 날짜형식이 맞지 않아서, 자동 생성된 *Controller_Roo_Controller.aj와 관련된 모든 CRUD *.jsp파일을 MMM d, yyyy에서 yyyy-MM-dd로 바꿔줘야 했다. 도메인 객체 수가 조금만 들어도 수정해야 할 파일의 숫자는 상당하다.


만약, 다시 Roo 스크립트를 추가하려면, 기존에 수정한 내용은 모두 되돌아 간다. automaticallyMaintainView = false로 하더라도, *.aj파일은 어쩔수 없다. 해당 날짜표시 문화권의 사람들이 아니면, 선택의 여지가 없는 번거러움이 발생했는데, 어제부로 이런 불편한 것이 제거 되었다.


바로 새로운 옵션인, -dateFormat 이 추가되 었기 때문이다. new controller automatic 명령에서 옵션으로 추가할수 있고, 이미 생성된 Controller에서 @RooWebScaffold의 속성으로 추가 할수 있다.

이것은 최근에 순전히 내가 불편해서 요청을 했는데, 정말 빠르게 반영시켜 주었다. 다른 이슈보다 수정되어야 할 파일들이 비교적 많은 작업이였는데, 작업해준것이 고마울 따름이다. 최근 포럼에서 Roo에 대한 불만이 나오면서, 해당 개발자들이 바빠르게 움직이는것 같다. 주말 사이에 많은 이슈 내용이 업데이트 되었다.


아래는 dateFormat 내용에 대한 스테판(Stefan)의 커밋 내용이다.

ROO-210: Dateformat conversion for free... as yyyy-MM-dd

Added a new dateFormat parameter to the @WebScaffold annotation. This allows you to define the date format on a per-controller basis and is reflected in the initbinder method of the controller itself as well as its related view artifacts (JSPs and Dojo artifacts).

The automatic controller command reflects this with the new (optional) -dateFormat flag:

new controller automatic -name ~.web.OwnerController -formBackingObject ~.domain.Owner -dateFormat dd-MM-yyyy

-------------------------------
M : /trunk/addon-web-mvc-controller/src/main/java/org/springframework/roo/addon/web/mvc/controller/ControllerCommands.java 
M : /trunk/addon-web-mvc-controller/src/main/java/org/springframework/roo/addon/web/mvc/controller/ControllerOperations.java 
M : /trunk/addon-web-mvc-controller/src/main/java/org/springframework/roo/addon/web/mvc/controller/RooWebScaffold.java 
M : /trunk/addon-web-mvc-controller/src/main/java/org/springframework/roo/addon/web/mvc/controller/WebScaffoldAnnotationValues.java 
M : /trunk/addon-web-mvc-controller/src/main/java/org/springframework/roo/addon/web/mvc/controller/WebScaffoldMetadata.java 
M : /trunk/addon-web-mvc-jsp/src/main/java/org/springframework/roo/addon/mvc/jsp/DojoUtils.java 
M : /trunk/addon-web-mvc-jsp/src/main/java/org/springframework/roo/addon/mvc/jsp/JspDocumentHelper.java 
M : /trunk/addon-web-selenium/src/main/java/org/springframework/roo/addon/web/selenium/SeleniumOperations.java 



이것이 스프링 커뮤니티의 위력인가? 제안한 내용이 바로 적용되어 버렸다. 최신버전으로 빌드하면, 해당 기능을 확인 할수 있다.
@RooWebScaffold(path = "account", automaticallyMaintainView = true, formBackingObject = Account.class, dateFormat = "yyyy-MM-dd")
@RequestMapping("/account/**")
@Controller
public class AccountController {
}

해당 코드를 돌려보고 확인했다. 잘된다.

- 관련된 포럼 해당 글은 http://forum.springsource.org/showthread.php?t=77825 이다.
- 관련된 JIRA 해당 글은 http://jira.springframework.org/browse/ROO-210 이다.
posted by Max.

댓글을 달아 주세요

  1. 요거 결국 해결되는군요. 좀 늦을 줄 알았는데... ㅎㅎ

    • Favicon of http://yunsunghan.tistory.com BlogIcon Max 2009.09.30 08:02  Addr Edit/Del

      아쉬운 놈이 땅 판다고, 결국 불편한 제가, 지난주에 콩글리쉬로 요청 했더니, 바로 반영시켜 주더군요. ^^;;;

      앞으론, 직접 개발해보고, 요청하는것도 좋을듯 하다는 생각이 들어요...

  2. 아항! 성한님이 요청하셨군요.
    기다리다 안 되면 제가 하려고 했는데...ㅎㅎ
    감사합니다.

  3. Favicon of http://benelog.egloos.com BlogIcon benelog 2009.10.07 16:09  Addr Edit/Del Reply

    저도 데모할 때 이것 때문에 Date 칼럼을 넣지 않았었는데, 반갑네요~ ^^

2009. 9. 28. 13:53 개발관련

보다 자세한 내용은 저장소의 readme.txt파일에 있다. 기본적인 테스트 환경은 JDK1.6 + maven 2.0.9 + svn + window vista 환경이다.

Roo를 다운로드할, 특정 디렉토리에서 SVN명령을 아래와 같이 실행한다.

다음으로, 윈도우 환경설정에서 아래와 같은 시스템 변수를 추가한다.
MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"
ROO_CLASSPATH_FILE="{사용자경로}\trunk\bootstrap\target\roo_classpath.txt"

Dos 커멘더에서 SVN으로 받은 폴더의 trunk로 이동후 아래와 같은 Maven 명령을 실행힌다.
mvn clean install site assembly:assembly
(가끔 컴파일시, PDF 생성에서 자바 outOfMemory가 나올수 있다.)

실행후 target폴더에 해당 버전의 zip파일이 생성되어 있다.
ex) org.springframework.roo.parent-1.0.0.RC2.zip

특정한 디렉토리에 압축을 풀고, 환경변수(ROO_HOME,PATH)에 추가하여 roo.bat를 실행하면 된다. 개발모드 실행은, 환경변수(PATH)에 "{사용자경로}\trunk\bootstrap"  추가하여 roo-dev.bat를 실행하면, 개발모드로 실행할수 있다. 주의할것은 위의 roo.bat와 roo-dev.bat는 각각 다른 roo실행파일을 참조하고 있다는것다.

화면은, ROO1.0.0.RC2의 개발 버전인, 2009-09-27 오전11:33:29 에 커밋된, Revision #274 버전이다.


posted by Max.

댓글을 달아 주세요

2009. 9. 9. 18:30 개발관련


1. 리소스 메시지를 하나 찍기 위해 <spring:message code="${rsvp.email}"/> 같은 많은 양의 코딩을 해야 한다 이런 하드코딩을 개선할 생각이 없는가? 이미 관련해서 가능한 개선을 했고, trunk에서 checkout 받아서 테스트 하면, 잘 된다는것을 확인할수 있단다.

2. Roo UI를 구성하는 jsp 화면을 보면, 아주 simple하게 구성되어 있는데, 이를 좀더 편리하고 실제 프로젝트에서 쓸만한 다양한 검색이나 Order 기능을 포함한 풍부한 UI를 제공하길 바라는 글이 올라왔다. (마치 Appfuse처럼) 질문자의 첨부된 파일을 보면, 혹 할정도 인데, 개발진에서 코멘트가 없는걸 보니, 아직 그것까지 신경쓸 여력이 없는것 같다.

3. DAO,Service, Facade 같은 addon을 후속으로 제공할 것인가에 대한 물음에 Stefan의 대답은 이것이다.

At the moment Roo generated applications do not generate a traditional repository or service layer, but instead encourage a rich domain layer. The data access is fully included in the domain layer without actually showing up in the Java sources. It is, instead, handled by introduced code (ie Roo_Entity aspects). Since most JPA-managed repositories we see today do actually not add much value we believe Roo's approach can offer the same without the need for this extra layer. Keep in mind that Roo allows you to customize your data access as you wish.

As for the services layer, it is really hard to figure out what you want to do in there. Roo allows you to create simple java classes to get you started. Roo cannot determine which methods for business logic that is not included in your rich domain layer you need in the services layer. Again, we don't much value in a services layer which acts as a simple facade that just hides a repository by mapping its methods 1:1. So long story short, Roo does not prevent you from creating your own services layer when needed but this cannot be generated by Roo as this layer would typically contain application specific business logic.

컨설턴트 집단이라 그런지, 말과 글이 구렁이 담넘어간다.

4. Web 프로젝트로 인식 시킬려면, 적어도 하나이상의 Controller 명령을 내려야만 한다. 이거 이해가 안된다 라고 Roo 골수팬인 Raul이 말하자. Stefan은 이미 알고 있지만, 이슈로 등록해 주길 바란다고 한다. 그런데 가만히 보면, 이사람들도 개발자다 보니, 이슈를 고객으로 부터 나오는것을 선호(?) 또는 의도(?) 하는것 같다. 사업주에게 보여지는 부분을 신경쓰는것 같다.

5. @RequestMapping 이 모두 ITDs로 설정되기 때문에, URL을 개발자가 마음대로 설정할수 없다.(ROO-183)라는 이슈에 대해, @RooWebScaffold에 -path 라는 속성을 추가 해서 변경 가능하도록 업데이트 했다. 2009-09-08일자 Stefan이 한 짓이다.

posted by Max.
TAG ROO, Spring

댓글을 달아 주세요

  1. 저는 controller 만들 때에 web project로 인식되로록 하는 게 합리적일 것 같네요. 저 같아도 당장은 도메인 생성툴로 더 관심이 많으니까요. web 쪽은 spring mvc가 아닌 다른 더 생산성 높은 프레임워크를 쓰고 싶을 수도 있고...

    • Favicon of https://yunsunghan.tistory.com BlogIcon Max. 2009.09.28 14:00 신고  Addr Edit/Del

      만약, 도메인만 Roo로 생성하고 controller는 직접 구현한다면, web.xml 같은 것을 직접 만들어야 하는데, 그러면 약간 불편하니, 어쩔수 없이 new controller 명령을 하나 내려야 하는데, 그럴때, 해당 명령없이도 가능하게 하는 방법을 제공하려는 것 같습니다.

      지금 이대로도 굳이 불편하다는 생각은 잘 안드는 이유는, 다른 기능이 워낙 거시기(?)하기 때문에, 빨리 RA가 나와야 하는데 말이죠...

2009. 9. 7. 08:46 개발관련

사실 SpringOneEurope에서 'Extreme Productivity in Application Development with Roo' 섹션을 보고 거의 매일 같이 관련 PPT가 공유될까 모니터링하고 있었는데, 안나오더라구요. 거의 포기 했었죠. 그런데 오늘아침 이게 문서와 함께 동영상이 인포큐에 공유 되었군요.
멋진 소식입니다. 감상해 보시죠. ^^*


SpringOne Europe 2009 Session: Ben Alex
InfoQ continues to publish fantastic content from SpringOne Europe 2009. In this technical presentation, Ben Alex talks about extreme productivity in application development using the new Spring Roo project. The recorded presentation is from April of this year and Roo has progressed significantly since and is now at release candidate stage. Be sure to check out Ben's blog posts describing Roo: Fantastic presentations like this will be happening again, October 19-22nd, in New Orleans at SpringOne 2GX 2009. Be sure to register now!


'개발관련' 카테고리의 다른 글

감성 에너지 고갈  (0) 2009.09.10
Spring Roo 잡소식(2)  (2) 2009.09.09
SpringOne Europe 2009에서 발표된 Spring Roo 섹션영상 공개됨  (0) 2009.09.07
Roo를 바라보는 시선  (0) 2009.09.05
몇 안남은 옛날 개발자  (4) 2009.09.04
Roo addon-web-mvc-jsp  (0) 2009.09.02
posted by Max.

댓글을 달아 주세요

2009. 9. 5. 00:30 개발관련

소스 생성 툴적인 기능이 강합니다. ITDs라는 그동안 관심이 별로 없던 기술이 등장하면서, 그 임팩트가 크고, Roo를 소스 생성 툴로 보는 경향이 제일 강한듯 합니다. 그래서, 새로운 프로젝트를 자주 자주 하지 않는 팀에서는 별로 관심을 보이지 않는것 같습니다. 완전히 새로 구성된 제너레이터와 소스구성(생소한 개념의)으로 한두번 돌려보고, 아직은 아니다 라는생각을 하겠지요.

DDD를 구현한 이상적인 프레임워크로 보는 것도 강합니다. 말 그대로 '이상적인'것이라, 현장에 쓰기엔 자도 거리가 있어 보이는 거겠죠. 개념도 생소하고, 생성된 코드도 맹맹합니다. 도대체 현장에서 쓸수 있는거라곤 찾아보기 힘들다라고 생각하실테지요.

도메인 생성 도구로서의 Roo로 본다면 어떨까 하는 생각이 들었습니다. 프로젝트 전체를 Roo로 하지 않고 부분만 적용하는 거지요. 그 부분이 실용적인 부분만 때어내는 거지요. 그럼 소스코드에 큰변화없이 특정 지역만 편리하게 생성하고 관리되어진다면, 실무에도 적용이 가능하지 않을까요? 이것은 과거 Spring의 점진적인 적용 전술과 흡사 합니다.

한방에, 단번에 모두 적용하기는 힘들겠지요. 아직 정식버전도 안나왔는데, 적어도 2.0 이상은 되어야 하는 생각도 들구요. 어쩌면, 앞으로 2~3년 이상 더 걸리수도 있겠지요. Spring이 처음에 그랬던것처럼...


'개발관련' 카테고리의 다른 글

Spring Roo 잡소식(2)  (2) 2009.09.09
SpringOne Europe 2009에서 발표된 Spring Roo 섹션영상 공개됨  (0) 2009.09.07
Roo를 바라보는 시선  (0) 2009.09.05
몇 안남은 옛날 개발자  (4) 2009.09.04
Roo addon-web-mvc-jsp  (0) 2009.09.02
쉬운것 과 어려운것  (5) 2009.08.27
posted by Max.
TAG ROO, Spring

댓글을 달아 주세요

prev 1 2 3 4 5 6 7 next