Whiteship's Note


이번 주 나의 시간 측정

JEDI/ToDo : 2007.03.30 23:02








종합 평가
1. 점점 아침에 잠이 많아 지고 있습니다.
2. 수업을 세 번밖에 안 들었군요.
3. 이번주에 제일 많이 한 일 "개발(코딩, 디버깅, 배포)" > "공부(AOP)" > "블로깅"
4. 저녁을 안 먹고 살고 있습니다.
5. 하루라도 블로깅을 안 하면 입안에 가시가 돋을 것 같습니다.

다음 주 계획
1. JSP, Servlet 구동 파악.
2. Spring AOP Reference 6장 공부 & 발표.
3. 운동을 좀 더 자주 하자.

희한하네요. 피로가 쌓였는지 평소 1, 2시에 자는데 벌써 눈이 감기기 시작합니다. 왜이러지;;
anyway good night!
top

Write a comment.


이번 주 과제 + 새로운 과제

JEDI/ToDo : 2007.03.30 09:35


1. AJN 서버 - 톰캣 5.5로 재설치, 위키 재설치, 블로그 재설치.
2. Testing 공부 - Agile Java 콜렉션과 I/O,  without EJB 14장, 영회형 블로그.
3. AOP 공부 - Spring AOP 6장, 7장(introduction advice, ProxyFactoryBean).
4. AJAX 공부 - javascript, AJAX 작동 원리.
5. 개발 - classicMania, reportValidator, buyingBook.

이번주 초에 작성한 이번 주 과제에 비하면 상당히 많은 과제들이 주어졌습니다.

다음주 까지 3번을 끝내고 4번을 시작합니다.
1번을 오늘 끝내고 5번 중에 reportValidator를 끝냅니다.
2번중에 Agile Java 책을 내일 끝내고 다음주에 14장을 공부합니다.
5번 중에 buyingBook에 있는 태그 파일에서 EL안에 EL을 사용하지 못하는 문제를 해결해야 합니다. classicMania는 6월까지 니까 다소 널널하네요.

결과적으로 오늘 할 일은 1번, 5번(reportValidator), 3번(introduction, ProxyFactoryBean)
top

Write a comment.


ajn 태그 파일 table과 column

JEDI/ToDo : 2007.03.27 17:14


화면에서는 이렇게 사용할 수 있습니다.
    <ajn:table>
        <ajn:column title="순번" property="${order.num}" />
        <ajn:column title="책" property="${order.bookName}" link="${order.link}"/>
        <ajn:column title="신청자" property="${order.owners}" />
    </ajn:table>

table 태그의 내용은 다음과 같습니다.
column 태그의 내용은 다음과 같습니다.

유용하지 않은 이유는..
1. 저 태그를 사용하는 콜렉션의 이름은 무조건 orders 여야 합니다. 아니면 테이블 태그파일에서 리스트의 이름으로 빨간 색 부분을 수정해 주시면 됩니다.
2. 콜렉션에 담겨이는 각각의 객체에 있는 속성들은 꼭 앞에 order를 붙여줘야 합니다.

이렇게 된 이유는..
1. EL 안에 EL이 먹지 않습니다. ${order.${property}} 이런 건 안되더군요.
2. 머리가 나빠서..;; 아마 다른 방법이 있겠죠. displayTag 처럼 잘 돌아가는게 있으니까요.
top

  1. Favicon of https://seal.tistory.com BlogIcon 물개선생 2007.03.27 17:52 신고 PERM. MOD/DEL REPLY

    몇 가지 힌트를 드리자면,
    1. 컬렉션 orders가 ajn:table의 파라미터로 전달되면 유용하지 않은 이유 1이 해결됩니다.
    예)
    <%@ attribute name="list" type="java.util.Collection" required="true" %>
    2. ajn:column은 request 등에 정보를 담아 ajn:table로 보내는 역할만 하고, 수집된 정보를 이용해서 ajn:table에서 정보를 출력하는 방식으로 하면 유용하지 않은 이유 2가 해결됩니다.
    예)
    3. EL 내부에 EL이 먹지 않는 문제를 해결하는 건 좀 어려운데요, 자체 EL 해석기를 만들어 사용할 수 있습니다만 저도 해보지 않아서. 그 밖의 방법으로 톰켓 등의 컨테이너에서 EL을 사용한 다음 그것이 컴파일 되어 나온 서블릿 소스를 분석해보면 그 컨테이너가 어떻게 EL을 처리하는지 확인할 수 있습니다. 그 코드를 스크립트릿으로 직접 태그파일에 써넣는 방법을 쓰면 EL안에 EL을 쓰는 문제를 해결할 수 있습니다. 톰켓의 경우는 아래와 같은 코드 부분을 찾아보면 property 정보에 order의 속성만 넘겨서 값을 구해올 수 있는 방법이 있습니다.
    예)
    PageContextImpl.proprietaryEvaluate("${row." + colpath + "}", Object.class, (PageContext)this.getJspContext(), null, false)

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2007.03.27 18:41 신고 PERM MOD/DEL

    와오~ 선생님 완전 싸랑해요!!! :)

    잠시 AOP 공부하는 사이에 이런 도움을 받게 될 줄이야..아 감동입니다~

  2. Favicon of https://seal.tistory.com BlogIcon 물개선생 2007.03.27 17:52 신고 PERM. MOD/DEL REPLY

    흠 적다보니 답글로 적기에 분량이 너무 많네요. 이 문제로 계속 고민 중이면 메신저로 연락주세요. :)

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2007.03.27 18:41 신고 PERM MOD/DEL

    감사합니다. 굉장한 도움으로 빛이 반짝였습니다. 헤헷 도저히 해결이 안되면 그때 문의 드리겠습니다~ :)

