까다로운 녀석..ㅠ.ㅠ

    <table border=”1″>
        <tr>
            <th>순번</th>
            <th>책</th>
            <th>신청자</th>
        </tr>
    <c:forEach items=”${list}” var=”item”>
        <tr>
            <td>${item.num}</td>
            <td><a href=”${item.link}”>${item.bookName}</a></td>
            <td>${item.owners}</td>
        </tr>
    </c:forEach>
    </table>

이녀석을 태그 파일을 사용하여 다음과 같은 인터페이스로 표현하려고 합니다.

<ajn:table item=”list>
    <ajn:column title=”순번” property=”num” />
    <ajn:column title=”책” property=”bookName” link=”link” />
    <ajn:column title=”신청자” property=”owners” />
</ajn:table>

하지만 발생한 버그는 잡힐 줄을 모르고 현재는… 태그 파일 만들기 직전인 상태로 아래와 같습니다.

<table border=”1″>
    <c:set var=”count” value=”0″ scope=”session” />
    <c:forEach items=”${list}” var=”item”>
        <c:choose>
        <c:when test=”${count == 0}”>
        <tr>
            <th>순번</th>
            <th>책</th>
            <th>신청자</th>
        </tr>
        <c:remove var=”count” scope=”session”/>
        </c:when>
        <c:when test=”${count == null}”>
        <tr>
            <td>${item.num}</td>
            <td><a href=”${item.link}”>${item.bookName}</a></td>
            <td>${item.owners}</td>
        </tr>
        </c:when>
        </c:choose>
    </c:forEach>
</table>

for:each 문안에 모두 들어가게 하고 분기문을 사용해서 첫번째에는 title을 찍게 하고 나머진 프로퍼티를 찍는데 link가 있는 경우에는 link를 달아주는 간단한 jstl입니다.

문제는..루프를 아이탬의 갯수 만큼 돌기 때문에 첫번째 아이탬을 출력하는 대신 타이틀을 출력하고 두번째, 세번째 아이탬을 출력합니다. 따라서 결과는…

사용자 삽입 이미지이제 버그의 끝이 슬슬 보이기 시작하는데.. 엄청나게 삽질하면서 JSTL 사용에 익숙해져 가고 있는 모습으로 위안을 삼고 있습니다.

Aspect Oriented Programming with Spring

6.1. Introduction
AOP의 기본 개념과 Spring AOP의 기능과 목표를 이야기 합니다.
Spring AOP는 Proxy 기반입니다.

6.1. Introduction

6.2. @AspectJ support
어노테이션을 사용하여 AspectJ를 사용하는 방법입니다.
Spring AOP가 지원하는 포인트컷은 method 실행 시점뿐입니다.

6.2. @AspectJ support


6.3. Schema-based AOP support
6.2에서 한 내용을 어노테이션 기반이 아닌 XML에 설정을 사용하는 방법 도 있습니다.

6.3. Schema-based AOP support

6.4. Choosing which AOP declaration style to use
어노테이션을 사용할 것인가? XML 설정을 사용할 것인가?
Spring AOP를 사용할 것인가? AspectJ를 사용할 것인가?

6.4. Choosing which AOP declaration style to use

6.5. Mixing aspect types

어노테이션을 사용하는 방법과 XML 설정을 사용하는 방법을 섞어서 사용할 수 있습니다. 심지어 Spring 1.2 버젼 스타일의 프록시와도 같이 사용할 수 있습니다.

6.6. Proxying mechanisms
JDK 프록시 또는 CGLIB을 사용하는데요. 어떤 인터페이스도 구현하지 않았다면 CGLIB 프록시를 사용하고 그렇지 않은 경우에는 JDK 프록시를 사용합니다.

6.6. Proxying mechanisms

6.7. Programmatic creation of @AspectJ Proxies

AspectJProxyFactory를 사용하여 직접 프록시 클래스를 만들 수 있습니다.

6.8. Using AspectJ with Spring applications

AspectJ의 위버와 컴파일러를 사용할 수 있습니다.

6.9. Further Resources


AspectJ home page
여기서 더 많은 내용을 참조 할 수 있습니다.

Report Validator v0.9

흠냐.. 헤드 퍼스트에 있는 css파일 추가해서 스타일좀 주고, 어느 API에서 검색이 됐는지 확인하는 기능을 추가했고 검색이 된 경우에는 링크를 달아서 직접 확인할 수 있도록 했습니다.

사용자 삽입 이미지먼저 리포트 검사기에 접속하신뒤~

