4. Spring 프레임워크의 AOP 개념.

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

UX, RIA, 그리고 … Silverlight 공도소프트
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
4. 디자인패턴. 학습목표 디자인패턴의 이해  크리스토퍼 알렉산더  Each pattern describes a problem which occurs over and over again in our environment, and then describes.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
해외전자정보서비스이용교육 EBSCO eBook (NetLibrary)
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Security Solutions (S/W) - Fortify
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
CHAP 22. 블루투스.
최윤정 Java 프로그래밍 클래스 상속 최윤정
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
Web Service Computing and Practice_
제 14장 Multicast & Broadcast
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
Struts2 를 이용한 SOCAS Homepage
10강. AOP(Aspect Oriented Programming)-II
9강. AOP(Aspect Oriented Programming)-I
AOP (Aspect Oriented Programming)
Visual Basic .NET 처음 사용하기.
FTP 프로그램 채계화 박재은 박수민.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
D / K / I / T / E / C / H / N / O / L / O / G / Y
KHS JDBC Programming 4 KHS
10장. 예외처리.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
CHAP 12. 리소스와 보안.
(인터페이스 상세 이용 방법 및 다운로드 (대출모드) 안내)
7장 인터페이스와 추상 클래스.
Method & library.
AOP (Aspect Oriented Programing)
CHAP 13. 방명록 만들기 실습.
27장. 모듈화 프로그래밍.
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
DSU Nanumi FTP - Network Programming 염대영
전자정부 표준프레임워크 호환성 가이드 전자정부 표준프레임워크 사업단 실행환경 개발팀.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Spring 프레임워크의 이해 2. Spring Introduction.
3. Spring 프레임워크의 IoC 컨테이너 개념
Spring 프레임워크의 이해 1.Architecture.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Spring 프레임워크의 이해 3. Spring IoC 이해 및 활용.
Lesson 2. 기본 데이터형.
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
IOCP 2005/11/10.
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
Power Java 제11장 상속.
백기선 Advising beans 백기선
데이터마이닝, 빅데이터, 데이터과학: 정의 데이터마이닝(data mining)
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
판매 교육 발표자: [이름].
CHAP 21. 전화, SMS, 주소록.
STS 에서 웹 서버 설치 방법.
뇌를 자극하는 Solaris bible.
Introduction to JSP & Servlet
[리플렛 구성 내용] 담당자: 이범희 연락처: 메일: [필수항목] 기업로고: 첨부파일 참고
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
Spring Introduction.
학습내용 프로토콜 계층화 OSI 모델의 용어 및 기능 개체 서비스 접근점 (N) 프로토콜과 (N) 서비스 서비스 프리미티브
08. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
.Net FrameWork for Web2.0 한석수
KSP 메신저 김광민 서정건 박윤옥.
CHAP 15. 데이터 스토리지.
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
프로젝트 결과 발표 네트워크정보통신과 강동성 이현미.
Wireless Java Programming
JAVA 프로그래밍 16장 JNLP.
Presentation transcript:

4. Spring 프레임워크의 AOP 개념

Spring Framework - AOP 계정 관리를 담당하고 있는 AccountManager라는 다음과 같은 인터페이스가 있다고 생각하자. 고객의 요구사항은 AccountManager 내에서 Exception이 발생할 때마다 담당자에게 이메일을 발송하기를 바라고 있다. 이 같은 요구사항을 충족시키기 위한 일반적인 개발 방법은 다음과 같다. 예제를 이용한 Spring AOP : http://wiki.javajigi.net/pages/viewpage.action?pageId=283 문서 참고 AccountManagerImpl 문제점 Exception을 try/catch하는 부분과 Exception을 catch한 다음 메일을 보내는 중복코드가 발생한다. 고객이 메일을 보내는 대신 파일 Logging을 원하거나 위 기능에 파일 Logging을 추가할 경우 위 예제와 같이 Exception을 추가한 모든 소스를 찾아 수정해 주어야 한다.

