2009년 05월 12일
Oracle Error Code 모음
# by | 2009/05/12 09:22 | 프로그래밍 | 트랙백 | 덧글(0)
# by | 2009/02/04 01:27 | Log | 트랙백 | 덧글(0)
# by | 2008/09/18 18:15 | 트랙백 | 덧글(0)
JSP syntax
HTML 같은 static data
include같은 JSP directives
JSP scripting elements and variables
JSP actions
custom tags with correct library
JSP directive 는 JSP compiler가 servlet을 어떻게 생성할지 조정한다
include : <%@ include file="somefile.jspf" %>
page :
import - Results in a Java import statement being inserted into the resulting file.
contentType - 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.
errorPage - Indicates the page that will be shown if an exception occurs while processing the HTTP request.
isErrorPage - If set to true, it indicates that this is the error page. Default value is false.
isThreadSafe - Indicates if the resulting servlet is thread safe.
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".
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.
buffer - To set Buffer Size. The default is 8k and it is advisable that you increase it.
isELIgnored - Defines whether EL expressions are ignored when the JSP is translated.
language - Defines the scripting language used in scriptlets, expressions and declarations. Right now, the only possible value is "java".
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.
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.
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).
<%@ page import="java.util.*" %> <%-- example import --%>
<%@ page contentType="text/html" %> <%-- example contentType --%>
<%@ page isErrorPage="false" %> <%-- example for non error page --%>
<%@ page isThreadSafe="true" %> <%-- example for a thread safe JSP --%>
<%@ page session="true" %> <%-- example for using session binding --%>
<%@ page autoFlush="true" %> <%-- example for setting autoFlush --%>
<%@ page buffer="20kb" %> <%-- example for setting Buffer Size --%>
JSP scripting elements and objects
JSP내부객체
out - The JspWriter used to write the data to the response stream(output page).
page - The servlet itself.
pageContext - A PageContext instance that contains data associated with the whole page. A given HTML page may be passed among multiple JSPs.
request - The HttpServletRequest object that provides HTTP request information.
response - The HttpServletResponse object that can be used to send data back to the client.
session - The HttpSession object that can be used to track information about a user from one request to another.
config - Provides servlet configuration data.
application - Data shared by all JSPs and servlets in the application.
exception - Exceptions not caught by application code .
Scripting elements(3 types)
1. declaration tag : <%! int serverInstanceVariable = 1; %> 변수선언, Static data members, inner classes, methods
2. scriptlet tag : <% int localStackBasedVariable = 1;
out.println(localStackBasedVariable); %> _jspService() 내부 위치
3. expression tag : <%= "expanded inline data " + 1 %> servlet 내부에서 evaluate되는 표현들. semi-colon있으면 안 됨
* comments tag : <%-- give your comments here --%>
JSP actions
웹서버 기능을 호출하기 위한 XML tags. runtime에 실행.
jsp:include - 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.
jsp:param - 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.
jsp:forward - Used to hand off the request and response to another JSP or servlet. Control will never return to the current JSP.
jsp:plugin - 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.
jsp:fallback - The content to show if the browser does not support applets.
jsp:getProperty - Gets a property from the specified JavaBean.
jsp:setProperty - Sets a property in the specified JavaBean.
jsp:useBean - Creates or re-uses a JavaBean available to the JSP page.
JSP Tag Libraries
<%@ taglib uri="mytaglib.tld" prefix="myprefix" %>
...
<myprefix:myaction> <%-- the start tag %>
...
</myprefix:myaction> <%-- the end tag %>
...
public class MyActionTag extends TagSupport {
//Releases all instance variables.
public void release() {...}
public MyActionTag() { ... }
//called for the start tag
public int doStartTag() { ... }
//called at the end tag
public int doEndTag(){ ... }
}
JSP Standard Tag Library (JSTL)
Java EE 5의 포커스는 자바 어노테이션 사용을 쉽게하는 것이다. JSP2.1은 JSP tags handler와 context listener에 Dependency Injection을 위한 어노테이션을 정의함으로써 이를 지원한다.
JSP2.0과 JSF1.1에 의해 정의된 expression language를 통합하여 Unified Expression Language가 나왔다.
JSP2.1은 web semantic을 위한 Servlet2.5 스펙에 영향을 미친다.
JSP 2.0
EL은 Velocity 스타일의 템플릿을 생성하게 한다.
Hello, ${param.visitor} <%-- same as: Hello, <%=request.getParameter("visitor")%> --%>
// consider some beans.
class Person {
String name;
// person nests an organization bean.
Organization organization;
public String getName() { return this.name; }
public Organization getOrganization() { return this.organization; }
}
class Organization {
String name;
public String getName() { return this.name; }
}
// then if an instance of Person was to be placed onto a request attribute under the name "person"
<!-- the JSP would have -->
Hello, ${person.name}, of company ${person.organization.name}
<%-- second expression same as
<% Person p = (Person) request.getAttribute("person");
if (p != null) {
Organization o = p.getOrganization();
if (o != null) {
out.print(o.getName());
}
}
%>
--%>
@출처 : Wikipedia - JavaServer Page
# by | 2008/09/11 08:56 | 트랙백 | 덧글(0)
Spring 2.5 정리
- java6 지원 : jdbc 4.0, JMX MXBeans, JDK ServiceLoader API
jdk1.3 지원 안 함
- JDBC 지원 개선 : Native connections(java.sql.Wrapper), LOB Handling(setBlob/setClob), SQLException 하위클래스 추가
- 그 외 JDBC 개선된 점 : SimpleJdbcTemplate, SimpleJdbcCall, SimpleJdbcInsert, MSSQL, MySQL, PostgreSQL, Oracle 에러 코드 매핑 추가
- Java EE 5 지원
- Java EE 5 API 통합 : Servlet2.5, JSP2.1, JSF1.2, JTA1.1, JAX-WS2.0, JavaMail1.4
- BEA WebLogic 8.1이상, IBM WebSphere 5.1이상 지원(J2EE 1.4, 1.3 계속 지원...)
- 스프링 Component model은 Java EE 5에 핵심적인 어노테이션을 가공처리한다(?)
JSR-250 인젝션, 라이프사이클 어노테이션 : 자바 플랫폼상의 통상적인 어노테이션
EJB 3.0 어노테이션 : 트랜잭션, @EJB, 기타 인젝션 어노테이션
- 통합된 EL지원
JSF 1.2 : SpringBeanFacesELResolver
JTA 1.1 : 신규 TransactionsSynchronizationRegistry 지원
- RAR 파일 지원(스프링 애플리케이션을 RAR파일로 디플로이 할 수 있음)
J2EE 1.4, Java EE 5(JCA1.5)
메시지나 스케쥴링잡 등에 의한 비-웹디플로이 유닛(headless WAR 대체, 스프링 ApplicationContext.xml파일을 참조하기 위해 META-INF/ra.xml 추가, JTA TransactionManager와 MBeanServer와 같은 애플리케이션 서버 서비스에 액세스 할 수 있음)
- 공식적으로 IBM WAS 6.x 지원(transaction suspension포함, WebSphere 6.0.x, 6.1.x)
- WebSphereUOWTransactionManager사용(애플리케이션 코드를 오염시키지 않고 IBM API를 사용할 수 있도록 스프링 JtaTransactionManager을 대신함)
- Spring & OSGi
Open Services Gateway initiative
자바 동적 모듈 - 엔터프라이즈 자바의 미래를 위한 핵심
서브시스템의 깨끗한 isolation, Versioning, Hot deployment
Bundle(중심적인 패키징 유닛) : Versioned JAR, 노출될 타입 전달, 임포트될 타입 구체화, 런타임에 시작, 정지, 갱신될 수 있음
Spring 2.5 jar는 OSGi Bundle임(MANIFEST.MF의 headers, 프레임웍을 위한 궁극의 모듈화(필요할 때만 로드)
Spring Dynamic Modules for OSGi Service Platforms프로젝트로 통합
각 번들당 한 개의 ApplicationContext
OSGi 서비스 레지스트리와 통합
입증된 스프링 컴포넌트 모델을 입증된 OSGi 모듈 시스템과 결합
SpringSource 애플리케이션 플랫폼은 OSGi의 generic 미들웨어 커널에 기초함
- Spring on OSGi vs Spring on Java EE
스프링은 양쪽 케이스에 양립적인 프로그래밍 모델 제공(환경에 종속적이지 않은 POJO, 스프링의 주요 장점으로 가트너에 의해 분류된 환경들 간 이식가능)
Annotations
- java 5.0에 소개, 소스코드에 메타데이타 추가
- 스프링은 엔터프라이즈 서비스를 위한 어노테이션 제공(트랜잭션 관리와 JMX) - Spring 1.2때부터..
- DI 지원을 위한 포괄적인 어노테이션 소개
- DI를 위한 어노테이션의 목적
어노테이션은 클래스, 메서드, 필드에 적용
인젝션 포인트 표시, 어느 Value가 인젝트 될지 결정
메서드위의 어노테이션은 어떤 argument가 인젝트될 지 표시함(다중 arguments 가질수 있음)
필드위의 어노테이션은 인젝트될 Value를 표시함
메서드 argument상의 선택적인 어노테이션은 의존성을 결정하는 방법에 대한 정보를 제공함
클래스 위의 어노테이션은 스프링에 의해 관리될 컴포넌트를 표시함
- 장점 : 외부설정을 제거하거나 감소시킴. 보다 간결한 메카니즘(어떤 것이 인젝트되고, 어디에 어노테이션의 위치로 어디에 인젝트할 것인지를 표시할 수 있음)
- 단점 : per-type not per-instance. 어노테이션이 없는 레거시 코드에서 동작하지 않음. 설정을 변경할 경우 자바코드를 재컴파일 필요. 내부 간단한 타입을 객관화하는 데는 적합하지 않음(?)
- 스프링2.5의 어노테이션 기반 DI를 위한 선택들
@Autowired : 스프링 어노테이션 syntax, 어노테이션 기반 모델을 사용한 경험으로 입증된 스프링 모델 통합
@Resource : JSR-250 / EJB3 model
- 의존성 결정하기 : @Autowired
생성자/필드/메서드 레벨에 인젝션
파라미터 여러개 가진 메서드도 지원(간결하게..)
기본적으로 autowire by type 실행
autowiring을 좀더 유용하게 함
- @Qualifier 어노테이션
autowiring by type은 너무 많은 후보자를 가질수 있음
qualifier(제한하는 것)를 사용하여 힌트 제공 : 필드/파라미터/커스텀 어노테이션 위에 사용될 수 있음
- name에 의한 의존성 결정 : @Qualifier("myDataSource")
- 어노테이션에 의한 의존성 결정
public class JdbcOrderRepositoryImpl implements OrderRepository {
@Autowired
public void setOrderServices(
@Emea OrderService emea,
@Apac OrderService apac) {
// ...
}
- 어노테이션으로 인젝션 타겟 연결
@Emea
public class EmeaOrderService implements OrderService {
...
}
@Apac
public class ApacOrderService implements OrderService {
...
}
@Qualifier
@Component
public @interface Emea {
}
@Qualifier
@Component
public @interface Apac{
}
- XML로 인젝션 타겟 연결
<bean class="example.EmeaOrderService">
<qualifier type=“example.Emea“/>
<!–
...
EmeaOrderService need not be annotated
-->
</bean>
<bean class="example.ApacOrderService">
<qualifier type=“example.Apac“/>
t h<i!s- -b eiannj e-c-t> any dependencies required by
</bean>
- @Autowired장점 : 간단, 간결, 하지만 여전히 강력한.. , 의존성 주입대상에게 스프링 종속적인 어노테이션을 강요하지 않음
- @Autowired단점 : injectees에게 스프링 종속적임(하지만 스프링에서 런타임 의존성은 없음)
- @Resource : 의존성 주입 포인트 표시, 하나의 컴포넌트에 표시, 스프링이 JNDI 참조를 투명하게 표시할 수 있다고 하더라도 컴포넌트가 JNDI로부터 와야한다고 강요하지 않음
- 장점 : Java EE 5 설정 형식 지원. 이식성 지원가능할수도...
- 단점 : 제한된 힘(@Resource 형식은 스프링 @Autowired 접근처럼 강력하지 않음, 오직 하나의 참조만 결정할 수 있고, qualifiers나 그 외 어노테이션 결정은 지원하지 않음)
JSR-250 라이프사이클 어노테이션
- @PostConstruct : InitializingBean#afterPropertiesSet()과 비슷
- @PreDestroy : DisposableBean#destroy()와 비슷
스프링 종속적이지 않고, 간단하지만 표준화된 중요한 기능
스프링 init-method나 InitializingBean 인터페이스의 위치에 이 어노테이션들을 사용하길 추천함
- @Component
Meta-annotations : 확장성(자바 상속같은..), 다른 어노테이션을 어노테이트할 수 있음
Spring stereotypes : 특정목적으로 클래스 정의할 수 있음. 어플리케이션의 강력한semantic모델 빌드하는데 도움. 스프링-종속적이지 않음. AspectJ pointcuts의 중요한 타겟.
- Out-of-the-box stereotype annotations
@Service : 무상태 서비스 정의
@Repository : DAO같은 레포지토리 정의
@Aspect : AspectJ 애스펙트
@Controller : MVC 콘트롤러
- can define your own annotations....with @Component
- Component Scanning
annotated 클래스들의 클래스패스를 스캔
XML정의 할 필요없음(어노테이션으로 할 수 없는 걸 제외하고..)
- Component Scan Usage
스프링 코어의 context 네임스페이스 사용. 픽업할 패키지 구체화(base-package="")
XML빈설정과 양립할 수 있음
- More advanced component scanning usage
어노테이션에 국한되지 않고 type 이나 다른 체크도 사용할 수 있음
매우 커스터마이저블해서 어노테이션을 사용하지 않고서도 작동한다
- 장점 : 허용하는 한에서 더 구체화시킬 필요없으면 굳이 XML이 필요치 않음. 자동으로 변화가 감지됨. 어노테이션 위주의 인젝션에 굉장히 잘 작동함.
- 단점 : 모든 걸 다 할 수는 없다. 어노테이트될 클래스가 필요하다. 스프링 필터링 메카니즘을 사용하여 너무 과도한 클래스들이 스캔되지 않도록 주의할 필요가 있다. XML설정으로 가치있는 애플리케이션 스트럭쳐 블루프린트를 얻을 수 없다. (Spring IDE가 모든 스프링 컴포넌트 정의를 통합한다해도...)
- 믹스 앤 매치(XML or Annotations)
결국 모두 스프링 메타데이타
스프링 컴포넌트 모델은 독립적인 메타데이타
어느 한 접근이 다른 식의 접근을 배척하지 않음
어느 한 컨텍스트에 다양한 기여를 할 수 있음
- 명명관습
빈클래스의 짧은 이름으로 XML 빈 정의 제공
좀더 복잡한 시나리오에서는, @Component어노테이션에 "name"제공
- 두 방식 복합
절대 헛되지 않아..
어느테이션의 한계에 부딪히면 강력하고 입증된 스프링XML모델을 사용할 수 있다.
(니가 한 걸 똑같이 다시 할 필요없이...)
- Spring MVC annotations
항상 유연한 모델 제공해 왔음
프레임웍의 어느 부분에서의 커스터마이징도 허용하는 확장포인트
HandlerMappings
HandlerAdapters
ViewResolvers
전형적인 활용에 의한 고착화된 상속과 관련된 단점
SimpleFormController와 수많은 템플릿 메서드를 포함한 다른 Base 클래스들
- Anotation-driven Controllers
- MultiActionController 자바5로 진화(form 핸들링 능력을 갖춘...)
- POJO기반 - 그냥 니 클래스 어노테이트해..서블릿컨테이너와 포틀릿 컨테이너에서 작동
- 훌륭한 프로그래밍모델을 제공하는 어노테이션
@Controller
@RequestMapping
@RequestMethod
@RequestParam
@ModelAttribute
@SessionAttribute
@InitBinder
- 개선된 어노테이션 기반 MVC
세션 어트리뷰트, 데이터 바인더 초기화, 폼 lifecycle을 위한 어노테이션
-스프링 포트폴리오(Enterprise Java의 요구사항에 맞춰 점점더 완벽한 솔루션을 제공하기 위해 스프링 프레임웍을 넘어 확장되고 있는...)
Spring Security 2.0
Spring Batch : SpringSource와 Accenture 공동개발
Spring Web Flow
Spring Web Services
Spring Integration
Spring Dynamic Modules for OSGi
- Spring Ecosystem
스프링 에코시스템은 상업적인 프로젝트와 그 외 오픈소스 프로젝트로 확장되고 있음
SpringSource Application Platform
WebLogic Server
WebLogic Event Server
Gigaspaces
SpringSource Tool Suite
SpringSource Advaned Management Suite(AMS)
SpringSource Advanced Pack for Oracle Database
...
- Spring 3.0
Spring MVC와 Spring Web Flow간에 통합된 프로그래밍 모델을 제시하여 웹프로그래밍계 전반적인 요구사항을 핸들할 수 있도록 할 것임
Spring MVC와 Spring Web Services를 통한 포괄적인 REST 지원
@출처 : JavaOne2008 Spring Framework 2.5 : New and Notable (by Rod Johnson)
# by | 2008/09/10 15:12 | 프로그래밍 | 트랙백 | 덧글(0)
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. (Fowler)
Debug only code - comments can lie.
If you have too many special cases, you are doing it wrong.
Get your data structures correct first, and the rest of the program will write itself.
Testing can show the presence of bugs, but not their absence.
The first step in fixing a broken program is getting it to fail repeatedly.
The fastest algorithm can frequently be replaced by one that is almost as fast and much easier to understand.
The cheapest, fastest, and most reliable components of a computer system are those that aren't there.
Good judgement comes from experience, and experience comes from bad judgement.
Don't use the computer to do things that can be done efficiently by hand.
[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.
If you lie to the computer, it will get you.
Inside of every large program is a small program struggling to get out.
출처: http://www.javaranch.com/granny.jsp
# by | 2008/05/15 09:52 | 트랙백 | 덧글(0)
Sun에서 JavaFX를 아주 강력하게 밀고 있지만 아직은 때가 아닌 듯 보였고, RIA 시장에서는 adobe의 Flex가 대세라는 걸 많이 느꼈습니다. Adobe Flex SDK 와 Flex Builder 3(60일 시험판) 다운로드 링크입니다. 관심있으신 분은 한번 써보세요. 여기 클릭(http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email) 뭐.. 그건 그렇고... 자바원 컨퍼런스에 대한 간단한 소개를 하자면.. Sun에서 주최하는 전세계 자바관련 업체와 자바개발자들의 축제입니다. 규모도 엄청나더군요.. 15000명 참가, 세션은 300 여개..
그곳 분위기는 대강 이런 분위기.... 구성은 전체 참가자가 참석하는 General Session, 각 관심분야별로 헤쳐모이는 Technical Session, 손을 더럽히면서 몸으로 느껴보는 Hands-on-lab, 업체 전시회장 Java Pavilion 등으로 구성되어있었습니다.
전 무엇보다 자바의 아버지 James Gosling을 눈앞에서 직접 만나고(아무리 봐도 KFC 할아버지같은 저 푸근한 외모), Effective Java의 저자인 Joshua Bloch 에게 사인받고 (저번주에 발간된 Effective Java 2판 출시기념으로 책구입해서 가져오면 사인을 해주더라구요(얍삽한 상술...)... 돌아다니다가 얼굴보이길래 낼름 책사들고 점심밥먹으려고 폼잡는데 가서 사인 받아왔습니다...ㅎㅎㅎ) Spring 의 아버지 Rod Johnson에게 바로 눈앞에서 강의를 들은게 젤 기억에 남네요.^^ (특이하게도 A를 I 로 발음하는... 그래도 천천히 또박또박 말해줘서 그나마 알아들었습니다.) 자바원에서 자바 기술뿐만 아니라 요즘 대세인 Web2.0 기류에 맞춰 스크립트 언어에 관한 강의가 상당히 많았습니다. JavaScript, Ruby, JRuby, Groovy, Python, Jython 등등... 서점에서 둘러봐도 프로그래밍 랭귀지 섹션에는 스크립트 언어관련 책들이 대부분이더군요. 프레임웍과 관련해서는 가장 유명하고 강력한 프레임웍 Spring 2.5을 비롯해서, Struts2, JSF 2.0, (J)Ruby on rails, Grails, GWT, jMaki 등등이 소개되고 Hands-on-lab형식으로 실습도 진행되었습니다. 전 개인적인 관심으로 'Developing with (J)Ruby on rails' Hands-on-lab세션에 참여했는데 우연찮게 늦게 강의실에 들어온 미국인이 자리가 없어서 맨끝자리에서 조용히 실습하고 있던 제 옆에 앉아서 같은 컴퓨터에서 실습을 하게 되었습니다. 짝프로그래밍을 해본거죠.. 외국인이랑... 실습 따라하다가 에러나면 옆에서 보고있는 사람이 후딱 잡아주고 다른 사람은 코딩하고,, 계속 주고받다보니까 재밌더군요.. 색다른 즐거움이었습니다. 그 미국인, 루비는 한번도 해본적이 없는 순수 자바개발자라고 하던데, 잘 하더군요.. 마지막 끝날 때는 실습한 내용에 대해 저에게 간단한 Wrap-up까지 해주고 사라졌습니다. That's cool~ 이러면서... SOA라는 개념이 나온지 벌써 10 여년이 되어가지만, 아직까지도 SOA는 일반 개발자들에게 멀고먼 딴나라 얘기가 아닌가 하는 개인적인 생각도 해보았습니다. 하지만 향후 발전가능성을 볼땐 분명 투자할만한 가치가 있는 분야가 아닌가 생각해봅니다. 세션들중에 SOA 구현을 위한 구체적인 방안 모색에 관한 세션과 WebService와 RESTful이 무엇인지에 대한 개념설명에 대한 세션이 여럿 있었어요. Apache Tuscany, Restlet 등 SOA프레임웍을 이용한 개발 적용사례 발표도 있었구요. 하지만.. 아직도 SOA는 감이 잘 안 옵니다. 이런....
간단한 소개글은 여기서 마치고, 계속해서 컨퍼런스에서 참석했던 세션들 중 재밌게 들었던 세션들 몇 개 요약해서 올리겠습니다.
* 최근 3년간 자바원컨퍼런스에서 발표됐던 세션과 핸즈온랩 다운받을 수 있는 주소입니다. 참고하세요(http://developers.sun.com/learning/javaoneonline/) 아직 2008년 핸즈온랩만 올라오고 나머지는 없네요. 2007년과 2006년 세션들 다운받아보시고 Hands-on-lab 따라 해보면 최신 트렌드도 알 수 있고, 자바 개발역량 발전에 많은 도움되실거라 생각됩니다. 실습은 아무래도 Sun이 주최한 행사다보니 NetBeans로 실습하면 편하도록 되어있습니다. Netbeans 6.1 다운로드는 여기에서...(http://www.netbeans.org/community/releases/61/) Netbeans 최신버전은 무엇보다도 예전보다 시작속도가 빨라졌고, Javascript 지원, Spring 2.5 프레임웍, Ruby/JRuby, RESTful 지원 등 이클립스 못지않은 기능을 지원합니다. 지금까지 IDE라고 하면 이클립스가 지배적이었지만, 최근들어 슬슬 Netbeans 쪽으로 대세가 기우는 게 아닌가하는 생각도 들었습니다.
남는건 사진 밖에 없다고 생각해서 최대한 많이 찍어오려고 했는데, 정작 제 사진은 달랑 이거 한장뿐입니다.- _-)a |
# by | 2008/05/14 16:43 | Log | 트랙백 | 덧글(0)
1. 장소 : Moscone Center (San Francisco, California)
2. 일시 : '08. 5. 6 ~ 5. 9
3. 참가인원 : 약 15,000명
4. 개요 : 전세계 Java엔지니어 및 관련 업체 관련자들이 참관하는 세계 최대 Java개발자 축제
5. 내용
- General Session : Sun(James Gosling 등), Oracle, AMD, Intel, MotoDev 진행, 컨퍼런스 전체 참가자 참여
- Technical Session : 주로 Sun사의 엔지니어 강연 위주, Capzemini, Google, SpringSource 출신 명엔지니어들의 강연 및 Q&A 형태로 운영
. Java Platform, Standard Edition (Java SE)
. Java Platform, Enterprise Edition (Java EE)
. Java Platform, Micro Edition (Java ME)
. Desktop
. Next Generation Web
. SOA and Enterprise Integration
. Tools and Scripting Languages
. Cool Stuff
. Open Source
. Consumer Technologies
. Rich Media and Content
- BOF(Birds-of-a-feather) : 테크니컬 세션과 비슷하지만 조금더 심도있는 주제로 현장의 목소리 청취에 비중을 둠. 동일한 관심주제를 가진 참여자들의 활발한 의견 교환
- Hands-on-lab : 직접 손을 더럽히면서(?) 최신 기술을 실습해보는 시간
- Java Pavilion : 자바 관련 제품 및 솔루션 전시회, 국내 업체중 삼성전자 정보통신, 제니퍼, XCE(MS 협력업체) 등 참여
6. 결과
- 자바 코어기술의 open source화(OpenJDK), 올해 릴리즈될 JDK 7.0 관련 추가되는 feature소개, 타 언어의 장점들은 언제든지 끌어안을 수 있다는 인상(closure, late initialization 등)
- Web2.0 관련 Ajax, Agile 구현이라는 시대적 흐름에 따른 스크립트 언어(Javascript, (j)ruby, groovy, jython 등) 언어 소개 : 속도가 느리고 아무나 쉽게 할 수 있는 하급기술로 천시받던 스크립트 언어의 초강세. 대부분의 사례 소개에서 스크립트 언어를 객체지향적으로 구현하고 있었으며 다양한 IDE(Eclipse, Aptana, Netbeans 등)로 코드 생성 자동화 활용. 서점에 진열된 책 중 스크립트 언어 관련 서적이 반 이상 차지
- Sun사의 RIA관련 기술인 JavaFX 소개, Adobe사의 Flex, MS사의 Silverlight에 비해 늦게 출발하여 상대적으로 UI의 유려함이 떨어지지만, 자바를 기반으로 하고 있어 접근성이 쉽고 웹어플리케이션 뿐만 아니라 데스크탑, 모바일 등 다양한 플랫폼에 적용될 수 있는 기술이라는 점에서 향후 RIA 시장의 주도권 경쟁이 더욱 심화될 것으로 보임
- SOA관련 WebService, RESTful 프로젝트 구현사례 및 Lessons learned 소개
- 자동화를 통한 프로세스 개선 : Mylin, Hudson 등 '지속적인 통합(Continuous Integration)'과 관련된 프로세스 자동화 사례 소개. Do more with less 라는 구호가 인상적이었음
7. 참고자료
참여한 테크니컬 세션 pdf파일, Hands-on-lab 소스코드 첨부(http://developers.sun.com/learning/javaoneonline 에서 다운로드 가능)
# by | 2008/05/13 17:48 | Log | 트랙백 | 덧글(0)
# by | 2008/03/14 17:18 | 기억보조 | 트랙백 | 덧글(0)
# by | 2008/02/26 09:45 | Log | 트랙백 | 덧글(0)
◀ 이전 페이지 다음 페이지 ▶