<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Mimul&#039;s Developer World - Java Tech category</title>
  <link>http://www.mimul.com:80/pebble/default/categories/JavaTech/</link>
  <description>미물의 개발 세상</description>
  <language>ko</language>
  <copyright>미물</copyright>
  <lastBuildDate>Sun, 21 Mar 2010 10:28:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  <image>
    <url>http://www.mimul.com/pebble/default/images/hhj.jpg</url>
    <title>Mimul&#039;s Developer World (Java Tech category)</title>
    <link>http://www.mimul.com:80/pebble/default/</link>
  </image>
  
  
  <item>
    <title>toString 클래스 유틸리티 샘플</title>
    <link>http://www.mimul.com:80/pebble/default/2010/02/09/1265717340000.html</link>
    
      
        <description>
          toString()자동으로 만들어주는 소스들이 많지만 그 중 하나를 소개해 드립니다. 심플하고 쉽게 활용이 가능하여 공유합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. ClassUtils 샘플&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;package client;&lt;br /&gt;&lt;br /&gt;import java.lang.reflect.AccessibleObject;&lt;br /&gt;import java.lang.reflect.Field;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;public class ClassUtils &lt;br /&gt;{&lt;br /&gt;	private ClassUtils() {&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public static String toString(Object o) &lt;br /&gt;	{&lt;br /&gt;		String ret = null;&lt;br /&gt;		List&amp;lt;Object&amp;gt; list = null;&lt;br /&gt;		&lt;br /&gt;		try {&lt;br /&gt;			list = new ArrayList&amp;lt;Object&amp;gt;();&lt;br /&gt;			ClassUtils.toString(o, o.getClass(), list);&lt;br /&gt;			ret = o.getClass().getName().concat(list.toString());&lt;br /&gt;		} catch (Exception e) {&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;			ret = null;&lt;br /&gt;		}&lt;br /&gt;		return ret;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private static void toString(Object o, Class&amp;lt;?&amp;gt; clazz, List&amp;lt;Object&amp;gt; list)&lt;br /&gt;	{&lt;br /&gt;		Field[] f = null;&lt;br /&gt;		try {&lt;br /&gt;			f = clazz.getDeclaredFields();&lt;br /&gt;			AccessibleObject.setAccessible(f, true);&lt;br /&gt;			for (int i = 0; i &amp;lt; f.length; i++) {&lt;br /&gt;				list.add(f[i].getName() + &amp;quot;=&amp;quot; + f[i].get(o));&lt;br /&gt;			}&lt;br /&gt;			if (clazz.getSuperclass().getSuperclass() != null)&lt;br /&gt;				toString(o, clazz.getSuperclass(), list);&lt;br /&gt;		} catch (Exception e) {&lt;br /&gt;			e.printStackTrace();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;strong&gt;2. 테스트&amp;nbsp; 샘플&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;package client;&lt;br /&gt;&lt;br /&gt;public class ClassUtilsClient &lt;br /&gt;{&lt;br /&gt;	public String hello = &amp;quot;Test&amp;quot;;&lt;br /&gt;	public int i = 9999;&lt;br /&gt;&lt;br /&gt;	public static void main(String... args) {&lt;br /&gt;		System.out.println(ClassUtils.toString(&lt;br /&gt;				new ClassUtilsClient()));&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;strong&gt;3. 테스트 결과&lt;/strong&gt;&lt;br /&gt;
&lt;pre&gt;client.ClassUtilsClient[hello=Test, i=9999]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;
&lt;/pre&gt;
[관련포스트]&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&#034;http://www.mimul.com/pebble/default/2009/02/01/1233497940000.html&#034;&gt;BeanUtils을 가지고 toString() 구현하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <comments>http://www.mimul.com:80/pebble/default/2010/02/09/1265717340000.html#comments</comments>
    <guid isPermaLink="true">http://www.mimul.com:80/pebble/default/2010/02/09/1265717340000.html</guid>
    <pubDate>Tue, 09 Feb 2010 12:09:00 GMT</pubDate>
  </item>
  
  <item>
    <title>SOAP 클라이언트에서 SSL 통신하기</title>
    <link>http://www.mimul.com:80/pebble/default/2010/01/22/1264164000000.html</link>
    
      
        <description>
          SSL방식으로 SOAP 통신시 아래와 같은 오류가 날 경우 해결책을 공유합니다. 대부분의 경우 클라이언트에서 certificate 체크과정에서 나는 오류일 겁니다.&lt;br /&gt;
&lt;pre&gt;javax.net.ssl.SSLHandshakeException: sun.security.validator.&lt;br /&gt;ValidatorException: &lt;br /&gt;PKIX path building failed: sun.security.provider.certpath.&lt;br /&gt;SunCertPathBuilderException: &lt;br /&gt;unable to find valid certification path to requested target&lt;br /&gt;&lt;/pre&gt;
&lt;br /&gt;
1. 접속할 서버의 인증서를 다운 받음&lt;br /&gt;
&amp;nbsp;- https://url에서 IE7 에서 주소창 옆에 자물쇠 아이콘 클릭하여 인증서보기에서 추출&lt;br /&gt;
&amp;nbsp;- aaa.cer로 저장&lt;br /&gt;
&lt;br /&gt;
2. keystore 처리&lt;br /&gt;
&amp;nbsp;- keytool -import -trustcacerts -file &amp;quot;/tmp/aaa.cer&amp;quot; -keystore &amp;quot;/tmp/aaa.ks&amp;quot;&lt;br /&gt;
&amp;nbsp;- 암호가 입력되면 keystore에 추가됨(/tmp/aaa.ks)&lt;br /&gt;
&lt;br /&gt;
3. SOAP Client 어플에 설정 추가&lt;br /&gt;
&amp;nbsp;- 첫번째 방법&lt;br /&gt;
&amp;nbsp; . System.setProperty(&amp;quot;javax.net.ssl.keyStore&amp;quot;, &amp;quot;/tmp/aaa.ks&amp;quot;);&lt;br /&gt;
&amp;nbsp; . System.setProperty(&amp;quot;javax.net.ssl.keyStorePassword&amp;quot;, &amp;quot;password&amp;quot;);&lt;br /&gt;
&amp;nbsp; . System.setProperty(&amp;quot;javax.net.ssl.trustStore&amp;quot;, &amp;quot;/tmp/aaa.ks&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;- 다른 대안&lt;br /&gt;
&amp;nbsp;AxisProperties.setProperty(&amp;quot;axis.socketSecureFactory&amp;quot;,&amp;quot;org.apache.axis.components.net.SunFakeTrustSocketFactory&amp;quot;);&lt;br /&gt;
&amp;nbsp; . SunFakeTrustSocketFactory 클래스를 선언하여&amp;nbsp; certificate 체크를 안하게 함
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <category>Security</category>
    
    <comments>http://www.mimul.com:80/pebble/default/2010/01/22/1264164000000.html#comments</comments>
    <guid isPermaLink="true">http://www.mimul.com:80/pebble/default/2010/01/22/1264164000000.html</guid>
    <pubDate>Fri, 22 Jan 2010 12:40:00 GMT</pubDate>
  </item>
  
  <item>
    <title>HTTP4e를 활용한 REST API 테스트하기</title>
    <link>http://www.mimul.com:80/pebble/default/2010/01/05/1262689080000.html</link>
    
      
        <description>
          &lt;div style=&#034;float: left; padding-right: 5px;&#034;&gt; &lt;script type=&#034;text/javascript&#034;&gt;
tweetmeme_url = &#039;http://www.mimul.com/pebble/default/2010/01/05/1262689080000.html&#039;;
tweetmeme_source = &#039;mimul&#039;;
&lt;/script&gt; &lt;script type=&#034;text/javascript&#034; src=&#034;http://tweetmeme.com/i/scripts/button.js&#034;&gt;&lt;/script&gt; &lt;/div&gt;
&lt;strong&gt;1. 이클립스에 플러그인 설치&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;- 필수 사항 : Java 5+, Eclipse 3.2+&lt;br /&gt;
&amp;nbsp;- 이클립스 플러그인 : Help / Software updates / Find and install / Search for new features to install / Next / Remote Site(http://www.ywebb.com/http4e/install/)&lt;br /&gt;
&amp;nbsp;- 아카이브 버전 설치 : &lt;a href=&#034;http://www.ywebb.com/http4e/install/http4e-eclipse-rest-http-client.tar&#034;&gt;다운&lt;/a&gt;받아서 설치함&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. 특징&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;- Eclipse IDE에서 사용 가능&lt;br /&gt;
&amp;nbsp;- 한번의 클릭으로 RESTful, HTTP Java 소스 코드 생성함(편리함)&lt;br /&gt;
&amp;nbsp;- Syntax 컬러링, GUI 지원으로 편리성 강화됨&lt;br /&gt;
&amp;nbsp;- headers, parameters and http packet body 비주얼 에디팅 가능하게 함&lt;br /&gt;
&amp;nbsp;- BASIC/DIGEST Authentication 지원&lt;br /&gt;
&amp;nbsp;- SSL/HTTPS 지원&lt;br /&gt;
&amp;nbsp;- Unicode UTF8 지원&lt;br /&gt;
&amp;nbsp;- Windows, MacOS X, Linux, Solaris 다양하게 활용 가능&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;3. 팁&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;- Auto Complete(CTRL + SPACE)&lt;br /&gt;
&amp;nbsp;- Export-to-Java를 통해 Java&lt;br /&gt;
&amp;nbsp;- POST Body에 파일 import&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;4. 실행 화면&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img height=&#034;189&#034; width=&#034;490&#034; alt=&#034;&#034; src=&#034;http://mimul.com/pebble/default/images/blog/tool/http4e.PNG&#034; /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
[참조 사이트]&lt;/strong&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&#034;http://www.ywebb.com/eclipse-restful-http-client-plugin-http4e/&#034;&gt;HTTP4e, a Restful client for Eclipse&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <comments>http://www.mimul.com:80/pebble/default/2010/01/05/1262689080000.html#comments</comments>
    <guid isPermaLink="true">http://www.mimul.com:80/pebble/default/2010/01/05/1262689080000.html</guid>
    <pubDate>Tue, 05 Jan 2010 10:58:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Java에서 Warning 해결 방법들</title>
    <link>http://www.mimul.com:80/pebble/default/2009/12/04/1259937540000.html</link>
    
      
        <description>
          &lt;div style=&#034;float: left; padding-right: 5px;&#034;&gt; &lt;script type=&#034;text/javascript&#034;&gt;
tweetmeme_url = &#039;http://www.mimul.com/pebble/default/2009/12/04/1259937540000.html&#039;;
tweetmeme_source = &#039;mimul&#039;;
&lt;/script&gt; &lt;script type=&#034;text/javascript&#034; src=&#034;http://tweetmeme.com/i/scripts/button.js&#034;&gt;&lt;/script&gt; &lt;/div&gt;
코딩을 하다가 보면 워닝이나 에러등이 프로젝트내에서 보이면 대부분의 개발자는 없앨려고 할 것입니다. 지저분하게 코딩을 하지 않기 위함은 물론이거니와 Error나 Warning같은 것을 그냥 두고 코딩을 할 경우 코딩의 신뢰성에 많은 의협이 되니깐요. 또한, 그런 코딩 자세가 버그를 양산할 수 있으므로 지양을 할 것입니다. 그래서 오늘은 에러는 다잡는데, Warning은 그대로 두시는 분들이 계셔서 깔끔하게 정리하는 방법들을 공유합니다.&lt;br /&gt;
가장 큰 포인트는 아래 방법들은 회피하는 방법이 많습니다. 근본적인 해결방안은 Warning을 발생시키지 않는 것입니다. 회피하는 것보다는....&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;1. Avoid raw types&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- 사유 : List, Map.Entry, HashMap 등에서 불필요한 캐스팅을 막기 위해 Generics에서 parametric types 을 지정해 주도록 하기 위해 Warning을 띄움&lt;br /&gt;
&amp;nbsp;- 해결책&lt;br /&gt;
&amp;nbsp;&amp;nbsp; . List&amp;lt;String&amp;gt;, Map.Entry&amp;lt;String, String&amp;gt; 등으로 명시적 타입으로 지정함&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;2. Type safety: Unchecked cast &lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- 사유 : Generics을 사용해서 타입을 지정했지만 해당 값이 Object일 경우 &amp;quot;Type safety: Unchecked cast&amp;quot;라는 Warning을 남김&lt;br /&gt;
&amp;nbsp;- 해결책 : 정확한 타입 캐스팅을 지정하거나 안되면 아래와 같이 Annotation을 해당 문 위에 적용함&lt;br /&gt;
&amp;nbsp;&amp;nbsp; . 근본적인 대책은 명시적인 타입 사용을 원칙으로 함&lt;br /&gt;
&amp;nbsp;&amp;nbsp; . @SuppressWarnings (value=&amp;quot;unchecked&amp;quot;) 혹은 @SuppressWarnings(&amp;quot;unchecked&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;3. Serializable class does not declare&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- 사유 : implements java.io.Serializable한 클래스나 해당 클래스를 상속받은 클래서에서는 serialVersionUID 상수를 선언해줘야&amp;nbsp; deserialization(serialization 했던 객체를 복구하는 과정)과정에서 예상하지 못한 InvalidClassExceptions을 유발성을 제거할 수 있음&lt;br /&gt;
&amp;nbsp;- 해결책&lt;br /&gt;
&amp;nbsp;&amp;nbsp; . serialVersionUID 선언(public static final long serialVersionUID = 24362462L;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; . 그외 @SuppressWarnings(&amp;quot;serial&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;4. deprecated code &lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- 사유 : 더이상 사용치말라는 함수에 @Deprecated를 사용하여 Warning을 뿌려줌&lt;br /&gt;
&amp;nbsp;- 해결책&lt;br /&gt;
&amp;nbsp;&amp;nbsp; . 기본적으로 해당 함수는 사용하지 않는것이 원칙임&lt;br /&gt;
&amp;nbsp;&amp;nbsp; . 부득이 사용해야할 경우 @SuppressWarnings(&amp;quot;deprecation&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;5. [fallthrough] possible fall-through into case&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- 사유 : switch문에서 break문이 빠져있을 경우 일반적으로 컴파일하면 Warning이 안뜨는데 컴파일 옵션에서 -Xlint:fallthrough 를 주고 컴파일하면 Warning이뜸&lt;br /&gt;
&amp;nbsp;- 해결책&lt;br /&gt;
&amp;nbsp;&amp;nbsp; . 부득이 사용할 경우 @SuppressWarnings(&amp;quot;fallthrough&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;strong&gt;[참고사항 : Sun JDK (1.6) 에서 지원하는&amp;nbsp; Warnings]&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;deprecation : Check for use of depreciated items.&lt;/li&gt;
    &lt;li&gt;unchecked : Give more detail for unchecked conversion warnings that are mandated by the Java Language Specification.&lt;/li&gt;
    &lt;li&gt;serial : Warn about missing serialVersionUID definitions on serializable classes.&lt;/li&gt;
    &lt;li&gt;finally : Warn about finally clauses that cannot complete normally.&lt;/li&gt;
    &lt;li&gt;fallthrough : Check switch blocks for fall-through cases and provide a warning message for any that are found.&lt;/li&gt;
    &lt;li&gt;path : Check for a nonexistent path in environment paths (such as classpath).&lt;/li&gt;
&lt;/ul&gt;
그 외에 추가적으로 발견되면 계속 추가하도록 하겠습니다. 조언 있으시면 댓글로..
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <comments>http://www.mimul.com:80/pebble/default/2009/12/04/1259937540000.html#comments</comments>
    <guid isPermaLink="true">http://www.mimul.com:80/pebble/default/2009/12/04/1259937540000.html</guid>
    <pubDate>Fri, 04 Dec 2009 14:39:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Spring 2.0에서 2.5로 업그레이드하기</title>
    <link>http://www.mimul.com:80/pebble/default/2009/12/03/1259844240000.html</link>
    
      
        <description>
          &lt;div style=&#034;float: left; padding-right: 5px;&#034;&gt; &lt;script type=&#034;text/javascript&#034;&gt;
tweetmeme_url = &#039;http://mimul.com/pebble/default/2009/12/03/1259844240000.html&#039;;
tweetmeme_source = &#039;mimul&#039;;
&lt;/script&gt; &lt;script type=&#034;text/javascript&#034; src=&#034;http://tweetmeme.com/i/scripts/button.js&#034;&gt;&lt;/script&gt; &lt;/div&gt;
&lt;p&gt;Spring 2.0에서는 spring.jar파일과 commons-logging.jar 파일만 있으면 스프링 운영 환경은 만사오케이였는데&amp;nbsp; 2.5.x버전으로 올라가면서 필요한 모듈들이 분산되어 jar파일로 제공하고 있습니다. 그래서 필요한 라이브러리들을 선택해서 가져다 써야합니다.&lt;br /&gt;
Spring 2.5의 다양한 장점과 오픈 소스는 무조건 최신 버전으로 올리는 게 당연시되는 저의 자세로 말미암아 조금은 늦었지만 업그레이드를 단행했습니다.&lt;br /&gt;
간단한 내용을 아래 기술해 봅니다. 그리 복잡하지는 않습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 운영환경&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- Spring + iBatis + Struts 1.x + Velocity로 구성되어 있음&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;strong&gt;2. 업그레이드 방법&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- &lt;a href=&#034;http://sourceforge.net/projects/springframework/files/&#034;&gt;spring-framework-2.5.5-with-dependencies.zi&lt;/a&gt;p 파일을 다운로드 받음&lt;br /&gt;
&amp;nbsp;- 관련 라이브러리 파일 변경&lt;br /&gt;
&amp;nbsp; . disk/spring.jar파일 카피&lt;br /&gt;
&amp;nbsp; . dist/modules/spring-webmvc-struts.jar 카피&lt;br /&gt;
&amp;nbsp;- disk/spring.jar 안넣고 dist/modules/* 에 필요한 라이브러리를 가져다 쓸수도 있습니다. 이부분이 가장 현명한 방법인 데 전 일단 disk/spring.jar를 넣는 전자 방법을 선택했습니다.&lt;/p&gt;
&lt;strong&gt;3. 전체 필요한 라이브러리&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- spring&lt;br /&gt;
&lt;pre&gt;spring-webmvc-struts.jar&lt;br /&gt;spring.jar&lt;/pre&gt;
&lt;br /&gt;
&amp;nbsp;- struts&lt;br /&gt;
&lt;pre&gt;struts-core-1.3.8.jar&lt;br /&gt;struts-el-1.3.8.jar&lt;br /&gt;struts-extras-1.3.8.jar&lt;br /&gt;struts-faces-1.3.8.jar&lt;br /&gt;struts-mailreader-dao-1.3.8.jar&lt;br /&gt;struts-scripting-1.3.8.jar&lt;br /&gt;struts-taglib-1.3.8.jar&lt;br /&gt;struts-tiles-1.3.8.jar&lt;/pre&gt;
&lt;br /&gt;
&amp;nbsp;- velocity&lt;br /&gt;
&lt;pre&gt;velocity-1.5.jar&lt;br /&gt;velocity-tools-1.3.jar&lt;br /&gt;velocity-tools-generic-1.3.jar&lt;br /&gt;velocity-tools-view-1.4.jar&lt;/pre&gt;
&lt;br /&gt;
- 기타 관련 라이브러리&lt;br /&gt;
&lt;pre&gt;slf4j-api-1.5.5.jar&lt;br /&gt;slf4j-log4j12-1.5.5.jar&lt;br /&gt;log4j-1.2.15.jar&lt;br /&gt;ibatis-2.3.4.726.jar&lt;br /&gt;jakarta-oro-2.0.8.jar&lt;br /&gt;antlr-2.7.2.jar&lt;br /&gt;cglib-nodep-2.1_3.jar&lt;br /&gt;commons-beanutils-1.8.1.jar&lt;br /&gt;commons-chain-1.2.jar&lt;br /&gt;commons-codec-1.4.jar&lt;br /&gt;commons-collections-3.2.1.jar&lt;br /&gt;commons-dbcp-1.2.2.jar&lt;br /&gt;commons-digester-1.8.jar&lt;br /&gt;commons-lang-2.4.jar&lt;br /&gt;commons-logging-1.1.1.jar&lt;br /&gt;commons-pool-1.5.3.jar&lt;br /&gt;commons-validator-1.3.1.jar&lt;/pre&gt;
&lt;br /&gt;
&lt;strong&gt;4. 2.5의 특징&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;- XML 스키마 기반의 XML을 사용할 수 있어 편리성이 강화되었고 확작성도 좋음&lt;br /&gt;
&amp;nbsp;- Annotation 기반의 설정/controllers 등이 추가됨&lt;br /&gt;
&amp;nbsp;- AspectJ 포인트컷 문법과 @Aspect 표기법을 지원함&lt;br /&gt;
&amp;nbsp;- 자바 이외에 동적 언어(JRuby, Groovy, BeanShell등)로 작성된 코드를 bean에 등록할 수 있어 언어 확장성 좋음
        </description>
      
      
    
    
    
    <category>Java Tech</category>
    
    <comments>http://www.mimul.com:80/pebble/default/2009/12/03/1259844240000.html#comments</comments>
    <guid isPermaLink="true">http://www.mimul.com:80/pebble/default/2009/12/03/1259844240000.html</guid>
    <pubDate>Thu, 03 Dec 2009 12:44:00 GMT</pubDate>
  </item>
  
  </channel>
</rss>
