Download presentation
Presentation is loading. Please wait.
1
고급자바프로그래밍 (Advanced Java Programming)
강원대학교 컴퓨터학부 2012년 가을학기 담당교수 정충교
2
Java 1995 발표, Sun Microsystems "write once, run anywhere" (WORA)
James Gosling 등 J2SE, J2EE. J2ME Java Community Process (JCP) 2007 GNU General Public License 2010 Oracle Corporations 10M users, 1G machines
3
Java simple, object-oriented and familiar robust and secure
architecture-neutral and portable high performance interpreted, threaded, and dynamic
4
Java JDK 1.0 (January 23, 1996) JDK 1.1 (February 19, 1997)
J2SE 1.2 (December 8, 1998) J2SE 1.3 (May 8, 2000) J2SE 1.4 (February 6, 2002) J2SE 5.0 (September 30, 2004) Java SE 6 (December 11, 2006) Java SE 7 (July 28, 2011)
5
Object-Oriented Programming
Dynamic Encapsulation Polymorphism Inheritance
6
Spring 개발이 즐겁다! software 생산성과 품질 객체지향 프로그래밍 원칙 충실 비침투적 구조 (POJO)
Plain Old Java Object
7
객체지향 프로그래밍 원칙 충실 유연성 재활용성 보안성
수정 없이도 여러 상황, 변하는 상황에 대처 (다형성, 동적바인딩에 의해 구현됨) 재활용성 클래스를 변경 없이 재활용 추가 기능, 기능 수정 필요시 기존 클래스 변경 없이 클래스 확장을 통해 대처 보안성 캡슐화를 통해 필요한 정보만을 외부에 노출
8
용어 OCP (Open/Closed Principle) 수정에는 닫혀 있고 확장에는 열려있다.
9
프레임워크 (framework) 특징 (library와 비교할 때)
IoC (inversion of control) 전체적인 프로그램 실행이 플레임워크에 의해 제어됨 기본동작 (default behavior) 별다른 추가 작업 없이도 쓸만한 기본 동작을 제공 확장성 (extensibility) 사용자에 의한 선택적 재정의 혹은 기능 추가에 의해 변경 불가 일반적으로 사용자에 의한 확장은 허용하지만 프레임워크 자체의 변경은 불가함 ( 발췌)
10
컨테이너 - 컴포넌트 구조 (container - component)
개방형 구조 사용자는 제 3자가 작성한 컴포넌트를 추가함으로써 애플리케이션의 기능을 확장할 수 있음 컴포넌트를 추가할 때 아무런 프로그램 변경도 필요하지 않음 사용자는 시장에 있는 많은 컴포넌트들 중에서 골라 사용할 수 있다. ( 요약)
11
컴포넌트 (component) 컴포넌트 (plugin이라고 불리기도 함)
어떤 인터페이스를 구현하고 있는, 서로 협력하는 객체들 디폴트 생성자, getter/setter를 갖는 프로퍼티
12
컨테이너 (container) 시스템 기능을 수행함 컴포넌트들의 라이프사이클 관리 컴포넌트들에게 기반 서비스를 제공
create, suspend, resume, destroy 컴포넌트들에게 기반 서비스를 제공 communication persistence security execution environment (a VM for example) synchronization white and yellow page directories, etc.
13
컨테이너 예 Browsers containing Applets Web Containers containing Sevelets
EJB Containers containing EJB Beans The Eclipse platform containing plugins The Visual Basic IDE containing VB controls The PC Motherboard and PCI or ISA expansion cards
14
Enterprise Application
multiuser, mission critical transaction support, security, distributed computing EJB --> light-weight frameworks
15
스프링 Lightweight and minimally invasive development with POJOs (Plain Old Java Objects) Loose coupling through dependency injection and interface orientation Declarative programming through aspects and common conventions Boilerplate reduction through aspects and templates
16
끝
Similar presentations