사용자 삽입 이미지검사할 부분을 복사한뒤..

사용자 삽입 이미지붙여 넣어 주시고~ submit을 클릭합니다.

사용자 삽입 이미지그럼 총 몇 개의 문장에서 몇 개가 검색이 됐으며 검색 포인트(높을 수록 안좋겠죠.)가 몇 인지 보여줍니다.

사용자 삽입 이미지“있다”를 클릭하면 위와 같이 직접 확인 할 수 있습니다.

  • 개발 시간  : 10시간
  • 사용한 것 : Eclipse, Java 6.0, Tomcat 5.5, SpringMVC
  • 문제점

    1.문자열을 적당히 쪼개는 기술이 부족해서 화면에도 보시다시피 이상하게 짤리거나 매우 길게 짤려서 에러가 납니다.
    2. 코드가 민망입니다. 차후 리팩토링 학습하는데 사용해야겠습니다.
    3. 화면이 민망입니다. CSS를 제대로 공부한 적도 없고 별로 그쪽에 취미도 없기 때문에 그냥 대강 썼습니다.
    4. 코드가 민망한 건 둘째 치고 성능에 문제가 있습니다. 엄청 느리죠. 샘플 데이타를 저정도만 넣은 것 역시 다 이유가 있는 거랍니다.

  • 느낀점

    1. XML -> 객체로 만들어 주는게 있으면 좋겠다.
    2. 정규 표현식을 알아 두면 유용하겠다.
    3. JSTL 조금(<c:if> 사용법)
    4. SimpleFormController 는 매우 편하다.

Report Validator v0.5

현재 네이버 API 중에서 지식in, 웹문서, 블로그 세가지 API를 사용하여 개발 한 상태 입니다. 여기에 다음 API도 편하게 붙일 수 있기 때문에 여력이 되는데로 API는 붙이면 될 것 같습니다.

돌아가는 형태는 매우 간단합니다. 화면에 검사 할 내용을 넣어 주고 버튼을 클릭하면 문장 별로 인터넷에서 복사 했을 가능성을 수치로 보여줍니다.

“인터넷에서 복사 했을 가능성”을 측정하는 방법으로는 원래 총 검색 결과의 갯수로 판단을 하려고 했지만 검색 결과의 퀄리티에 비해 총 검색 결과 수가 터무니 없이 크기 때문에 방법을 바꿔서 제일 유사도가 높은 검색 결과 10개 중에서 검색한 문장과 일치하는 부분이 있으면 1 포인트를 올리는 방법을 사용했습니다. 따라서 높은 포인트의 문장일수록 복사했을 가능성이 높은 문자열입니다.

현재는 3개의 API에서 검색을 했기 때문에 3 포인트를 기록하는 문장은 복사했더나 짧고 단순한 문장의 경우엔 흔히 검색 가능한 문장으로 볼 수 있습니다.
사용자 삽입 이미지버튼을 클릭하면..
사용자 삽입 이미지이걸 언제 꾸미나…

아 답답해;;

오픈 API로 검색하는 거랑 실제 검색창에서 검색하는 거랑 왜 결과가 다르죠???

“이런 경우 BeanCurrentlyInCreationException 이 발생한다고 합니다.”

이 문장을 네이버 웹에서 검색하면 제 블로그에 어떤 글이 뜹니다. 제대로 검색이 된거죠.
사용자 삽입 이미지그럼 오픈API 사용해서 검색한 XML 파일을 보죠.

오픈API를 사용하는 가장 간단한 방법은 URL에 쳐보는거죠.

네이버 블로그 검색 API 사용하는 URL은 다음과 같습니다.

http://openapi.naver.com/search?key=1898d436d8cf2f2b9b380aa157ae756b&query=이런 경우 BeanCurrentlyInCreationException 이 발생한다고 합니다.&display=10&start=1&target=blog&sort=sim

검색 문자열의 인코딩 문제로 다음과 같은 에러가 납니다.

사용자 삽입 이미지그럼 복잡하지만 java로 어쩌구 저쩌구 해서 String 문자열로 받아 오면 됩니다. 받아온 XML을 봤습니다.

사용자 삽입 이미지
웹에서 검색할 때 두번째 위치에 있던 검색 결과가 가장 위로 올라와있고 제 블로그의 내용은 검색되지 않았습니다.

대체 뭘까요!… 소팅을 sim 과 data로 바꿔 보아도 검색결과가 나오지 않네요..흠냐..