Ext JS - Learning Center

Manual:Component:Extension or Plugin (Korean)

From Learn About the Ext JavaScript Library

Revision as of 02:40, 21 April 2009 by Michellek (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Summary: extension 혹은 plugin을 써야할 때 그 결정을 위한 Ext의 Extension과 Plugin의 관점(사상)
Author: Jozef Sakalos, aka Saki (번역 : Rhio.Kim)
Published: April 28, 2008
Ext Version: 2.x
Languages: en.png English cn.png Chinese kr.png Korean

br.png Portuguese

Contents

서문

이미 많은 Ext 사용자들이 Ext 핵심 라이브러리에 없는 사용자 기능을 클래스에 추가하는 것에 대해서 많은 생각을 했을 것이라 생각하고 있다. 그리고 다른 사람들이 그런 기능에 흥미를 갖을 수 있게 몇몇의 것들은 그들의 어플리케이션에서 명확하게 해놓거나 그렇지 않게 해놓은 것도 있다.

OK,우리는 아이디어가 있고 새로운 코드가 무엇을 해야 하는 지도 알고 심지어 우리는 그것을 어떻게 사용해야 하는지도 알지만 우리는 이걸 어떻게 써야 할까? 확장(Extension)을 위해 써야할까? 플러그인(Plugin)을 위해 써야할까?


확장(Extensions) 과 플러그인(Plugins)

사실 우리들은 그것들에 대한 이야기를 함께 하고 있고 보통 어느 하나를 이용하기 위해서 그것은 몇몇의 것들을 꼭 가져야만 해서 결정하는게 쉽지 않을 수도 있습니다. 사실, 확장(Extension)이나 플러그인(Plugin)들은 기존 라이브러리에 약간의 기능을 추가하거나 수정한다.

확장(Extension) 그리고 플러그인(Plugin) 모두 독립적으로 존재할 수는 없다; 그것들은 component 혹은 class를 포함하거나 확장 혹은 플러그인 시켜야 한다.


확장(Extension)

Extension(Ext world에서)은 사실 파생 클래스이다. 상상해보세요. 몇 개의 일반적인 메소드를 갖는 기본 클래스에 우리가 원하는 것을 지정된 메소드를 추가하는 것을요. 그렇게 라이브러리 혹은 언어의 상속 프레임 워크를 사용하는 것으로 기본 클래스의 메소드와 새로이 추가될 메소드 둘 모두를 포함하는 새로운 클래스가 생성된다.

우리는 기존 Ext 클래스를 선택해 Ext.extend 함수를 사용하여 그것을 확장하고 그 결과로 새로운 이름을 갖는 새로운 클래스를 만든다.

우리는 기존 Ext 클래스를 선택해 Ext.extend 함수를 사용하여 그것을 확장하고 그 결과로 새로운 이름을 갖는 새로운 클래스를 만든다.


MyExtension = Ext.extend(Ext.Panel, {/* 새로운 프로퍼티와 메소드들을 갖는 객체 */});

나중에 우리가 필요한 객체 :

var myExtension = new MyExtension({/* 선택적인 설정 오브젝트 */});


플러그인(Plugin)

반면에,플러그 인은 기존 어떤 Ext 클래스도 필요로 하지 않는다. 비록 플러그 인(Plugins)들은 자주 Ext.util.Observable를 확장하지만 필수는 아니다; 그것들은 처음부터 쓸 수 있습니다. 물론, 목적 없이 플러그 인(Plugins)쓰는 것은 말도 안 되는 것이다. 그래서 항상 기존의 Ext 클래스 패널, 폼, 그리드, 데이터 뷰, 기타 등을 위해서 플러그 인을 항상 사용한다.

플러그 인을 생성 예제.

MyPlugin = function() {/* code */};

그리고 우리는 이 방식으로 플러그 인을 사용:

var myPanel = new Ext.Panel({
     plugins: [new MyPlugin({/* 선택적인 config 오브젝트 */})]
    ,// rest of myPanel configuration
});


확장(Extension) 혹은 플러그인(Plugin)?

그것은 의존한다. 여러분은 종종 확장(Extension) 혹은 플러그 인(Plugins)을 같은 결과로 얻을 수 있다. 프로그래머는 단지 플러그 인(Plugin)을 더 좋아해서 플러그 인(Plugins)을 쓰거나 혹은 확장(Extension)을 더 좋아해서 확장(Extension)을 쓴다. 플러그 인들을 작은것들을 추가하기 위하여 더 적합하나 좀더 복잡한 기능을 추가하기 위해서는 확장(Extension)을 사용, 플러그 인(Plugins)들은 components로 부터 쉽게 제거될 수 있으며 확장(Extension)은 보통 어플리케이션에 연결되어 진다.


요약

  • 확장새로운 이름을 가진 새로운 클래스이다. 기존의 기초 클래스에 기초를 두게 되고, 정의 할 때 만들어진다.확장(Extension)은 작동하기 위해서 다른 모든 클래스처럼 인스턴스가 생성되어야 한다.
  • 플러그 인(Plugin)은 기존의 클래스로 움직이고, 쉽게 삭제되고, 정의하는 동안에 정의되고, 기초 클래스 초기화 동안 초기화된다.

  • 추가로 읽어볼 글