Web Application을 구성하는 패턴과 Spring ROO의 사례

Similar documents
Web Application을 구성하는 패턴과 Spring ROO의 사례

Spring Boot

No Slide Title

슬라이드 1

슬라이드 1

Microsoft Word - 조병호

[Brochure] KOR_TunA

Microsoft PowerPoint - JCO2007_Spring2.0_발표자료_Rev-A.ppt [호환 모드]

Portal_9iAS.ppt [읽기 전용]

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

JavaGeneralProgramming.PDF

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Intro to Servlet, EJB, JSP, WS

<4D F736F F D205B4354BDC9C3FEB8AEC6F7C6AE5D3131C8A35FC5ACB6F3BFECB5E520C4C4C7BBC6C320B1E2BCFA20B5BFC7E2>

Corporate PPT Template

슬라이드 1

2

(Microsoft PowerPoint - Spring 3.1\277\241\274\255 Ehcache \310\260\277\353 \300\374\267\253.pptx)

초보자를 위한 분산 캐시 활용 전략

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Slide 1

반복적인 작업이 싫은 안드로이드 개발자에게


160322_ADOP 상품 소개서_1.0

REDIS 이해와 활용

파워포인트 템플릿

( )부록

J2EE Concepts

Spring

Model Investor MANDO Portal Site People Customer BIS Supplier C R M PLM ERP MES HRIS S C M KMS Web -Based

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Ubiqutious Pubilc Access Reference Model

Interstage4 설치가이드

Data Industry White Paper

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx

신림프로그래머_클린코드.key

어댑터뷰

[Brochure] KOR_LENA WAS_

클라우드컴퓨팅확산에따른국내경제시사점 클라우드컴퓨팅확산에따른국내경제시사점 * 1) IT,,,, Salesforce.com SaaS (, ), PaaS ( ), IaaS (, IT ), IT, SW ICT, ICT IT ICT,, ICT, *, (TEL)

Interstage5 SOAP서비스 설정 가이드

PowerPoint 프레젠테이션

KYO_SCCD.PDF

서현수

교육2 ? 그림

무제-1

Spring Data JPA Many To Many 양방향 관계 예제

TTA Journal No.157_서체변경.indd

歯Writing_Enterprise_Applications_2_JunoYoon.PDF

J2EE & Web Services iSeminar

PowerPoint 프레젠테이션

PowerPoint Presentation

2009방송통신산업동향.hwp

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

PowerPoint 프레젠테이션

제 출 문 환경부장관 귀하 본 보고서를 습마트기기 활용 환경지킴이 및 교육 통합 서비스 개 발 과제의 최종보고서로 제출합니다. 주관연구기관 : 주관연구기관장 : 2015년 10월 주식회사 덕키즈 김 형 준 (주관)연구책임자 : 문종욱 (주관)참여연구원 : 김형준, 문병

PowerPoint 프레젠테이션

Microsoft Word - 김완석.doc

untitled

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

Service-Oriented Architecture Copyright Tmax Soft 2005

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

Spring 정의 2012 년 1 월 31 일화요일 오젂 9:17 1. 개요 1.1. 목적 수많은프로젝트에서프레임워크나아키텍체에대한관심없이대부분의개발을개발자의능력에젂담시키는것이일반적이다. 이는프로젝트의위험요소를증가시킬뿐만아니라개발완료후유지보수비용을증가시킴으로써추가적인비

NoSQL

Ç¥Áö

PowerPoint 프레젠테이션

슬라이드 1

Windows Live Hotmail Custom Domains Korea

Apache Ivy

기업들의 SNS마케팅 전략 사례연구

Egretia_White_Paper_KR_V1.1.pages

JVM 메모리구조

슬라이드 1


chapter1,2.doc

4? [The Fourth Industrial Revolution] IT :,,,. : (AI), ,, 2, 4 3, : 4 3.

지난 10월 6일과 12일

Facebook API

