1 / 16

고급자바프로그래밍 (Advanced Java Programming)

고급자바프로그래밍 (Advanced Java Programming). 강원대학교 컴퓨터학부 2012 년 가을학기 담당교수 정충교. 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

Download Presentation

고급자바프로그래밍 (Advanced Java Programming)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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, 1Gmachines

  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) • 사용자에 의한 선택적 재정의 혹은 기능 추가에 의해 • 변경 불가 • 일반적으로 사용자에 의한 확장은 허용하지만 프레임워크 자체의 변경은 불가함 • (http://en.wikipedia.org/wiki/Software_framework 발췌)

  10. 컨테이너 - 컴포넌트 구조(container - component) • 개방형 구조 • 사용자는 제 3자가 작성한 컴포넌트를 추가함으로써 애플리케이션의 기능을 확장할 수 있음 • 컴포넌트를 추가할 때 아무런 프로그램 변경도 필요하지 않음 • 사용자는 시장에 있는 많은 컴포넌트들 중에서 골라 사용할 수 있다. • (http://www.cs.sjsu.edu/~pearce/modules/patterns/enterprise/Container.htm요약)

  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

More Related