Write a comment.


게릴라 서바이버 스터디 :: 이번 주 과제

JEDI/ToDo : 2007.03.25 22:40


요즘 하고 있는 JEDI라는 스터디로.. 제다이가 되기 위해 열심히 수련을 하고 있는 스터디입니다.

1. buying 프로젝트 :: 화면에 버그를 잡아라.
2. 일주일간 행적을 기록하라.(그래야 공부 로드맵을 그릴 수 있을 것이다.)
3. 로드맵을 그려보시게나..
4. 매일 30분 TDD
5. Spring Reference 6, 7장 AOP 정리
6. 다음 매쉬업 만들어야지..기선아..쫌 해!!
7. classic 프로젝트 :: Member 마무리.

월 - 아침 8시 부터 (6, 7)
화 - (5, 1)
수 - (5, 7)
목 - (5, 7)
금 - (5, 7)
토 - (5, 7)
일 - 데이트
매일 할 일 - (2, 4)

top

Write a comment.


list.jsp를 태그 파일 사용하여 개선하라.

JEDI/ToDo : 2007.03.23 13:47


일종의 API를 만드는 것으로 사용자가 무척 쉽게 사용할 수 있도록 설계를 해야 합니다.
참조 : 프레임워크의 인터페이스(API)

<ajn:page>
    <ajn:table>
       <ajn:thead>
          <ajn:th title="순번" />
          <ajn:th title="책" />
          <ajn:th title="신청자" />
       <ajn:thead>
       <ajn:tbody>
          <ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
          <ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
          <ajn:bookOrderColumn num="1", title="~~", link="~~", owners="~~" />
        </ajn:tbody>
    </ajn:table>
</ajn:page>

태그 파일 사용해서 코드 줄여 보겠다고 만든 원본이 위와 같았습니다. 태그가..page, table, thead, th, tbody, bookOrderColumn 무려 6개.. 기능이 엄청나게 많아서 어쩔 수 없이 복잡한 인터페이스라면 모를까... 기껏 해야 테이블하나 보여줄 뿐인데 말이죠.

<ajn:page title="구매 대행 신청 도서 목록">
    <ajn:table is="list" of="order">
        <ajn:column property="${order.num}" title="순번" />
        <ajn:column property="${order.bookName}" linkProperty="${order.link}" title="책이름"  />
        <ajn:column property="${order.owners}" title="신청자" />
    </ajn:table>
</ajn:page>

지금은 이렇게 바꼈습니다. 태그는 page, table, column 이렇게 세개로 줄었습니다. 대신 태그 파일들의 내부는 이전보다 복잡해 졌지만 그건 태그의 사용자가 고려할 사항이 아니죠.

ps : EL태그 안에 EL태그가 먹힌다면(ex. ${order.${property}})  개선한 코드에서 색칠된 부분을 뺄 수 있습니다.
top

Write a comment.


YUI 코드 간단하게 고치기

JEDI/ToDo : 2007.03.20 16:12


이전 글에 올라온 코드를 보면 상당히 깁니다. 그 코드를 짧게 만드는 방법으로 커스텀태그를 사용해서 스크립트와 table 태그를 처리하기로 했습니다.

1. 링크 문제 해결.
- http://tech.groups.yahoo.com/group/ydn-javascript/message/10728
- http://tech.groups.yahoo.com/group/ydn-javascript/message/10654
- http://tech.groups.yahoo.com/group/ydn-javascript/message/10044 => 이게 대박 글!!

2. 커스텀 태그로 코드 줄수 줄이기.
- YUI :: DataTable :: 커스텀 태그로 숨기기

3. JS 메소드 조사.
- YAHOO.util.Dom.get("markup");
- YAHOO.util.Event.onAvailable("markup", a, a, true);
top