Multi Channel Analysis. Multi Channel Analytics :!! - (Ad network ) Report! -! -!. Valuepotion Multi Channel Analytics! (1) Install! (2) 3 (4 ~ 6 Page

I I-1 I-2 I-3 I-4 I-5 I-6 GIS II II-1 II-2 II-3 III III-1 III-2 III-3 III-4 III-5 III-6 IV GIS IV-1 IV-2 (Complement) IV-3 IV-4 V References * 2012.

<283129C7CFBCBAB1D92E687770>


Slide 1

소프트웨어 검증 및 설계

한국의 성공 E-Biz에서 배우자.hwp

Microsoft PowerPoint - 04-UDP Programming.ppt

2Q SWG Teleweb Business Plan & 1Q Recovery Plan April 2, 2003

SK C&C IR Book

슬라이드 1

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

플랫폼을말하다 2

<BCBCBBF3C0BB20B9D9B2D9B4C220C5ACB6F3BFECB5E520C4C4C7BBC6C3C0C720B9CCB7A128BCF6C1A4295F687770>

유니티 변수-함수.key

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

thesis

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

오늘날의 기업들은 24시간 365일 멈추지 않고 돌아간다. 그리고 이러한 기업들을 위해서 업무와 관련 된 중요한 문서들은 언제 어디서라도 항상 접근하여 활용이 가능해야 한다. 끊임없이 변화하는 기업들 의 경쟁 속에서 기업내의 중요 문서의 효율적인 관리와 활용 방안은 이

rmi_박준용_final.PDF

Transcription:

SpringOne2GX 2010 참석후기 정상혁

발표자소개정상혁 NHN 생산성혁싞팀, 기술지원업무 블로그 : http://benelog.egloos.com 위키 : http://benelog.springnote.com SNS : http://me2day.net/benelog 2

목차 1. SpringOne 과 Social Service 2. 주요내용 스프링의다음발걸음 3. 분석 스프링을둘러싼전략들

1. SpringOne 과 Social Service 1.1 행사소개 1.2 TripIt 1.3 Twitter 1.4 Spring Social

1.1 행사소개 SpringOne2GX 2010 Spring과 Groovy를주제로여는컨퍼런스 SpringSource 주최 (Divison of VMWare) Java의주요오픈소스개발주도업체 Spring, Aspect J, Groovy-Grails Tomcat, Apache Httpd의핵심 Commiter 5

1.2 TripIt 참석준비중 Tripit 을알게됨 여행정보관리사이트 6

1.2 TripIt 어쩌다보니사용자가됨 셔틀버스예약사이트에서 tripit.com 연결 가입이귀찮았는데, google 계정사용가능 셔틀버스정보가자동입력 항공편번호만입력 메모용으로숙소젂화번호정보를수동입력 7

1.2 TripIt SNS, Mobile FaceBook, Twitter로여행정보 share 가능 Android App 8

1.3 Twitter #s2gx 태그 컨퍼런스공식사이트에서도 Twitter를프레임으로연결 참석자들간의실시간정보공유 9

1.3 Twitter 나도하나올렸더니 @dr_pompeii 라는사용자가나를 follow 올해의 Spring Award Community Champion 수상자 10

1.4 Spring Social Twitter, Tripit 등을지원하는스프링 API Twitter 에서친구목록가지고오기 TwitterTemplate tw = new Twitter List<String> friends = tw.getfriends( sanghyukjung ); TripIt 에서여행목록가지고오기 TripItTemplate ti = new TripItTemplate(... 인증키...); List<Trip> trips = ti.gettrips(); FaceBookTemplate LinkedInTemplate 11

1.4 Spring Social Spring Mobile Android https://jira.springframework.org/browse/android 12

1.4 Spring Social Social Service와 Spring 자연스럽게사용되고있는 Social Service Spring에서한두줄의코드로바로연결 Spring의지원범위확장에대한예 개발자들이할만한반복적인작업이라면 ~Template 클래스 13

재미로만들어본 NaverTemplate 네이버뉴스에서 미역국 검색하기코드 NaverTemplate naver = new NaverTemplate(API_Key); SearchCondition cond = new SearchCondition(); cond.setquery(" 미역국 "); cond.settarget(searchcondition.category.news); cond.setdisplay(10); cond.setstart(1); Channel searched = naver.search(cond); for(item page : searched.getitems()){ System.out.printf(" 제목 : %s \n", page.gettitle()); System.out.printf(" 주소 : %s \n", page.getlink()); System.out.printf(" 설명 : %s \n", page.getdescription()); System.out.println(); } 14

재미로만들어본 NaverTemplate dev.naver.com 에서키이용등록 15

이미 github 에시작하신분도... Spring-social-korea 16

2. 주요내용 - 스프링의다음발걸음 2.1 Keynote 2.2 Spring 3.1 2.3 Spring과 JavaEE6 2.4 분산캐쉬 2.5 NoSQL 2.6 RabbitMQ 2.7 Spring Roo

2.1 Keynote 핵심가치와제휴관계강조 다음 10년을향해 Portability Productivity Innovation 이미지는 http://www.springone2gx.com 에서 18

2.1 Keynote Portability Enterprise의요구사항을여러실행홖경에서 Tomcat, Jetty 상용 WAS Google App Engine Amazon EC2 (+ Tomcat) VMForce (+Tomcat) 19

2.1 Keynote Productivity 개발지원도구 SpringSource Tool Suite (Eclipse plugin) Grails 지원 Spring insight Monitoring 도구 : 욲영홖경용곧제공 Spring Roo 20

2.1 Keynote Innovation Spring Data : NoSql (Not Only SQL) : Neo4j, Redis, MongoDB, Casandra를더편하게쓰는 API Spring AMQP, RabbitMQ : Messaging Queue Gemfire : Data Grid Spring Payment : 지불 API(Visa / Incept5) Spring Social Spring Mobile CodeToCloud : 이슈관리 + 버젂관리 + CI : 21

2.2 Spring 3.1 기존의일관성을지키며최근경향반영 Cache Abstraction Java 바탕의설정강화 Bean 설정 Profile 개념 c: namespace ConversationMangement 22

2.2 Spring 3.1 Cache Abstraction @Cacheable public Owner loadowner(int id) {... } @Cacheable(condition="name.length<10") public Owner loadowner(string name){... } @CacheEvict public void deleteowner(int id){... } 23

2.2 Spring 3.1 Cache Abstraction Spring Transaction과유사한 Semantics <cache:annotation-driven /> CacheManager SPI 제공 디폴트는 ConcurrentHashMap 기본구현체제공 EhCache, GemFire, Coherence, GigaSpace 80% 정도의젂형적인사용시나리오커버예상 24

2.2 Spring 3.1 Bean profile 홖경변수, web.xml 등을통해프로파일지정 <beans... profile="dev"> <bean>...</bean> </beans> @Service @Profile("dev") class UserService{... } 25

2.2 Spring 3.1 c: namespace p: 와동일한개념이 constructor 에도 <bean class="..." c:age="10/> <bean class="..." c:family-ref="myfamily/> 26

2.2 Spring 3.1 JavaConfig 확장 Custom namespace에도 Java config를쓸수있게 <tx:/>, <context:/>, <util:/>... 하위프로젝트들에서설정간편화영향기대 Spring Batch, Spring Security, Spring Integration 27

2.2 Spring 3.1 출시일정 3.1 M1: 2010년 11월말 3.1 M2: 2011년 1월초? 3.1 RC1 : 2011년 2월말? 3.1 GA : 2011년 3월말? 3.2 : 2011년말경 지금까지로젂례로볼때더욱미루어질듯 28

2.3 Spring과 Java EE6 Synergy or Competition? JavaEE6 서버는 Spring의좋은실행홖경이다 Spring을통해더많은선택을할수있다 예 )JavaEE5 server + Hibernate 3.6으로 JPA2.0 쓰기 Tomcat, Jetty 겹치는부분은 5% 도안된다 DI container부분만은스프링에서양보할수없는부분인듯 29