(AccountManagerCore) Spring Framework - AOP AccountManagerImpl 해결 방법 중복이 발생하는 부분을 제외한 핵심적인 비즈니스 로직만을 구현하는 부분이 필요하다. Exception이 발생했을 때 메일을 보내는 로직만을 가지는 부분이 필요하다. 비즈니스 로직을 담당하는 클래스의 메서드 호출시 발생하는 Exception에만 메일을 보내도록 하기 위해서는 특정한 패턴을 가지는 패턴 정보가 필요하다. 위 세가지 정보를 하나로 묶어 본래 AccountManagerImpl가 처리할 수 있는 기능을 수행할 수 있도록 해야한다. 핵심 비즈니스 로직 구현부 (AccountManagerCore) Exception 발생시 메일 전송이 필요한 패턴을 명시 (Pattern) AccountManagerImpl 메일을 전송하는 구현부 (SendEmail)

(AccountManagerCore) Spring Framework - AOP AOP에서는 이와 같은 역할을 하는 녀석을 Point-Cut라고 한다. 핵심 비즈니스 로직 구현부 (AccountManagerCore) Exception 발생시 메일 전송이 필요한 패턴을 명시 (Pattern) AccountManagerImpl 메일을 전송하는 구현부 (SendEmail) Weaving한다. AOP에서는 이와 같은 역할을 하는 녀석을 Advice라고 한다.

Spring Framework - AOP OOP 기반으로 애플리케이션을 개발할 경우 하나의 클래스에 다양한 성격의 Aspect(또는 Concerns)가 존재한다. 한 곳에 너무도 많은 Aspect가 섞여서 개발됨으로 인해 중복된 코드 발생, 복잡도 증가, 유지보수의 어려움이 발생 각각의 Aspect를 분리하기 위한 시도

Spring Framework - AOP OOP가 가지고 있는 한계를 인식하고 Aspect(Concerns)을 분리하기 위한 시도 OOP 기반위에서 Aspect를 분리한 다음 핵심 비즈니스 로직과 Aspect를 결합함으로서 이 같은 한계를 극복하려고 함.

Spring Framework - AOP 분리된 Aspect는 Weaving이라는 과정을 거쳐서 본래 구현하고자 했던 기능을 구현하도록 가능하게 함. 이처럼 Aspect로 분리한다음 Weaving 작업이 가능하도록 지원하는 다양한 프레임워크가 등장(Spring AOP, Jboss AOP, AspectJ) AOP를 최종적으로 정의한다면 하나의 모듈속에 얼키설키 섞여 있는 Aspect들을 분리하여 구현한 다음 이 구현물을 하나로 엮어줌으로서 근본적으로 우리들이 구현하고자 하는 기능 구현을 가능하도록 하는 개발 방법

Spring Framework - AOP 용어정리 오픈 소스 스터디 Spring 1차 : http://wiki.javajigi.net/pages/viewpage.action?pageId=280 문서의 Spring AOP 파트에서 AOP 용어정리 부분 참고

Spring Framework - AOP 실습 기본적인 Spring AOP 기능 Advanced Spring AOP 기능 Spring AOP에서 제공하는 Advice들에 관한 예제 : http://wiki.javajigi.net/pages/viewpage.action?pageId=1062 Spring AOP에서 제공하는 Advisors와 Pointcuts : http://wiki.javajigi.net/pages/viewpage.action?pageId=1078 JDK Dynamic Proxy와 CGLIB Proxy에 대한 이해 : http://wiki.javajigi.net/pages/viewpage.action?pageId=1065 Advanced Spring AOP 기능 Introduction Advice 시작하기 : http://wiki.javajigi.net/pages/viewpage.action?pageId=1084 AOP를 Bean Definition에서 선언적으로 사용하기 : http://wiki.javajigi.net/pages/viewpage.action?pageId=1080 Automatic Proxying 사용 예제 : http://wiki.javajigi.net/pages/viewpage.action?pageId=1075 Spring 프레임워크와 AspectJ의 통합 : http://wiki.javajigi.net/pages/viewpage.action?pageId=1081

Spring Framework - AOP 실습 Spring 프레임워크 개발 전략

Spring Framework - AOP 온라인 문서 도서 Aspect-Oriented Programming in Java : http://wiki.javajigi.net/pages/viewpage.action?pageId=282 I want my AOP!, Part 1 : http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect_p.html 도서 AspectJ in action : http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200410260001 Pro Spring : http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200502280029 Java Development with the Spring Framework : http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200507040005