Write a comment.


구매 대행 신청 도서 목록 화면

JEDI/ToDo : 2007.03.19 16:22


IE 7
사용자 삽입 이미지
FF
사용자 삽입 이미지
차이 해결 하기.
top

Write a comment.


AOP 학습 일정 1

JEDI/ToDo : 2007.01.04 14:35


2주간 : Spring Reference 6장 공부
영근님과 온라인에서 발표

6. Aspect Oriented Programming with Spring
6.1. Introduction
6.1.1. AOP concepts
6.1.2. Spring AOP capabilities and goals
6.1.3. AOP Proxies in Spring
6.2. @AspectJ support
6.2.1. Enabling @AspectJ Support
6.2.2. Declaring an aspect
6.2.3. Declaring a pointcut
6.2.3.1. Supported Pointcut Designators
6.2.3.2. Combining pointcut expressions
6.2.3.3. Sharing common pointcut definitions
6.2.3.4. Examples
6.2.4. Declaring advice
6.2.4.1. Before advice
6.2.4.2. After returning advice
6.2.4.3. After throwing advice
6.2.4.4. After (finally) advice
6.2.4.5. Around advice
6.2.4.6. Advice parameters
6.2.4.7. Advice ordering
6.2.5. Introductions
6.2.6. Aspect instantiation models
6.2.7. Example
6.3. Schema-based AOP support
6.3.1. Declaring an aspect
6.3.2. Declaring a pointcut
6.3.3. Declaring advice
6.3.3.1. Before advice
6.3.3.2. After returning advice
6.3.3.3. After throwing advice
6.3.3.4. After (finally) advice
6.3.3.5. Around advice
6.3.3.6. Advice parameters
6.3.3.7. Advice ordering
6.3.4. Introductions
6.3.5. Aspect instantiation models
6.3.6. Advisors
6.3.7. Example
6.4. Choosing which AOP declaration style to use
6.4.1. Spring AOP or full AspectJ?
6.4.2. @AspectJ or XML for Spring AOP?
6.5. Mixing aspect types
6.6. Proxying mechanisms
6.6.1. Understanding AOP proxies
6.7. Programmatic creation of @AspectJ Proxies
6.8. Using AspectJ with Spring applications
6.8.1. Using AspectJ to dependency inject domain objects with Spring
6.8.1.1. Unit testing @Configurable objects
6.8.1.2. Working with multiple application contexts
6.8.2. Other Spring aspects for AspectJ
6.8.3. Configuring AspectJ aspects using Spring IoC
6.8.4. Using AspectJ Load-time weaving (LTW) with Spring applications
6.9. Further Resources
top

Write a comment.


DDD Jedi 선수작업

JEDI/ToDo : 2006.12.31 00:47


ORM : http://www.agiledata.org/essays/mappingObjects.html#MapHierarchyToTable

AOP : Spring Reference 6장, 7장 정리. 하다가 모르는 것만 Aspectj in action 참조.
* Proxy 기반과 Aspect 기반의 차이점
* Spring에서 AOP 어떻게 쓰는가 (reference 참조)
* 어떻게 쓰는지, 기본 개념 등이 파악되면.. 언제 어떻게 쓰는 것이 좋은가.
* AOP를 써서 어떨 때 어떻게 좋아졌는지 보여주는 예제 소스 코드 위주로 공부.
top

  1. Favicon of http://decoder.egloos.com BlogIcon decoder 2006.12.31 03:25 PERM. MOD/DEL REPLY

    빠르시군요. 저도 AOP, ORM과 같은 것들에 대해 알아야 하니, 종종 들러서 참고하도록 하겠습니다. :)

    Favicon of http://whiteship.tistory.com/ BlogIcon 기선 2006.12.31 10:26 PERM MOD/DEL

    영회형이 길을 알려준걸 정리한 것 뿐입니다.

    대엽씨도 영회형이랑 한번 상의를 해보세요.
    아. 메신저 아이디 이메일로 보내 주시면 제가 메신저로 알려드릴꼐요. :)

    저 역시 빌드&디플로이 많이 참조 하겠습니다.

  2. Favicon of http://decoder.egloos.com BlogIcon decoder 2006.12.31 13:42 PERM. MOD/DEL REPLY

    아.. 그렇게 하면 되겠군요. :)
    제 msn아이디는 decoder@nate.com입니다.
    새해엔 남들에게 도움되는 '부지런함'을 길러봐야겠습니다.

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2007.01.01 21:52 신고 PERM MOD/DEL

    MSN 대화상대 추가 했습니다.
    이메일로 AJN 블로그 계정 보내 드리겠습니다. ;)

Write a comment.