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


이번 주 과제 + 새로운 과제

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


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


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

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


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


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


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

JEDI/ToDo : 2007.03.19 16:22


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


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


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