2.4 분산캐쉬 Teracotta BigMemory 홍보데스크, 스폰서세션 No GC Heap 밖의메모리공간사용 NIO의 direct buffer 사용추정 Java의메모리모델을대체하려는것은아니다 EhCache와사용가능 Serialize, Deserialize Memcached를 Local로쓰는것과유사? 30

2.4 분산캐쉬 Gemfire SpringSource가인수한솔류션 JP morgan등 Critical곳의 reference Data Grid Key-value 저장소 Sql Fabric SQL Cache + Persistence Derby 이용 분산연산기능 Map Reduce도가능 31

2.5 No SQL Spring data project 저장소특성별로등의하위모듈 Datastore Key-Value Redis Datastore Document MongoDB, CouchDB Datastore Graph Neo4j Datastore Column(Planned) Cassandra, HBase 32

2.5 No SQL Spring data project 솔류션을주도하는업체와협업으로짂행 Hadoop도예정 33

2.5 No SQL Spring으로 No SQL을사용하는여러가지방법 GORM GORM for Redis GORM for Gemfire Spring ROO Neo4j Addon 상황에따라 Low-level API와 Warpping API를선택적으로 34

2.6 Rabbit MQ Procotol 바탕의메시징큐 JMS(Java Messaging Server) Active MQ, Open MQ API 기반의메시징큐 Protocol 바탕은비java와의 Integration이에장점 Rabbit MQ는 Erlang으로만들어짐 Multicore에유리할가능성 35

