백기선 WHITESHIP2000@GMAIL.COM Springing into action 백기선 WHITESHIP2000@GMAIL.COM.

Slides:



Advertisements
Similar presentations
UX, RIA, 그리고 … Silverlight 공도소프트
Advertisements

작성자조성웅 작성일자 기본환경 1. Java : Eclipse : Tomcat : 6.0 이상 4. DB : MySQL File System : DFS 6. Framework - Spring : JPA 및 CXF.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
성공적 취업을 위한 청년취업아카데미 과정 소개 2012 년 4 월 청년취업아카데미 사업 소개 (1) 학부졸업 최소 70% ~100% 취업 최소 70% ~100% 취업 전국 대학의 학부 졸업 후 취업률 약 60% 청년취업아카데미 를 통한 맞춤형 취업교육프로그램.
Crystal Reports .NET ASTech System.
2009년 IT인재개발원 [연수생 모집요강]
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
컴퓨터응용과학부 Java Enterprize(DB) 제 1 주
고급자바프로그래밍 (Advanced Java Programming)
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
Oozie Web API 기능 테스트 이승엽.
백기선 Advanced bean wiring 백기선
1.4 제어의 역전 (Inversion of Control, IoC)
Power Java 제3장 이클립스 사용하기.
최윤정 Java 프로그래밍 클래스 상속 최윤정
JPetStore 분석자료 1.0 Spring framework 작성자 : 김태완.
공개소프트웨어란? “Open Source Software(공개SW)는 저작권자가 소스 코드를 개방하여 소스 코드의 수정, 재 배포가 자유로운 SW로 규정한다 공개소프트웨어는 전세계 개발자 누구나 참여하고 있는 커뮤니티 프로젝트로 개발되며, 브랜드를 달고.
Chapter-2. 개발환경 구축하기.
Chapter 01 : Java EE 개요. chapter 01 : Java EE 개요.
TDD Junit TDD & Spring Framework 참고자료
Introduction to Web Service Computing
Sep Youn-Hee Han Chapter 8. 스프링이란 무엇인가? Sep Youn-Hee Han
1강 01장. 웹과 자바.
Chapter 01 : Java EE 개요. chapter 01 : Java EE 개요.
IOC, DI 2015 Web Service Computing.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
컴퓨터응용과학부 Java Enterprize(DB) 제 13 주
Struts2 를 이용한 SOCAS Homepage
컴퓨터응용과학부 Java Enterprize(DB) 제 12 주
AOP (Aspect Oriented Programming)
6강. DI설정 방법 XML파일을 이용한 DI설정 방법 JAVA를 이용한 DI설정 방법 XML과 JAVA를 같이 사용
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
웹 애플리케이션 개발 프레임워크와 스트러츠 웹 애플리케이션 기술 변천사를 이해한다
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
Wireless Java Programming
Grade Server Team14. Attention Seeker
객체 지향 프로그래밍.
자바 5.0 프로그래밍.
AOP (Aspect Oriented Programing)
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Spring 프레임워크의 이해 2. Spring Introduction.
3. Spring 프레임워크의 IoC 컨테이너 개념
RMI Messenger 지도 : 김정배 교수님 조봉진.
Spring 프레임워크의 이해 1.Architecture.
Spring 프레임워크의 이해 3. Spring IoC 이해 및 활용.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
김 정 석 Web Programming 김 정 석
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
NTAS 소개 (Network Transaction Application Server)
SpringFramework 중간고사 요약 REST by SpringFramework.
컴퓨터응용과학부 Java Enterprize(DB) 제 14 주
웹디자인
Spring DI 이해 및 활용.
자바 5.0 프로그래밍.
Spring Framework 플랫폼개발실 김광욱
백기선 Advising beans 백기선
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
WPF 3D 그래픽 발표자 : 조 현 민.
5.2 트랜잭션 서비스 추상화.
4. Spring 프레임워크의 AOP 개념.
권효중 iBATIS.NET & Spring.NET 권효중
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
Architecture.
Spring Introduction.
JSP Programming with a Workbook
2. 아키텍처 상에서 Spring 프레임워크가 차지하는 위치
Wireless Java Programming
JAVA 프로그래밍 16장 JNLP.
Presentation transcript:

백기선 WHITESHIP2000@GMAIL.COM Springing into action 백기선 WHITESHIP2000@GMAIL.COM

목차 What is Spring? A Spring jump start Understanding dependency injection Applying aspect-oriented programming Summary

What is Spring?

What is Spring Spring is a lightweight dependency injection and aspect-oriented container and framework. Lightweight 2.5Mb Single JAR file Non intrusive Dependency Injection loose coupling

What is Spring Aspect-oriented Container Framework enables cohesive development separation of concern Container it contains and manages the lifecycle and configuration of application objects. Framework configure and compose complex applications from simpler components.

Spring Modules

Spring Modules The Core Container provides the fundamental functionality of the Spring org.springframework.beans.factory.BeanFactory 스프링의 가장 기본이 되는 컨테이너. 스프링 DI를 제공하는 기반 시설. Chapter 2

