<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>浩然之氣</title>
	<link>http://reallhy.egloos.com</link>
	<description>浩然之氣</description>
	<language>ko</language>
	<pubDate>Fri, 10 Jul 2009 23:20:30 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>浩然之氣</title>
		<url>http://pds7.egloos.com/logo/200801/20/59/d0032259.jpg</url>
		<link>http://reallhy.egloos.com</link>
		<width>80</width>
		<height>80</height>
		<description>浩然之氣</description>
	</image>
  	<item>
		<title><![CDATA[ SpecializationIsForInsects ]]> </title>
		<link>http://reallhy.egloos.com/2370313</link>
		<guid>http://reallhy.egloos.com/2370313</guid>
		<description>
			<![CDATA[ 
  <div>A programmer should be able to find a bug, market an application, refactor a spike, lead a team, architect an application, hack a kernel, schedule a project, build a database, route a network, give a reference, implement <a class="interwiki" href="http://c2.com/cgi/wiki?UserStories"><img class="interwiki" title="Wiki:" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="16" alt="Wiki:" src="http://no-smok.net/ns/imgs/interwiki/wiki-16.png" width="16"></a><a title="Wiki:UserStories" href="http://c2.com/cgi/wiki?UserStories">UserStories</a>, analyze <a class="interwiki" href="http://c2.com/cgi/wiki?UserStories"><img class="interwiki" title="Wiki:" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="16" alt="Wiki:" src="http://no-smok.net/ns/imgs/interwiki/wiki-16.png" width="16"></a><a title="Wiki:UserStories" href="http://c2.com/cgi/wiki?UserStories">UserStories</a>, work in a team, work alone, use patterns, innovate, write documentation, have a <a class="interwiki" href="http://c2.com/cgi/wiki?RealLife"><img class="interwiki" title="Wiki:" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="16" alt="Wiki:" src="http://no-smok.net/ns/imgs/interwiki/wiki-16.png" width="16"></a><a title="Wiki:RealLife" href="http://c2.com/cgi/wiki?RealLife">RealLife</a>, create a cool website, email efficiently, resign gracefully, <a class="interwiki" href="http://c2.com/cgi/wiki?AdmitIgnorance"><img class="interwiki" title="Wiki:" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="16" alt="Wiki:" src="http://no-smok.net/ns/imgs/interwiki/wiki-16.png" width="16"></a><a title="Wiki:AdmitIgnorance" href="http://c2.com/cgi/wiki?AdmitIgnorance">AdmitIgnorance</a>, and keep on learning. Specialization is for recruiters. -- with large apology to RAH and his estate, <a class="interwiki" href="http://c2.com/cgi/wiki?PeterMerel"><img class="interwiki" title="Wiki:" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="16" alt="Wiki:" src="http://no-smok.net/ns/imgs/interwiki/wiki-16.png" width="16"></a><a title="Wiki:PeterMerel" href="http://c2.com/cgi/wiki?PeterMerel">PeterMerel</a><b></b><br><br>출처 : <a href="http://no-smok.net/nsmk/SpecializationIsForInsects">http://no-smok.net/nsmk/SpecializationIsForInsects</a></div><br/><br/>tag : <a href="/tag/programmer" rel="tag">programmer</a>			 ]]> 
		</description>
		<category>Log</category>
		<category>programmer</category>

		<comments>http://reallhy.egloos.com/2370313#comments</comments>
		<pubDate>Fri, 10 Jul 2009 23:20:30 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Oracle Error Code 모음 ]]> </title>
		<link>http://reallhy.egloos.com/2315419</link>
		<guid>http://reallhy.egloos.com/2315419</guid>
		<description>
			<![CDATA[ 
  <p>참고..<br>[출처] <a href="http://blog.naver.com/yhw004?Redirect=Log&amp;logNo=140025086553">http://blog.naver.com/yhw004?Redirect=Log&amp;logNo=140025086553</a></p>			 ]]> 
		</description>
		<category>프로그래밍</category>

		<comments>http://reallhy.egloos.com/2315419#comments</comments>
		<pubDate>Tue, 12 May 2009 00:22:27 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ six thinking hats ]]> </title>
		<link>http://reallhy.egloos.com/2223469</link>
		<guid>http://reallhy.egloos.com/2223469</guid>
		<description>
			<![CDATA[ 
  <font size="2"><span style="font-weight: bold;">여섯 색깔 생각의 모자</span><br />
</font><br />
흰색 : 중립, 객관적 사실<br />
빨간색 : 감정적<br />
검은색 : 부정적, 비판적<br />
노란색 : 긍정적, 발전적, 이상제시<br />
녹색 : 창조적<br />
파란색 : 각 색깔의 모자를 제어, 총괄<br />
<br />
이부분에서는 흰색 모자를 쓰고 얘기해보자.<br />
이런 경우엔 녹색모자를 쓰고....<br />
한번에 한가지씩만 생각하기<br />
<br />
수평적사고 : 기존에 해왔던 방식과 다른 방식으로 생각해보기<br />
<br />
생각의 모자를 널리널리 퍼뜨려보면... 대학새내기 들이나 신입사원 교육에 활용해보면 괜찮지 않을까..<br />
<br />
회의진행시 활용하면 좋을 듯...<br />
<br/><br/>tag : <a href="/tag/모자" rel="tag">모자</a>			 ]]> 
		</description>
		<category>Log</category>
		<category>모자</category>

		<comments>http://reallhy.egloos.com/2223469#comments</comments>
		<pubDate>Tue, 03 Feb 2009 16:27:39 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Quartz tutorial ]]> </title>
		<link>http://reallhy.egloos.com/2063956</link>
		<guid>http://reallhy.egloos.com/2063956</guid>
		<description>
			<![CDATA[ 
  Quartz - Trigger, Job, JobDetail<br />
SchedulerFactoryBean : Trigger 생성<br />
SimpleTriggerBean : 언제 어떻게 job을 실행할지 정의(CronTriggerBean 도 제공)<br />
MethodInvokingJobDetailFactoryBean : scheduler에 맞춰서 객체의 메소드 호출<br />
<br />
Instantiation : SchedulerFactory schedFact = new SchedulerFactory();<br />
Scheduler sched = schedFact.getScheduler();<br />
sched.start();<br />
<br />
JobDetail jobDetail = new JobDetail("myJob", "myGroup", DumbJob.class);<br />
<br />
스케줄러가 한번 셧다운되면, 다시 instantiation하지 않고 재시작할 수 없다. 트리거는 스케줄러가 시작할때까지 fire하지 않는다. pause 상태에 있는 동안에(Job이 실행되지 않는다.)<br />
<br />
Trigger trigger = TriggerUtils.makeHourlyTrigger();  // fire every hour<br />
trigger.setStartTime(TriggerUtils.getEveryHourDate(new Date()));  //start on the next every hour<br />
trigger.setName("myTrigger");<br />
<br />
sched.scheduleJob(jobDetail, trigger);  // 앞에서 트리거를 설정한대로 job의실행을 스케줄한다<br />
<br />
트리거가 fire하면 스케줄러에 의해 Job 인터페이스의 execute메서드가 호출된다. <br />
이 메서드에 던져진 JobExecutionContext 객체는 런타임 환경 정보를 가진 job 인스턴스를 제공한다. <br />
<br />
JobDetail 객체는 Quartz 클라이언트(당신의 프로그램)에 의해 스케줄러에 job이 더해지는 시간에 생성된다. JobDataMap(당신의 job클래스의 인스턴스를 위해 상태 정보를 저장할 수 있는...) 과 같은 Job에 대한 다양한 프로퍼티 세팅을 포함한다.<br />
<br />
Trigger 객체는 job들의 실행을 트리거하기 위해 사용된다. job을 스케줄하려고 할때, 당신은 트리거를 초기화하고, 그것의 프로퍼티들을 당신이 원하는 스케줄링을 제공하도록 튜닝한다. 트리거는 또한 그것과 관련된 JobDataMap도 가지고 있다 - 이것은 트리거를 fire하는데 특정화된 Job에게 파라미터를 던지는데 유용하다. Quartz 는 다양한 트리거 타입을 지원하지만, 대표적으로 SimpleTrigger와 CronTrigger를 사용한다.<br />
<br />
SimpleTrigger는 원샷 실행을 원할 때 (단지 주어진 시간에 job이 한번만 실행될때) 편하다. 주어진 시간에 job을 fire할 필요가 있을 때, 실행간 T시간만큼 딜레이를 두고 그것을 N번 반복할 때 좋다. <br />
CronTrigger는 달력같은 스케줄을 기반으로 하는 트리거링에 좋다( 매달 10일 정오 같이..)<br />
<br />
Job과 Trigger를 분리한 이유 : <br />
- 스케줄과 스케줄상에서 일어나는 일 을 분리함<br />
- Job은 Job스케줄러 안에서 트리거와 독립적으로 생성되고 저장될 수 있고, 트리거들은 같은 job에 연관될 수 있다. 이런 느슨한 결합으로 연관된 트리거가 만료된 뒤에도 스케줄러에 남아있는 job을 구성할 수 있다. 그래서 그 후에 그것을 재정의하지 않고 다시 스케줄할 수 있다. 그것과 관련된 job을 재정의하지 않고 트리거를 수정하거나 재배치 할 수 있다. <br />
<br />
Job과 트리거는 나중의 유지보수를 위해 당신의 job과 트리거들을 카테고리안에 조직화하는데 유용한 groups에 위치할 수 있다.<br />
만약에 Job이나 트리거의 group을 'null'로 남겨두면, Scheduler.DEFAULT_GROUP 이 설정된 것과 동일하다.<br />
<br />
<br/><br/>tag : <a href="/tag/quartz" rel="tag">quartz</a>,&nbsp;<a href="/tag/scheduler" rel="tag">scheduler</a>			 ]]> 
		</description>
		<category>quartz</category>
		<category>scheduler</category>

		<comments>http://reallhy.egloos.com/2063956#comments</comments>
		<pubDate>Thu, 18 Sep 2008 09:15:42 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ JSP 기초 ]]> </title>
		<link>http://reallhy.egloos.com/2054979</link>
		<guid>http://reallhy.egloos.com/2054979</guid>
		<description>
			<![CDATA[ 
  <p>JSP syntax<br>HTML 같은 static data <br>include같은 JSP directives<br>JSP scripting elements and variables<br>JSP actions<br>custom tags with correct library</p><p>JSP directive 는 JSP compiler가 servlet을 어떻게 생성할지 조정한다<br>include : &lt;%@ include file="somefile.jspf" %&gt; <br>page :<br>import&nbsp; - Results in a Java import statement being inserted into the resulting file. <br>contentType&nbsp; - specifies the content that is generated. This should be used if HTML is not used or if the character set is not the default character set. <br>errorPage&nbsp; - Indicates the page that will be shown if an exception occurs while processing the HTTP request. <br>isErrorPage - If set to true, it indicates that this is the error page. Default value is false. <br>isThreadSafe - Indicates if the resulting servlet is thread safe. <br>autoFlush - To autoflush the contents.A value of true, the default, indicates that the buffer should be flushed when it is full. A value of false, rarely used, indicates that an exception should be thrown when the buffer overflows. A value of false is illegal when also using buffer="none". <br>session - To maintain session. A value of true (the default) indicates that the predefined variable session (of type HttpSession) should be bound to the existing session if one exists, otherwise a new session should be created and bound to it. A value of false indicates that no sessions will be used, and attempts to access the variable session will result in errors at the time the JSP page is translated into a servlet. <br>buffer - To set Buffer Size. The default is 8k and it is advisable that you increase it. <br>isELIgnored - Defines whether EL expressions are ignored when the JSP is translated. <br>language - Defines the scripting language used in scriptlets, expressions and declarations. Right now, the only possible value is "java". <br>extends - Defines the superclass of the class this JSP will become. You won't use this unless you REALLY know what you're doing - it overrides the class hierarchy provided by the Container. <br>info - Defines a String that gets put into the translated page, just so that you can get it using the generated servlet's inherited getServletInfo() method. <br>pageEncoding - Defines the character encoding for the JSP. The default is "ISO-8859-1"(unless the contentType attribute already defines a character encoding, or the page uses XML document syntax). </p><p>&lt;%@ page import="java.util.*" %&gt; &lt;%-- example import --%&gt;<br>&lt;%@ page contentType="text/html" %&gt; &lt;%-- example contentType --%&gt;<br>&lt;%@ page isErrorPage="false" %&gt; &lt;%-- example for non error page --%&gt;<br>&lt;%@ page isThreadSafe="true" %&gt; &lt;%-- example for a thread safe JSP --%&gt;<br>&lt;%@ page session="true" %&gt; &lt;%-- example for using session binding --%&gt;<br>&lt;%@ page autoFlush="true" %&gt; &lt;%-- example for setting autoFlush --%&gt;<br>&lt;%@ page buffer="20kb" %&gt; &lt;%-- example for setting Buffer Size --%&gt;</p><p>JSP scripting elements and objects<br>JSP내부객체<br>out - The JspWriter used to write the data to the response stream(output page). <br>page - The servlet itself. <br>pageContext&nbsp; - A PageContext instance that contains data associated with the whole page. A given HTML page may be passed among multiple JSPs. <br>request&nbsp; - The HttpServletRequest object that provides HTTP request information. <br>response - The HttpServletResponse object that can be used to send data back to the client. <br>session&nbsp; - The HttpSession object that can be used to track information about a user from one request to another. <br>config&nbsp; - Provides servlet configuration data. <br>application - Data shared by all JSPs and servlets in the application. <br>exception&nbsp; - Exceptions not caught by application code . </p><p>Scripting elements(3 types)<br>1. declaration tag : &lt;%! int serverInstanceVariable = 1; %&gt;&nbsp; 변수선언, Static data members, inner classes, methods<br>2. scriptlet tag : &lt;% int localStackBasedVariable = 1;<br>out.println(localStackBasedVariable); %&gt; _jspService() 내부 위치<br>3. expression tag : &lt;%= "expanded inline data " + 1 %&gt;&nbsp;&nbsp; servlet 내부에서 evaluate되는 표현들. semi-colon있으면 안 됨<br>* comments tag : &lt;%-- give your comments here --%&gt;</p><p>JSP actions<br>웹서버 기능을 호출하기 위한 XML tags. runtime에 실행. <br>jsp:include&nbsp; - Similar to a subroutine, the Java servlet temporarily hands the request and response off to the specified JavaServer Page. Control will then return to the current JSP, once the other JSP has finished. Using this, JSP code will be shared between multiple other JSPs, rather than duplicated. <br>jsp:param&nbsp; - Can be used inside a jsp:include, jsp:forward or jsp:params block. Specifies a parameter that will be added to the request's current parameters. <br>jsp:forward&nbsp; - Used to hand off the request and response to another JSP or servlet. Control will never return to the current JSP. <br>jsp:plugin&nbsp; - Older versions of Netscape Navigator and Internet Explorer used different tags to embed an applet. This action generates the browser specific tag needed to include an applet. <br>jsp:fallback - The content to show if the browser does not support applets. <br>jsp:getProperty&nbsp; - Gets a property from the specified JavaBean. <br>jsp:setProperty - Sets a property in the specified JavaBean. <br>jsp:useBean - Creates or re-uses a JavaBean available to the JSP page. </p><p>JSP Tag Libraries<br>&lt;%@ taglib uri="mytaglib.tld" prefix="myprefix" %&gt;<br>...<br>&lt;myprefix:myaction&gt; &lt;%-- the start tag %&gt;<br>...<br>&lt;/myprefix:myaction&gt; &lt;%-- the end tag %&gt;<br>...</p><p>public class MyActionTag extends TagSupport {<br>&nbsp;&nbsp; //Releases all instance variables.<br>&nbsp;&nbsp; public void release() {...}<br>&nbsp;<br>&nbsp;&nbsp; public MyActionTag() { ... }<br>&nbsp;<br>&nbsp;&nbsp; //called for the start tag<br>&nbsp;&nbsp; public int doStartTag() { ... }<br>&nbsp;<br>&nbsp;&nbsp; //called at the end tag<br>&nbsp;&nbsp; public int doEndTag(){ ... }<br>&nbsp;}</p><p>JSP Standard Tag Library (JSTL)<br>Java EE 5의 포커스는 자바 어노테이션 사용을 쉽게하는 것이다. JSP2.1은 JSP tags handler와 context listener에 Dependency Injection을 위한 어노테이션을 정의함으로써 이를 지원한다.<br>JSP2.0과 JSF1.1에 의해 정의된 expression language를 통합하여&nbsp; Unified Expression Language가 나왔다.<br>JSP2.1은 web semantic을 위한 Servlet2.5 스펙에 영향을 미친다.</p><p>JSP 2.0 <br>EL은 Velocity 스타일의 템플릿을 생성하게 한다.<br>Hello, ${param.visitor} &lt;%-- same as: Hello, &lt;%=request.getParameter("visitor")%&gt; --%&gt;</p><p>// consider some beans.<br>&nbsp;class Person {<br>&nbsp;&nbsp; String name;<br>&nbsp;&nbsp; // person nests an organization bean.<br>&nbsp;&nbsp; Organization organization;</p><p>&nbsp;&nbsp; public String getName() { return this.name; }<br>&nbsp;&nbsp; public Organization getOrganization() { return this.organization; }<br>&nbsp;}</p><p>&nbsp;class Organization {<br>&nbsp;&nbsp; String name;<br>&nbsp;&nbsp; public String getName() { return this.name; }<br>&nbsp;}</p><p><br>// then if an instance of Person was to be placed onto a request attribute under the name "person"<br>&lt;!-- the JSP would have --&gt;<br>&nbsp;Hello, ${person.name}, of company ${person.organization.name}&nbsp; <br>&nbsp;&lt;%-- second expression same as <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% Person p = (Person) request.getAttribute("person");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (p != null) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Organization o = p.getOrganization();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (o != null) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.print(o.getName());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %&gt;<br>&nbsp; --%&gt;<br><br>@출처 : Wikipedia - JavaServer Page</p><br/><br/>tag : <a href="/tag/JSP" rel="tag">JSP</a>			 ]]> 
		</description>
		<category>JSP</category>

		<comments>http://reallhy.egloos.com/2054979#comments</comments>
		<pubDate>Wed, 10 Sep 2008 23:56:14 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Spring Framework 2.5 : New and Notable ]]> </title>
		<link>http://reallhy.egloos.com/2054001</link>
		<guid>http://reallhy.egloos.com/2054001</guid>
		<description>
			<![CDATA[ 
  <p>Spring 2.5 정리<br>- java6 지원 : jdbc 4.0, JMX MXBeans, JDK ServiceLoader API<br>jdk1.3 지원 안 함<br>- JDBC 지원 개선 : Native connections(java.sql.Wrapper), LOB Handling(setBlob/setClob), SQLException 하위클래스 추가<br>- 그 외 JDBC 개선된 점 : SimpleJdbcTemplate, SimpleJdbcCall, SimpleJdbcInsert, MSSQL, MySQL, PostgreSQL, Oracle 에러 코드 매핑 추가</p><p>- Java EE 5 지원<br>&nbsp; - Java EE 5 API 통합 : Servlet2.5, JSP2.1, JSF1.2, JTA1.1, JAX-WS2.0, JavaMail1.4<br>&nbsp; - BEA WebLogic 8.1이상, IBM WebSphere 5.1이상 지원(J2EE 1.4, 1.3 계속 지원...)<br>&nbsp; - 스프링 Component model은 Java EE 5에 핵심적인 어노테이션을 가공처리한다(?)<br>&nbsp;&nbsp;&nbsp; JSR-250 인젝션, 라이프사이클 어노테이션 : 자바 플랫폼상의 통상적인 어노테이션<br>&nbsp;&nbsp;&nbsp; EJB 3.0 어노테이션 : 트랜잭션, @EJB, 기타 인젝션 어노테이션<br>&nbsp; - 통합된 EL지원 <br>&nbsp;&nbsp;&nbsp; JSF 1.2 : SpringBeanFacesELResolver<br>&nbsp;&nbsp;&nbsp; JTA 1.1 : 신규 TransactionsSynchronizationRegistry 지원<br>&nbsp; - RAR 파일 지원(스프링 애플리케이션을 RAR파일로 디플로이 할 수 있음)<br>&nbsp;&nbsp;&nbsp;&nbsp; J2EE 1.4, Java EE 5(JCA1.5)<br>&nbsp;&nbsp;&nbsp;&nbsp; 메시지나 스케쥴링잡 등에 의한 비-웹디플로이 유닛(headless WAR 대체, 스프링 ApplicationContext.xml파일을 참조하기 위해 META-INF/ra.xml 추가, JTA TransactionManager와 MBeanServer와 같은 애플리케이션 서버 서비스에 액세스 할 수 있음)<br>&nbsp;&nbsp;&nbsp; - 공식적으로 IBM WAS 6.x 지원(transaction suspension포함, WebSphere 6.0.x, 6.1.x)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - WebSphereUOWTransactionManager사용(애플리케이션 코드를 오염시키지 않고 IBM API를 사용할 수 있도록 스프링 JtaTransactionManager을 대신함)</p><p>- Spring &amp; OSGi<br>&nbsp;&nbsp;&nbsp; Open Services Gateway initiative<br>&nbsp;&nbsp;&nbsp; 자바 동적 모듈 - 엔터프라이즈 자바의 미래를 위한 핵심<br>&nbsp;&nbsp;&nbsp; 서브시스템의 깨끗한 isolation, Versioning, Hot deployment</p><p>&nbsp;&nbsp;&nbsp; Bundle(중심적인 패키징 유닛) : Versioned JAR, 노출될 타입 전달, 임포트될 타입 구체화, 런타임에 시작, 정지, 갱신될 수 있음<br>&nbsp;&nbsp;&nbsp; Spring 2.5 jar는 OSGi Bundle임(MANIFEST.MF의 headers, 프레임웍을 위한 궁극의 모듈화(필요할 때만 로드)<br>&nbsp;&nbsp;&nbsp; Spring Dynamic Modules for OSGi Service Platforms프로젝트로 통합<br>&nbsp;&nbsp;&nbsp; 각 번들당 한 개의 ApplicationContext<br>&nbsp;&nbsp;&nbsp; OSGi 서비스 레지스트리와 통합<br>&nbsp;&nbsp;&nbsp; 입증된 스프링 컴포넌트 모델을 입증된 OSGi 모듈 시스템과 결합<br>&nbsp;&nbsp;&nbsp; SpringSource 애플리케이션 플랫폼은 OSGi의 generic 미들웨어 커널에 기초함<br>- Spring on OSGi vs Spring on Java EE<br>스프링은 양쪽 케이스에 양립적인 프로그래밍 모델 제공(환경에 종속적이지 않은 POJO, 스프링의 주요 장점으로 가트너에 의해 분류된 환경들 간 이식가능)</p><p>Annotations<br>&nbsp; - java 5.0에 소개, 소스코드에 메타데이타 추가<br>&nbsp; - 스프링은 엔터프라이즈 서비스를 위한 어노테이션 제공(트랜잭션 관리와 JMX) - Spring 1.2때부터..<br>&nbsp; - DI 지원을 위한 포괄적인 어노테이션 소개</p><p>- DI를 위한 어노테이션의 목적<br>어노테이션은 클래스, 메서드, 필드에 적용<br>인젝션 포인트 표시, 어느 Value가 인젝트 될지 결정<br>메서드위의 어노테이션은 어떤 argument가 인젝트될 지 표시함(다중 arguments 가질수 있음)<br>필드위의 어노테이션은 인젝트될 Value를 표시함<br>메서드 argument상의 선택적인 어노테이션은 의존성을 결정하는 방법에 대한 정보를 제공함<br>클래스 위의 어노테이션은 스프링에 의해 관리될 컴포넌트를 표시함<br>- 장점 : 외부설정을 제거하거나 감소시킴. 보다 간결한 메카니즘(어떤 것이 인젝트되고, 어디에 어노테이션의 위치로 어디에 인젝트할 것인지를 표시할 수 있음)<br>- 단점 : per-type not per-instance. 어노테이션이 없는 레거시 코드에서 동작하지 않음. 설정을 변경할 경우 자바코드를 재컴파일 필요. 내부 간단한 타입을 객관화하는 데는 적합하지 않음(?)</p><p>- 스프링2.5의 어노테이션 기반 DI를 위한 선택들<br>@Autowired : 스프링 어노테이션 syntax, 어노테이션 기반 모델을 사용한 경험으로 입증된 스프링 모델 통합<br>@Resource : JSR-250 / EJB3 model</p><p>- 의존성 결정하기 : @Autowired<br>&nbsp; 생성자/필드/메서드 레벨에 인젝션<br>&nbsp; 파라미터 여러개 가진 메서드도 지원(간결하게..)<br>&nbsp; 기본적으로 autowire by type 실행<br>&nbsp; autowiring을 좀더 유용하게 함</p><p>- @Qualifier 어노테이션<br>autowiring by type은 너무 많은 후보자를 가질수 있음<br>qualifier(제한하는 것)를 사용하여 힌트 제공 : 필드/파라미터/커스텀 어노테이션 위에 사용될 수 있음</p><p>- name에 의한 의존성 결정 : @Qualifier("myDataSource")<br>- 어노테이션에 의한 의존성 결정<br>public class JdbcOrderRepositoryImpl implements OrderRepository {<br>@Autowired<br>public void setOrderServices(<br>&nbsp;@Emea OrderService emea,<br>&nbsp;@Apac OrderService apac) {<br>&nbsp;// ...<br>}<br>- 어노테이션으로 인젝션 타겟 연결<br>@Emea<br>public class EmeaOrderService implements OrderService {<br>...<br>}<br>@Apac<br>public class ApacOrderService implements OrderService {<br>...<br>}</p><p>@Qualifier<br>@Component<br>public @interface Emea {<br>}<br>@Qualifier<br>@Component<br>public @interface Apac{<br>}</p><p>- XML로 인젝션 타겟 연결<br>&lt;bean class="example.EmeaOrderService"&gt;<br>&lt;qualifier type=“example.Emea“/&gt;<br>&lt;!–<br>...<br>EmeaOrderService need not be annotated<br>--&gt;<br>&lt;/bean&gt;<br>&lt;bean class="example.ApacOrderService"&gt;<br>&lt;qualifier type=“example.Apac“/&gt;<br>t h&lt;i!s- -b eiannj e-c-t&gt; any dependencies required by<br>&lt;/bean&gt;</p><p>- @Autowired장점 : 간단, 간결, 하지만 여전히 강력한.. , 의존성 주입대상에게 스프링 종속적인 어노테이션을 강요하지 않음<br>- @Autowired단점 : injectees에게 스프링 종속적임(하지만 스프링에서 런타임 의존성은 없음)</p><p><a href="mailto:-@Resource">- @Resource</a> : 의존성 주입 포인트 표시, 하나의 컴포넌트에 표시, 스프링이 JNDI 참조를 투명하게 표시할 수 있다고 하더라도 컴포넌트가 JNDI로부터 와야한다고 강요하지 않음<br>- 장점 : Java EE 5 설정 형식 지원. 이식성 지원가능할수도...<br>- 단점 : 제한된 힘(@Resource 형식은 <a href="mailto:스프링@Autowired">스프링 @Autowired</a> 접근처럼 강력하지 않음, 오직 하나의 참조만 결정할 수 있고, qualifiers나 그 외 어노테이션 결정은 지원하지 않음)</p><p>JSR-250 라이프사이클 어노테이션<br>&nbsp; - @PostConstruct : InitializingBean#afterPropertiesSet()과 비슷<br>&nbsp; - @PreDestroy : DisposableBean#destroy()와 비슷<br>&nbsp; 스프링 종속적이지 않고, 간단하지만 표준화된 중요한 기능<br>&nbsp; 스프링 init-method나 InitializingBean 인터페이스의 위치에 이 어노테이션들을 사용하길 추천함</p><p>- @Component<br>&nbsp;&nbsp;&nbsp;&nbsp; Meta-annotations : 확장성(자바 상속같은..), 다른 어노테이션을 어노테이트할 수 있음<br>&nbsp;&nbsp;&nbsp;&nbsp; Spring stereotypes : 특정목적으로 클래스 정의할 수 있음. 어플리케이션의 강력한semantic모델 빌드하는데 도움. 스프링-종속적이지 않음. AspectJ pointcuts의 중요한 타겟.<br>- Out-of-the-box stereotype annotations<br>@Service : 무상태 서비스 정의<br>@Repository : DAO같은 레포지토리 정의<br>@Aspect : AspectJ 애스펙트<br>@Controller : MVC 콘트롤러<br>- can define your own annotations....with @Component</p><p>&nbsp;- Component Scanning<br>annotated 클래스들의 클래스패스를 스캔<br>XML정의 할 필요없음(어노테이션으로 할 수 없는 걸 제외하고..)</p><p>- Component Scan Usage<br>스프링 코어의 context 네임스페이스 사용. 픽업할 패키지 구체화(base-package="")<br>XML빈설정과 양립할 수 있음<br>- More advanced component scanning usage<br>어노테이션에 국한되지 않고 type 이나 다른 체크도 사용할 수 있음<br>매우 커스터마이저블해서 어노테이션을 사용하지 않고서도 작동한다<br>&nbsp; - 장점 : 허용하는 한에서 더 구체화시킬 필요없으면 굳이 XML이 필요치 않음. 자동으로 변화가 감지됨. 어노테이션 위주의 인젝션에 굉장히 잘 작동함. <br>&nbsp; - 단점 : 모든 걸 다 할 수는 없다. 어노테이트될 클래스가 필요하다. 스프링 필터링 메카니즘을 사용하여 너무 과도한 클래스들이 스캔되지 않도록 주의할 필요가 있다. XML설정으로 가치있는 애플리케이션 스트럭쳐 블루프린트를 얻을 수 없다. (Spring IDE가 모든 스프링 컴포넌트 정의를 통합한다해도...)</p><p>- 믹스 앤 매치(XML or&nbsp; Annotations)<br>결국 모두 스프링 메타데이타<br>스프링 컴포넌트 모델은 독립적인 메타데이타<br>어느 한 접근이 다른 식의 접근을 배척하지 않음<br>어느 한 컨텍스트에 다양한 기여를 할 수 있음</p><p>&nbsp; - 명명관습<br>빈클래스의 짧은 이름으로 XML 빈 정의 제공<br>좀더 복잡한 시나리오에서는, @Component어노테이션에 "name"제공<br>&nbsp; - 두 방식 복합<br>절대 헛되지 않아..<br>어느테이션의 한계에 부딪히면 강력하고 입증된 스프링XML모델을 사용할 수 있다.<br>(니가 한 걸 똑같이 다시 할 필요없이...)</p><p><br>- Spring MVC annotations<br>항상 유연한 모델 제공해 왔음<br>프레임웍의 어느 부분에서의 커스터마이징도 허용하는 확장포인트<br>HandlerMappings<br>HandlerAdapters<br>ViewResolvers</p><p>전형적인 활용에 의한 고착화된 상속과 관련된 단점<br>SimpleFormController와 수많은 템플릿 메서드를 포함한 다른 Base 클래스들</p><p>- Anotation-driven Controllers<br>&nbsp; - MultiActionController 자바5로 진화(form 핸들링 능력을 갖춘...)<br>&nbsp; - POJO기반 - 그냥 니 클래스 어노테이트해..서블릿컨테이너와 포틀릿 컨테이너에서 작동<br>&nbsp; - 훌륭한 프로그래밍모델을 제공하는 어노테이션<br>&nbsp;&nbsp;&nbsp; @Controller<br>&nbsp;&nbsp;&nbsp; @RequestMapping<br>&nbsp;&nbsp;&nbsp; @RequestMethod<br>&nbsp;&nbsp;&nbsp; @RequestParam<br>&nbsp;&nbsp;&nbsp; @ModelAttribute<br>&nbsp;&nbsp;&nbsp; @SessionAttribute<br>&nbsp;&nbsp;&nbsp; @InitBinder<br>- 개선된 어노테이션 기반 MVC<br>세션 어트리뷰트, 데이터 바인더 초기화, 폼 lifecycle을 위한 어노테이션</p><p>-스프링 포트폴리오(Enterprise Java의 요구사항에 맞춰 점점더 완벽한 솔루션을 제공하기 위해 스프링 프레임웍을 넘어 확장되고 있는...)<br>Spring Security 2.0<br>Spring Batch : SpringSource와 Accenture 공동개발<br>Spring Web Flow<br>Spring Web Services<br>Spring Integration<br>Spring Dynamic Modules for OSGi</p><p>- Spring Ecosystem<br>스프링 에코시스템은 상업적인 프로젝트와 그 외 오픈소스 프로젝트로 확장되고 있음<br>SpringSource Application Platform<br>WebLogic Server<br>WebLogic Event Server<br>Gigaspaces<br>SpringSource Tool Suite<br>SpringSource Advaned Management Suite(AMS)<br>SpringSource Advanced Pack for Oracle Database<br>...</p><p>- Spring 3.0<br>Spring MVC와 Spring Web Flow간에 통합된 프로그래밍 모델을 제시하여 웹프로그래밍계 전반적인 요구사항을 핸들할 수 있도록 할 것임<br>Spring MVC와 Spring Web Services를 통한 포괄적인 REST 지원<br><br>@출처 : JavaOne2008 Spring Framework 2.5 : New and Notable (by Rod Johnson) </p><br/><br/>tag : <a href="/tag/spring" rel="tag">spring</a>			 ]]> 
		</description>
		<category>프로그래밍</category>
		<category>spring</category>

		<comments>http://reallhy.egloos.com/2054001#comments</comments>
		<pubDate>Wed, 10 Sep 2008 06:12:58 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ get pearls of wisdom from granny ]]> </title>
		<link>http://reallhy.egloos.com/1889543</link>
		<guid>http://reallhy.egloos.com/1889543</guid>
		<description>
			<![CDATA[ 
  <p><strong>Any fool can write code that a computer can understand. Good programmers write code that humans can understand. (Fowler)</strong></p><p><strong>Debug only code - comments can lie.</strong></p><p><strong>If you have too many special cases, you are doing it wrong.</strong></p><p><strong>Get your data structures correct first, and the rest of the program will write itself.</strong></p><p><strong>Testing can show the presence of bugs, but not their absence.</strong></p><p><strong>The first step in fixing a broken program is getting it to fail repeatedly.</strong></p><p><strong>The fastest algorithm can frequently be replaced by one that is almost as fast and much easier to understand.</strong></p><p><strong>The cheapest, fastest, and most reliable components of a computer system are those that aren't there.</strong></p><p><strong>Good judgement comes from experience, and experience comes from bad judgement.</strong></p><p><strong>Don't use the computer to do things that can be done efficiently by hand.</strong></p><p><strong>[Thompson's Rule for first-time telescope makers] It is faster to make a four-inch mirror then a six-inch mirror than to make a six-inch mirror.</strong></p><p><strong>If you lie to the computer, it will get you.</strong></p><p><strong>Inside of every large program is a small program struggling to get out.<br><br>출처: <a href="http://www.javaranch.com/granny.jsp" target="_blank">http://www.javaranch.com/granny.jsp</a></p></strong><br/><br/>tag : <a href="/tag/programming" rel="tag">programming</a>			 ]]> 
		</description>
		<category>programming</category>

		<comments>http://reallhy.egloos.com/1889543#comments</comments>
		<pubDate>Thu, 15 May 2008 00:52:07 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ JavaOne2008 참가 후기 ]]> </title>
		<link>http://reallhy.egloos.com/1888593</link>
		<guid>http://reallhy.egloos.com/1888593</guid>
		<description>
			<![CDATA[ 
  <table topmargin="0" marginheight="0" marginwidth="0" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="text_gr"><div style="position: relative;"><p><meta content=" 6.0.0.51" name="generator"></p><br />
<p><span lang="EN-US">Sun</span>에서<span lang="EN-US"> JavaFX</span>를 아주 강력하게 밀고 있지만 아직은 때가 아닌 듯 보였고<span lang="EN-US">, RIA </span>시장에서는<span lang="EN-US"> adobe</span>의<span lang="EN-US"> Flex</span>가 대세라는 걸 많이 느꼈습니다<span lang="EN-US">.</span></p><p><span lang="EN-US">Adobe Flex SDK </span>와<span lang="EN-US"> Flex Builder 3(60</span>일 시험판<span lang="EN-US">) </span>다운로드 링크입니다<span lang="EN-US">. </span>관심있으신 분은<span lang="EN-US">&nbsp;</span>한번 써보세요<span lang="EN-US">. </span>여기 클릭<span lang="EN-US">(</span><span style="word-spacing: 0px; orphans: 2; widows: 2;"><span class="apple-style-span"><span style="font-size: 9pt; color: black; font-family: 'Lucida Grande';" lang="EN-US"><a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email">http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email</a></span></span></span><span lang="EN-US">)</span></p><p>뭐<span lang="EN-US">.. </span>그건 그렇고<span lang="EN-US">...</span></p><p>자바원 컨퍼런스에 대한 간단한 소개를 하자면<span lang="EN-US">..</span></p><p><span lang="EN-US">Sun</span>에서 주최하는 전세계 자바관련 업체와 자바개발자들의 축제입니다<span lang="EN-US">.</span></p><p>규모도 엄청나더군요<span lang="EN-US">.. 15000</span>명 참가<span lang="EN-US">, </span>세션은<span lang="EN-US"> 300 </span>여개<span lang="EN-US">..</span></p><p>&nbsp;</p><p>그곳 분위기는 대강 이런 분위기<span lang="EN-US">....</span></p><p><span lang="EN-US"><img alt="img12.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=0XJ8MNM9D9PP@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1025" align="bottom" border="0" height="360" width="480"><img alt="img16.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=LYEH3PLNHK0G@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1026" align="bottom" border="0" height="360" width="480"></span></p><p>구성은 전체 참가자가 참석하는<span lang="EN-US"> General Session, </span>각 관심분야별로 헤쳐모이는<span lang="EN-US"> Technical Session, </span>손을 더럽히면서 몸으로 느껴보는<span lang="EN-US"> Hands-on-lab, </span>업체 전시회장<span lang="EN-US"> Java Pavilion </span>등으로 구성되어있었습니다<span lang="EN-US">.</span></p><p>&nbsp;</p><p>전 무엇보다 자바의 아버지<span lang="EN-US"> James Gosling</span>을 눈앞에서 직접 만나고<span lang="EN-US">(</span>아무리 봐도<span lang="EN-US"> KFC </span>할아버지같은 저 푸근한 외모<span lang="EN-US">), </span></p><p><span lang="EN-US"><img alt="img10.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=858COWN3UUTK@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1027" align="bottom" border="0" height="360" width="480"><img alt="img15.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=812FVACQXCAF@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1028" align="bottom" border="0" height="360" width="480"></span></p><p><span lang="EN-US">Effective Java</span>의 저자인<span lang="EN-US"> Joshua Bloch </span>에게 사인받고<span lang="EN-US"> (</span>저번주에 발간된<span lang="EN-US"> Effective Java 2</span>판 출시기념으로 책구입해서 가져오면 사인을 해주더라구요<span lang="EN-US">(</span>얍삽한 상술<span lang="EN-US">...)... </span>돌아다니다가 얼굴보이길래 낼름 책사들고 점심밥먹으려고 폼잡는데 가서 사인 받아왔습니다<span lang="EN-US">...</span>ㅎㅎㅎ<span lang="EN-US">)</span></p><p><span lang="EN-US"><img alt="img13.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=9RX3VCDE6243@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1029" align="bottom" border="0" height="360" width="480"><img alt="img14.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=9F03LBE55GR1@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1030" align="bottom" border="0" height="360" width="480"></span></p><p><span lang="EN-US">Spring </span>의 아버지<span lang="EN-US"> Rod Johnson</span>에게 바로 눈앞에서 강의를 들은게 젤 기억에 남네요<span lang="EN-US">.^^ (</span>특이하게도<span lang="EN-US"> A</span>를<span lang="EN-US"> I </span>로 발음하는<span lang="EN-US">... </span>그래도 천천히 또박또박 말해줘서 그나마 알아들었습니다<span lang="EN-US">.)</span></p><p><span lang="EN-US"><img alt="img11.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=LZOV922O1AJZ@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1031" align="bottom" border="0" height="360" width="480"></span></p><p>자바원에서 자바 기술뿐만 아니라 요즘 대세인<span lang="EN-US"> Web2.0 </span>기류에 맞춰 스크립트 언어에 관한 강의가 상당히 많았습니다<span lang="EN-US">.</span></p><p><span lang="EN-US">JavaScript, Ruby, JRuby, Groovy, Python, Jython </span>등등<span lang="EN-US">... </span></p><p>서점에서 둘러봐도 프로그래밍 랭귀지 섹션에는<span lang="EN-US">&nbsp;</span>스크립트 언어관련 책들이 대부분이더군요<span lang="EN-US">. </span></p><p><span lang="EN-US"><img alt="img9.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=55YJOPCKBS31@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1032" align="bottom" border="0" height="360" width="480"><img alt="img8.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=UQSZ7D4NCU3J@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1033" align="bottom" border="0" height="360" width="480"></span></p><p>프레임웍과 관련해서는<span lang="EN-US">&nbsp;</span>가장 유명하고 강력한 프레임웍<span lang="EN-US">&nbsp;Spring 2.5</span>을 비롯해서<span lang="EN-US">, Struts2, JSF 2.0, (J)Ruby on rails, Grails, GWT, jMaki </span>등등이 소개되고<span lang="EN-US"> Hands-on-lab</span>형식으로 실습도 진행되었습니다<span lang="EN-US">.</span></p><p>전 개인적인 관심으로<span lang="EN-US"> 'Developing with (J)Ruby on rails' &nbsp;Hands-on-lab</span>세션에 참여했는데 우연찮게 늦게 강의실에 들어온 미국인이 자리가 없어서 맨끝자리에서 조용히 실습하고 있던 제 옆에 앉아서 같은 컴퓨터에서 실습을 하게 되었습니다<span lang="EN-US">.</span></p><p><span lang="EN-US">짝프로그래밍을 해본거죠.. 외국인이랑... 실습 따라하다가 에러나면 옆에서 보고있는 사람이 후딱 잡아주고 다른 사람은 코딩하고,, 계속 주고받다보니까 재밌더군요.. 색다른 즐거움이었습니다.</span></p><p>그 미국인, 루비는 한번도 해본적이 없는 순수 자바개발자라고 하던데<span lang="EN-US">, </span>잘 하더군요<span lang="EN-US">.. </span>마지막 끝날 때는 실습한 내용에 대해 저에게 간단한<span lang="EN-US"> Wrap-up</span>까지 해주고 사라졌습니다<span lang="EN-US">. That's&nbsp;cool~ </span>이러면서<span lang="EN-US">...</span></p><p><span lang="EN-US"><img alt="img7.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=JZUHO28OQLMY@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1034" align="bottom" border="0" height="360" width="480"></span></p><p><span lang="EN-US">SOA</span>라는 개념이 나온지 벌써<span lang="EN-US"> 10 </span>여년이 되어가지만<span lang="EN-US">, </span>아직까지도<span lang="EN-US"> SOA</span>는 일반 개발자들에게 멀고먼 딴나라 얘기가 아닌가 하는 개인적인 생각도 해보았습니다<span lang="EN-US">. </span></p><p>하지만 향후 발전가능성을<span lang="EN-US">&nbsp;</span>볼땐 분명 투자할만한 가치가 있는 분야가 아닌가 생각해봅니다<span lang="EN-US">.</span></p><p>세션들중에<span lang="EN-US"> SOA </span>구현을 위한 구체적인 방안 모색에 관한 세션과<span lang="EN-US"> WebService</span>와<span lang="EN-US"> RESTful</span>이 무엇인지에 대한 개념설명에 대한 세션이 여럿 있었어요<span lang="EN-US">. </span></p><p><span lang="EN-US">Apache Tuscany, Restlet </span>등<span lang="EN-US"> SOA</span>프레임웍을 이용한 개발 적용사례 발표도 있었구요<span lang="EN-US">. </span>하지만<span lang="EN-US">.. </span>아직도<span lang="EN-US"> SOA</span>는 감이 잘 안 옵니다<span lang="EN-US">. </span>이런<span lang="EN-US">.... </span></p><p>&nbsp;</p><p>간단한 소개글은 여기서 마치고<span lang="EN-US">, </span>계속해서 컨퍼런스에서 참석했던<span lang="EN-US">&nbsp;</span>세션들 중 재밌게 들었던 세션들 몇 개 요약해서 올리겠습니다<span lang="EN-US">.</span></p><p>&nbsp;</p><p><span lang="EN-US">* </span>최근<span lang="EN-US"> 3</span>년간 자바원컨퍼런스에서 발표됐던 세션과 핸즈온랩 다운받을 수 있는 주소입니다<span lang="EN-US">. </span>참고하세요<span lang="EN-US">(<a href="http://developers.sun.com/learning/javaoneonline/">http://developers.sun.com/learning/javaoneonline/</a>)</span></p><p>아직<span lang="EN-US"> 2008</span>년 핸즈온랩만 올라오고 나머지는 없네요<span lang="EN-US">. 2007</span>년과<span lang="EN-US"> 2006</span>년 세션들 다운받아보시고<span lang="EN-US"> Hands-on-lab </span>따라 해보면 최신 트렌드도 알 수 있고<span lang="EN-US">, </span>자바 개발역량 발전에 많은 도움되실거라 생각됩니다<span lang="EN-US">.</span></p><p>실습은 아무래도<span lang="EN-US"> Sun</span>이 주최한 행사다보니<span lang="EN-US"> NetBeans</span>로 실습하면 편하도록 되어있습니다<span lang="EN-US">. Netbeans 6.1 </span>다운로드는 여기에서<span lang="EN-US">...(<a href="http://www.netbeans.org/community/releases/61/">http://www.netbeans.org/community/releases/61/</a>)</span></p><p><span lang="EN-US">Netbeans </span>최신버전은 무엇보다도 예전보다 시작속도가 빨라졌고<span lang="EN-US">, Javascript </span>지원<span lang="EN-US">, Spring 2.5 </span>프레임웍<span lang="EN-US">, Ruby/JRuby, RESTful </span>지원 등 이클립스 못지않은 기능을 지원합니다<span lang="EN-US">.</span></p><p>지금까지<span lang="EN-US"> IDE</span>라고 하면<span lang="EN-US">&nbsp;</span>이클립스가 지배적이었지만<span lang="EN-US">, </span>최근들어 슬슬<span lang="EN-US"> Netbeans </span>쪽으로 대세가 기우는 게 아닌가하는 생각도 들었습니다<span lang="EN-US">.</span></p><p><span lang="EN-US"><br />
 </span></p><p>남는건 사진 밖에 없다고 생각해서 최대한 많이 찍어오려고 했는데<span lang="EN-US">, </span>정작 제 사진은 달랑 이거 한장뿐입니다<span lang="EN-US">.- _-)a</span></p><p><span lang="EN-US"><img alt="img6.jpg" src="http://70.20.10.140:8003/dm/servlet/dmmhtimg?kid=4602f05b00000119e65ab233000049e2&amp;cid=F0HH6WY7F2LB@namo.co.kr&amp;sep=%7C" v:shapes="_x0000_i1035" align="bottom" border="0" height="480" width="360"></span></p></div></td></tr></tbody></table><br/><br/>tag : <a href="/tag/javaone" rel="tag">javaone</a>			 ]]> 
		</description>
		<category>Log</category>
		<category>javaone</category>

		<comments>http://reallhy.egloos.com/1888593#comments</comments>
		<pubDate>Wed, 14 May 2008 07:43:50 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 2008 JavaOne 컨퍼런스 후기 ]]> </title>
		<link>http://reallhy.egloos.com/1887113</link>
		<guid>http://reallhy.egloos.com/1887113</guid>
		<description>
			<![CDATA[ 
  <p>1. 장소 : Moscone Center (San Francisco, California)</p><p>2. 일시 : '08. 5. 6 ~ 5. 9</p><p>3. 참가인원 : 약 15,000명</p><p>4. 개요 : <font style="font-family: 굴림,굴림체; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11pt; font-size-adjust: none; font-stretch: normal; color: rgb(0, 0, 0); line-height: 130%;"><span style="font-family: 굴림,굴림체; font-style: normal; font-variant: normal; font-weight: normal; color: black; line-height: 130%;">전세계 Java엔지니어 및 관련 업체 관련자들이 참관하는 세계 최대 Java개발자 축제</span></font></p><p>5. 내용</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <b>General Session</b> : Sun(James Gosling 등), Oracle, AMD, Intel, MotoDev 진행, &nbsp;컨퍼런스 전체 참가자 참여</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <b>Technical Session</b> : 주로 Sun사의 엔지니어 강연 위주, Capzemini, Google, SpringSource 출신&nbsp;명엔지니어들의&nbsp;강연 및 Q&amp;A&nbsp;형태로 운영</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Java Platform, Standard Edition (Java SE)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Java Platform, Enterprise Edition (Java EE)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Java Platform, Micro Edition (Java ME)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Desktop</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Next Generation Web</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;SOA and Enterprise Integration</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Tools and Scripting Languages</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Cool Stuff</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Open Source</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Consumer Technologies</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;Rich Media and Content </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <b>BOF</b>(Birds-of-a-feather) : 테크니컬 세션과 비슷하지만 조금더 심도있는 주제로 현장의 목소리 청취에 비중을 둠. 동일한 관심주제를 가진 참여자들의 활발한 의견 교환</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <b>Hands-on-lab</b> : 직접 손을 더럽히면서(?) 최신 기술을 실습해보는 시간</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- <b>Java Pavilion</b> : 자바 관련 제품 및 솔루션 전시회, 국내 업체중 삼성전자 정보통신, 제니퍼, XCE(MS 협력업체) 등&nbsp;참여</p><p>6. 결과</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 자바 코어기술의 open source화(OpenJDK), 올해 릴리즈될 JDK 7.0 관련 추가되는 feature소개, 타 언어의 장점들은 언제든지 끌어안을 수 있다는 인상(closure, late initialization&nbsp;등)</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Web2.0 관련 Ajax, Agile 구현이라는 시대적 흐름에 따른 스크립트 언어(Javascript,&nbsp;(j)ruby, &nbsp;groovy, jython 등) 언어 소개&nbsp;&nbsp;: 속도가 느리고 아무나 쉽게 할 수 있는 하급기술로 천시받던 스크립트 언어의 초강세. 대부분의 사례 소개에서 스크립트 언어를 객체지향적으로 구현하고 있었으며 다양한 IDE(Eclipse, Aptana, Netbeans 등)로 코드 생성 자동화&nbsp;활용. 서점에 진열된 책 중 스크립트 언어 관련 서적이 반 이상 차지</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Sun사의 RIA관련 기술인 JavaFX 소개, Adobe사의 Flex, MS사의 Silverlight에 비해 늦게 출발하여 상대적으로 UI의 유려함이 떨어지지만, 자바를 기반으로 하고 있어 접근성이 쉽고 웹어플리케이션 뿐만 아니라 데스크탑, 모바일 등 다양한 플랫폼에 적용될 수 있는 기술이라는 점에서 향후 RIA 시장의 주도권 경쟁이 더욱 심화될 것으로 보임</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- SOA관련 WebService, RESTful 프로젝트 구현사례 및 Lessons learned 소개</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 자동화를 통한 프로세스 개선 : Mylin, Hudson 등 '지속적인 통합(Continuous Integration)'과 관련된 프로세스 자동화 사례 소개. Do more with less 라는 구호가 인상적이었음</p><p>7. 참고자료</p><p>&nbsp;&nbsp;&nbsp;&nbsp;참여한 테크니컬 세션 pdf파일, Hands-on-lab&nbsp;소스코드 첨부(<a href="http://developers.sun.com/learning/javaoneonline" target="_blank">http://developers.sun.com/learning/javaoneonline</a> 에서 다운로드 가능)</p><br/><br/>tag : <a href="/tag/javaone" rel="tag">javaone</a>			 ]]> 
		</description>
		<category>Log</category>
		<category>javaone</category>

		<comments>http://reallhy.egloos.com/1887113#comments</comments>
		<pubDate>Tue, 13 May 2008 08:48:52 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
	<item>
		<title><![CDATA[ java.lang.UnsupportedClassVersionError ]]> </title>
		<link>http://reallhy.egloos.com/1796411</link>
		<guid>http://reallhy.egloos.com/1796411</guid>
		<description>
			<![CDATA[ 
  <a title="" href="http://mars0717.egloos.com/1061030">[펌] error : java.lang.UnsupportedClassVersionError</a><br>기억보조<br>Unsupported major.minor version 48.0 ==&gt;jdk 1.4<br>Unsupported major.minor version 49.0 ==&gt;jdk 5.0<br>Unsupported major.minor version 50.0 ==&gt;jdk 6.0			 ]]> 
		</description>
		<category>기억보조</category>

		<comments>http://reallhy.egloos.com/1796411#comments</comments>
		<pubDate>Fri, 14 Mar 2008 08:18:24 GMT</pubDate>
		<dc:creator>이호연</dc:creator>
	</item>
</channel>
</rss>