2.7 Spring Roo 더많은지원기술 GWT (Google Web Tools kit) GAE (Google App Engine) Solr 를위한인덱싱 Lucene 바탕의검색서버 Database reverse Engineering 향후 Jdbc, ibatis 지원 36

2.7 Spring Roo Grails 급으로격상시키려의도가보임 API 샘플코드의젂파경로도될수있음 37

3. 분석 스프링을둘러싼전략들 3.1 지난 10년 3.2 오픈소스프레임웍그이후는? 3.3 기술환경변화 3.4 스프링과 PaaS 클라우드 3.5 기술유통창구 38

3.1 지난 10 년 공존 (co-located) 아키텍처 이미지출처 : 월간마이크로소프트웨어 2005 년 5 월,EJB 없는 J2EE 개발과오픈소스의경쟁력 39

3.1 지난 10년공존 (co-located) 아키텍처 EJB 시젃의통념 Web tier와 Business tier의물리적분리 더 Scalable 하다는주장 이미지출처 : 월간마이크로소프트웨어 2005 년 5 월,EJB 없는 J2EE 개발과오픈소스의경쟁력 40

3.1 지난 10년공존 (co-located) 아키텍처 로드존슨의주장 웹시스템에서는 Web-tier와 Business tier가한 machine에있는것이더효율적이고, 더쉽게확장가능하다 비니지스적필요성이있는부분만원격호출 Proxy를 DI해서인터페이스사용 사용하는쪽에서는원격인지아닌지도싞경쓸필요없음 최근 EJB 3.1 light 사실상 Spring과같은모델인스펙 41

3.1 지난 10년스프링프로그래밍모델 Dependency Injection Singleton, Factory 패턴들과 JNDI lookup의역할을한번에 이미보편적인프로그래밍모델 AOP 핵심로직에침범적이지않은인프라성코드 Portable Service Abstraction 예 ) PlatformTransactionManager 42

3.1 지난 10 년 다른영역에서의 Dependency Injection Eclipse 4.0 public class ContactView implements IContactView { @Inject public ContactView(Composite parent) { RoboGuice (Android) class RoboWay extends GuiceActivity { @InjectView(R.id.name) TextView name; @InjectResource(R.string.app_name) String myname; @Inject LocationManager loc; } public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); name.settext( "Hello, " + myname ); } 43

3.2 오픈소스프레임웍그다음은? 비니지스모델을고민하다 회사설립, 벤처캐피탈투자받음 오프소스프레임웍만으로는돈이안된다. Tomcat 주도업체인 Covalent 등인수 컨설팅, 교육이주수입원 2009년 5천3백억에 VMWare에인수 100만원짜리서버 53만대가격 44

3.3 기술환경변화저장소분산, 서비스 Integration Social, 대용량데이터 보다다양한기술이필요하게되었음 저장소분산 분산캐쉬, NoSQL 저장소 Integration Messaging Queue 모니터링도구 많은수의서버를욲영하는홖경 이런상황에맞추어 SpringSource의인수 & 제휴젂략 45

3.4 스프링과 PaaS 클라우드실행홖경에 Portability를제공하는 Layer Middleware 완충지대 WAS에대한요구사항이적음 OS수준의가상화홖경에서는 이미 JVM의 portability가있는데무슨이득이? Tomcat (Tc server) + 관리도구제공젂략 라이센스, 모니터링, 클러스터링등의관리편의성 제약된 JVM + Servlet container Google App Engine GAE에서 JavaEE6 스펙을지원하기를기대하기? 46

3.4 스프링과 PaaS 클라우드 Cloud Portability PaaS는사용자입장에서 Lock-in의 Risk가더큼 Portability 강조 Lock-in 리스크가작다는홍보 초기의사결정의장벽완화 같은이해관계인 PaaS 사업자와협업 47

3.4 스프링과 PaaS 클라우드그렇다면 PaaS 제공자의경쟁력은? 안정성 욲영편의성 모니터링도구 빌드, 배포등의작업편의성 가격정책 규모의경제 + 인프라기술력이경쟁력좌우 구글이태양광발젂소에투자? 48

3.5 기술유통창구인터넷포털과유사하기도 CP(Contents Provider) 데이터를받아서 단일창구, 일관된 UI로제공 CP 업자에게돈이나트래픽제공 49

3.5 기술유통창구기술통합젂파창구 여러바탕기술들을 일관된프로그래밍모델로 DI, AOP, 설정방식등의 Convention 포함 Java EE 표준과도협업관계 표준보다넓은영역, 빠른피드백싸이클 50