Spring Modules Application context module context module is what makes it a framework. BeanFactory를 확장하여 다음의 기능들을 추가함. I18N 메시징 이벤트 핸들링 Validation supplies many enterprise services email JNDI EJB와의 연동 templating frameworks(Velocity, FreeMarker)와의 연동

Spring Modules Spring’s AOP module JDBC abstraction and the DAO module serves as the basis for developing your own aspects for your Spring enabled application. AOP Alliance 인터페이스에 기반하였다. AspectJ 지원. Chapter 4 JDBC abstraction and the DAO module 반복 되는 코드를 추상화 시켜서 코드 작성을 간결하고 깔끔하게 할 수 있다. 각 DB 벤더들의 에러 코드를 의미가 있는 에러 메시지로 변환하여 RuntimeException으로 던지는 추상화 계층 제공. Chapter 5

Spring Modules Object-relational mapping (ORM) integration module JDBC를 직접 사용하는 대신 ORM 사용을 선호하는 분들을 위해 만들어둔 추상화 계층. Hibernate, JPA, JDO, iBATIS SQL Maps 지원. Chapter 5 Java Management Extensions (JMX) makes it easy to expose your application’s beans as JMX Mbeans. makes it possible to monitor and reconfigure a running application. Chapter 12

Spring Modules Java EE Connector API (JCA) The Spring MVC framework Java EE Connection API (JCA)는 여러 메인 프레임과 DB를 포함하고 있는 엔터프라이즈 시스템들을 통합하기 위한 표준 API. JDBC 지원 기능과 마찬가지로 JCA 코딩에서 반복되는 부분을 추상화 시키는 형태로 지원. The Spring MVC framework Model, View, Controller(MVC) 패턴은 UI와 애플리케이션 로직을 분리하기 위한 접근 방법 자체 MVC 기능 구현 함. Chapter 14, 15

Spring Modules Spring Portlet MVC Spring’s web module portlet-based applications aggregate several bits of functionality on a single web page. Spring Portlet MVC builds on Spring MVC to provide a set of controllers that support Java’s portlet API. Spring’s web module Spring MVC 와 Spring Portlet MVC를 지원하기 위해 기반이 되는 클래스들. Apache Struts 또는 Java-Server Faces (JSF)와 연동 지원.

Spring Modules Remoting Java Message Service (JMS) 자신의 자바 객체를 remote 객체로 공개할 수 있으며, 외부의 remote 객체를 애플리케이션에 엮어서 마치 local POJO 인 것처럼 사용하기 쉽게 해준다. RMI, Hessian, Burlap, JAX-RPC, Spring의 Http Invoker Chapter 8 Java Message Service (JMS) Remoting에 비해 보다 신뢰성있는 통신이 가능. helps you send messages to JMS message queues and topics. helps message-driven POJOs that are capable of consuming asynchronous messages. Chapter 10

A Spring jump start

A Spring jump start 간단한 getBean() 예제 예제 테스트 코드 작성하기 인터페이스 기반 프로그래밍 spring.jar commons-logging.jar 예제 테스트 코드 작성하기 spring-mock.jar AbstractDependencyInjectionSpringContextTests

Understanding dependency injection

Understanding dependency injection DI means an inversion of responsibility with regard to how an object obtains references to collaborating objects

Dependency 머리 두 개 달린 괴물 해결책 한 쪽 머리 또 다른 머리 인터페이스 기반 코딩 테스트 어려움. 재사용 어려움. 이해하기 어려움. 두더지 잡기 경향이 있음. 또 다른 머리 없으면 동작하지 않음. 해결책 인터페이스 기반 코딩 Dependency Injection Aspect Oriented Programming

Dependency injection in action DI 사용하지 않은 코드 구현. 테스트 하기 어려움. 인터페이스를 사용하여 개선. 개선 해도 문제는 여전히 남아있음. new 필요함. DI 사용하여 코드 개선. new 필요하지 않음. 종속성은 컨테이너가 알아서~ loose coupling

aspect-oriented programming Applying aspect-oriented programming

Introducing AOP programming technique that promotes separation of concerns within a software system. AOP

AOP in action AOP 적용하지 않고 로깅 구현. AOP 사용하여 코드 개선. 중복되는 코드 발생. 종속성 발생. 중복 제거. non intrusive.

Summary

Summary Spring? Dependency Injection? Aspect Oriented Programming?

질문 or 코멘트 이대엽: 재미있었다. 흥미가 생긴다. 김보형: Spring AOP가 재밌었다. 최한수: 편하지만, 실무에 적용하려면 많은 학습이 필요함. 이윤걸: 내용이 조금 어려웠다. IoC, DI에 대한 설명. 테스트 관련 내용은 좀 주제를 벗어났었던 것 같다. 최혜영: 딴 생각을 해서... 쉬는 시간이 있었으면 좋겠다. 이호연: 스트럿츠와 연동해서 사용할 수 있는가..네. 컨테이너와 bean. 양철근: 재미있었다. 그림으로 했었으면 더 좋았겠다. 임춘봉:

감사합니다.