SpringOne 2007 을통해서본 Spring 의미래 이일민 tobyilee@gmail.com http://toby.epril.com www.springframework.co.kr
스프링을만드는사람들 스프링사용자 스프링커뮤니티멤버 스프링개발자 & 기여자 Interface21
Interface21 Rod Johnson에의해서시작 스프링핵심개발자들의지속적인참여 스프링개발, 컨설팅, 교육, 벤더협력 최근 100M 펀딩 성공한오픈소스비즈니스모델
펀딩그이후 풀타임개발자의확대 Core Spring: 1FTE -> 3FTE Spring Web: 1FTE -> 5FTE Spring.NET: 0FTE -> 1FTE Inteface21 의적극적인마케팅및관리 비기술직원의대거영입비기술직원의대거영입 브랜치 HQ: 실리콘벨리 개발본부 : 영국, 웹 : 플로리다, 툴 : 밴쿠버 지사 : 독일, 네덜란드, 영국, 미국, 호주
스프링의지향점 스프링은이미사실상의표준 (de facto) 엔터프라이즈자바개발모델 엔터프라이즈개발의어떤환경에서도최선의선택 다양한영역의끊임없는기술혁신 사용자와고객의요구의빠른대응 Simple and powerful! 불피요한복잡함감소 품질에대한뛰어난명성을유지
스프링의현황 Server-side Java Site: Alexa Rankings 1. The Server Side 2. The Jakarata Apache Project 3. Spring Framework 4. Apache Tomcat 5. OnJava 가장빠르게증가하고있는 Job Requiremnent
스프링에대한평가 Forrester, Health of Open Source Users perceive Spring to be of very high quality Chris Chedgey, Headway Software Best structured code-base in the world! Best structured code base in the world! Spring s structure is almost perfect
스프링생태계 The Eclipse Effect 하나의주도적인솔루션을바탕으로빠르게혁신적이고, 경쟁적인기술들이발전하는효과 The Spring Effect! 확장성이뛰어난아키텍처 Spring Extension Points 사용자를위한손쉬운확장포인트 Spring 2.0 bean/namespaces
BEA 스프링을주요제품의코어로사용 엔드유저에게스프링프로그래밍모델을적용 / 권장 WebLogic 10 스프링기반 모든 EJB, Java EE Component는 Spring Bean!
BEA Peter Cooper-Ellis, EVP Products at BEA 최적의오픈소스제품인스프링의기술을최고의상용기술인웹로직과결합해서가장빠르고혁신적으로 WLS10 을출시할수있었다 스프링은차세대엔터프라이즈자바애플리케이션을가장심플하게만들수있는능력을가지고있다.
WebLogic Event Server Event Driven Architecture기반의리얼타임이벤트처리서버 SOA XTP(Extreme Transaction Processing) 대형스프리밍이벤트 / CEP Enigne 과통합 sub-millisecond 응답시간 대형부하에서도안정적인응답보장 Spring in WLES POJO Business Logic via Spring Spring namespace를이용한 Lightweight Assembly Spring-OSGi기반의 service wiring
Oracle Oracle Fusion Middleware 는 Spring 기반으로개발 Oracle SVP: Oracle의차세대미들웨어에스프링사용 JavaOne2007: Spring Developer Kit for OC4J Spring과 Oracle Coherence의통합 이미많은애플리케이션에서 Spring 사용중 Oracle Develop Depot
IBM I21 과 IBM 의협력을통해서 WebSphere AS 의인증을수행 Thorough Process g Testing on the many platforms WAS supports Resolution of all known issues Resolution of all known issues Ongoing process to identify value adds
Spring 2.1 Platform Java 6 Support Java EE 5 Support WebSphere Integration Spring & OSGi Configuration Support for Configuration Annotations Context Configuration Namespace Enhanced AspectJ Support JMS Configuration Namespace
Spring 2.1 Platform Java 6(JDK 1.6) 지원 최초의 Java6를지원하는주류프레임워크 Java EE 5 JEE5환경과명시적으로통합된프레임워크 OSGi 지원 최초의 OSGi 를지원하는주류프레임워크
Java6 지원 JDK 1.6 의명시적인지원 JDK1.4, 1.5 와호환 JDK 1.3 은지원중지 (EOL) JDK 1.6 의새로운 API 지원 JDBC 4.0 JMX MXBeans JDK ServiceLoader API
JavaEE 5 지원 Java EE5 지원 JEE1.3, 1.4 호환 Servlet 2.5, JSP 2.1, JSF 1.2 Unified expression language JSR-250 어노테이션사용 JSR-250 어노테이션사용 JTA 1.1, JavaMail 1.4
EJB 3 와 JPA EJB 3.0 Session Beans 연결 <jee:jndi-lookup> JPA - Spring 2.0 부터지원 Embedded EntityManagerFactory 또는 JEE Server 가지원하는 JPA 기능이용 EntityManagerFactory 를 JNDI 로부터가져옴
J2EE 1.4 이상에서 RAR 배치지원 ApplicationContext 를 RAR 형태로배치가능 JEE 1.4(JCA 1.5) RAR META-INF/ra.xml 을 applicationcontext.xml로연동하게하면됨 Web기반이아닌메시지, 스케줄처리등을위한서비스형태로배포가능 JTA/JMX 등의기능을이용할수있음
J2EE 1.4+: WebSphere 연동 WebSphere 전용트랜잭션관리 API 지원 Transaction suspension on WS 6.0, 6.1 WebSphereUowTransactionManager JtaTransactionManager 를대체할수있음
OSGi 도입 Open Services Gateway initiative 동적인모듈시스템 Bundle 스프링의애플리케이션을번들형태로손쉽게 만들수있음 번들당하나의 ApplicationContext Spring 기반의미들웨어서비스가능 스프링애플리케이션을 JEE, OSGi에손쉽게배치가능 OSGi: bundle jars, service registry J2EE: WAR/EAR, JNDI
Annotations ti JSR-250 Common Annotations Autowiring Annotations 어노테이션기반의자동와이어링 XML 설정의최소화 어노테이션을가진컴포넌트의자동인식 Classpath 를통한스캔 XML 이전혀없는스프링설정가능
JSR-250 Common Annotations ti @PostConstruct, @PreDestory @Resource named bean 의삽입 field나 setter에적용가능 Servlet 2.5, JSF 1.2 기반의빈과같은방식의어노테이션적용
Autowiring i Annotation ti @Autowired 타입기반의 autowiring fields, config methods, constructors 장점 autowiring by name 은너무단순하고네이밍룰에제약이있다 autowiring by type 은너무복잡하고느리다 명시적으로지정된항목만 autowiring by type 적용.
Context t XML Schema namespace <context:property-placeholder> <context:annotation-config> JSR-250 annotation, @autowired, @required <context:component-scan> annotated t bean class 의자동인식
Enhanced AspectJ 지원 bean(name) 방식의포인트컷추가 이름을통한 bean 선택기능 BeanNameAutoProxyCreator 와유사 Spring의 LTW를이용한 AspectJ LTW 지원 다양한플랫폼지원
@Configurable Spring 2.0 에서소개 ApplicationContext 에의한 lifecycle 관리대상지정 3 rd -patry framework 에의해서관리되는오브젝트도지원 Spring21 2.1 Spring의 LTW지원 @Autowire, @Resource, @PostConstruct t t 연동
AspectJ 를이용한 @Transactional LTW 를이용해서 TX 의처리가능
JCA Message Endpoint 관리 JCA 1.5 지원 JCA ResourceAdapter 지원 JCA Message endpoint 지원 JMS message listeners CCI message listeners TaskExecutor 추상화를통한설정지원
그외추가기능 JUnit 4 지원 Rhino / JSR-223 지원 JSP form tags 기능향상 그밖에여러가지...