블로그 이미지
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          

Notice

'2011/02'에 해당되는 글 3

  1. 2011.02.22 Roo로 개발시 주의사항
  2. 2011.02.22 Roo에서 list sorting
  3. 2011.02.14 10년의 약속 4번째 시작
2011.02.22 13:54 개발관련
- 자동생성된 Entity 테스트 에러
자동생성되는 테스트가 성공한 것을 확인한 후, 개발을 진행하다가 다시 테스트시 실패하는 경우가 생긴다(DI된 bean을 찾을수 없다는 에러). 이는 작성한 Entity에 속성이 추가되거나, Roo shell에 의해서 변경된 사항이 잘 반영하지 못했을때, 가끔 발생한다. 조치는 roo shell을 끄고, 생성된 또는 관련된 aj 파일을 모두 지우고, roo shell을 기동시켜 다시 한방에 생성하면 정상적으로 테스트가 통과 된다. 

- 단위테스트 한글 엔코딩 문제
나의 경우에 한정된 문제일수 있지만, roo로 생성된 Entity를 한글 테스트 했더니 모두 깨져서 나왔다. 원인을 찾던중, STS의 자바소스 한글 엔코딩 문제였다.  General>Content Types>Test>Java Source File> *.java 의 Default encoding : 값이 UTF-8로 설정되어 있었다. 이것을 삭제하고 빈값을 넣고 적용(AspectJ Source File 도 동일하게 적용)하면, 단위테스트시 한글도 문제없이 동작한다.

- 웹테스트 한글 엔코딩 문제
Controller 단위 테스트까지 한글 문제가 없다면, 문제가 꼬일수 있다. 웹서버, 필터, 브라우져, JSP 등 여러가지 UI 관련 부분을 뒤져봐야 한다. 그중 가장 유력한게 web.xml에 설정하는 부분인데, HttpMethodFilter가 특히 문제가 될수 있다. POST,GET만 사용하고, PUT,DELETE 등을 사용하지 않는다면, 해당 부분을 주석처리 하고 테스트 해보는 것을 잊지 말자. 나같은 경우 해당 부분을 제거하자 한글문제가 해결되었다.





저작자 표시
신고
posted by Max.
TAG ROO
2011.02.22 10:21 개발관련
Roo Entity의 객체관계에서 sorting은 @OrderBy("title DESC") 형태로 가능하다. 그러나 Entity 자체를 정렬하는 것은 없다. 기본으로 생성되는 _Roo_Entity.aj에서는 기본적인 CRUD만 있고, 정렬관련된 옵션은 없다. 그럼 finder를 생각해 볼수 있는데, finder 역시 현재까지는 특별히 지원하는 정렬기능이 없다. Entity의 속성중 특정 속성을 조건으로 검색하는 것은 되지만, 정렬까지는 지원하지 않는다. 관련해서 이슈로 등록((https://jira.springsource.org/browse/ROO-1592)되었지만, 진행된 내용은 아직 없다. 즉, 현재 Roo 버전으로는 가능한 방법이 없다는 것이다.

자동완성 기능으론 할수 없으니, 손수만들면 된다. 좀 거시기하긴 하지만, 정렬기능이 지원될때까지 어쩔수 없다. 방법은 여러가지가 있겠지만, 가장 적당해 보이는 것이 finder 메서드를 직접 구현하는 것이다. 해당 Entity에 static 으로 구현하면 된다. 이때 HQL를 원하는데로 구현하면 된다. 아마도 자동완성의 한계를 이렇게 구현할수 있을 것이다. 
    public static List<Article> findArticleSortEntries(int firstResult, int maxResults) {
        return entityManager().createQuery("select o from Article o Order By o.id DESC", Article.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
    }

또다른 방법으론 Nicholas Albion 이 제안한 필터 방식(https://jira.springsource.org/browse/ROO-241)인데 이는 자동생성을 염두해둔 방법으로 제안한 것이다. 

finder add --finderName findEmployeesByDepartment --orderBy "userName ASC" --filterClass ~.server.domain.EmployeePagingFilter

//(annotation might be formatted something like this)
@RooEntity(finders = { {name="findEmployeesByDepartment",orderBy="userName ASC",filterClass=EmployeePagingFilter} })
public class Employee { ... }

저작자 표시
신고
posted by Max.
TAG SpringRoo
2011.02.14 11:15 Business관련
4년전에 10년의 약속을 한적이 있었다. 10년의 계획을 세워보자는 것이였는데, 올해가 그 네번째 해에 속한다. 사실은 내가 나의 길을 선택함에 있어서 그 약속이 무슨 역할을 했는지는 모르겠다. 가끔 아주 가끔 내가 방향을 잃고 흔들릴때 위로가 되었고, 자기 기만의 은식처가 되어준 것은 분명히 느낄수 있었다. 어쩌면, 10년의 목표는 여전히 유효하고 그것을 향해 달리고 있는지도 모르겠다. 이루고자 하는것, 얻고자 하는것, 그리고 행복해지고자 하는 소망들이 어떤 뚜렷한 목적 하나로 얻어지는 것은 아닐것이고, 그렇게 얻은 결과보다 과정을 느끼는것일수도 있을 것이니 말이다.


개발자의 세계는 상당히 합리적인 선택을 지지하는 분야다. 공학이란게, 과학적인 사상이 있고, 그것엔 합리적인 성질이 중요한 요소이니까 말이다. 그런데, 요즘 비합리적인 부분에 몸을 담아야 할지 모른다는 압박이 있다. 바로 사람을 상대로 하는 일들 말이다. 인문학자들이 과학자에게 요구하는 것은 합리적인 논리보다, 인문적 사상이 아닌가 한다. 이런 시각으로 세상을 바라보면 종교,신화,풍습,정신 같은 다소 모호하고 추상적인 개념에 인자해지기 시작한다. 심지여 지적창조론도 이해의 범위에 수용되기도 한다.

사람이 사람을 상대로 인간다움을 생각하고, 그 속에서 살아가는 법을 알게되는 것이 이번 네번째 약속의 태마이다. 합리적인 잣대로 모든것을 바라보지 않은 지혜로움이 필요한 시기다. 나는 올해가 그런 사람다움에 좀더 집중해 보기로 하고, 이제 새로운 일에 대해 공작을 꾸며볼 생각이다. 그래서 올해도 여전히 흥미로운 한해를 맞이 할수 있겠다 싶다. 다가오는 2011년을 위하여...

( 그래서, 오뚜기 정신이 필요해... )


2011.02.14 윤성한.
저작자 표시
신고

'Business관련' 카테고리의 다른 글

Google Apps Marketplace  (0) 2011.04.26
한가지를 갖기 위해...  (2) 2011.03.14
10년의 약속 4번째 시작  (0) 2011.02.14
나와 동유 사진  (0) 2011.01.26
아들 사진 두장  (2) 2011.01.25
내딸사진 한장  (0) 2011.01.25
posted by Max.
TAG 소망
prev 1 next

티스토리 툴바