본문 바로가기

Documents/Example

Vulcan Project로 Application 제작하기(2)-간단한 컴포넌트와 함께 사용하기

이전 예제로부터 MenuBar를 추가해 보도록 하겠습니다. MenuBar의 데이터는 외부 XML 파일로 작성하여 관리하도록 하겠습니다. 이 예제를 통하여 외부 XML 데이터를 사용하는 방법을 알 수 있습니다. 본 예제는 다운로드 받으실 수 있습니다.


Stap 1 : 컴포넌트 추가

Main.mxml

MenuBar 컴포넌트를 화면에 추가 합니다.


Stap 2 : 인스턴스 등록

NewInstanceGroup.as

이전 글에서 설명했듯이 인스턴스 참조는 InstanceGroup클래스를 이용합니다. 인스턴스를 참조할 수 있도록 menuToolBar를 추가합니다.


Stap 3 : Mediator 생성

MVC 컨셉에 따라 MenuBar에 대한 로직은 Mediator에 작성합니다.

기본 템플릿

MenuToolBarMED.as

다음 코드는 Vulcan Project의 거의 모든 Mediator(또는 Proxy)클래스를 작성하는 템플릿과 같습니다.

기능 구현

MenuToolBarMED.as

Mediator의 사용자 코드는 onRegister메서드에서 시작해서 onRemove 메서드로 끝이 납니다. 코드를 삽입해 보겠습니다. onRegister 메서드에서 MenuToolBarDATA 클래스를 이용하여 외부 XML 데이터에 접근하고 있습니다.


Stap 4 : Proxy 생성

데이터 관리를 위해 Proxy를 생성합니다.

XML 로드 가능한 Proxy 생성

XmlLoaderBase클래스는 XML을 로드할 수 있는 Proxy클래스 입니다.

MenuToolBarDATA.as


Stap 5 : Mediator, Proxy 등록

XML 데이터 로드 경로 설정

NewSubSystemBuilder.as

SubSystemBuilder에 의해 MVC가 구성될때 필요한 XML 데이터를 로드하여 Proxy로 저장하는 방법입니다. XML 파일 경로를 Proxy클래스와 연결시켜주고 있습니다.

위와 같이 XmlLoaderBase클래스를 이용해 Proxy를 생성하는 경우는 모든 Mediator와 다른 일반 Proxy가 생성되기 전에 XML 파일의 로드가 완료되므로 데이터가 이미 초기화 되었음이 보장되는 잇점이 있습니다. 하지만 과도한 데이터를 초기에 로드 하는것도 병목현상을 발생시킬 수 있으므로 적절히 배분하는 것이 좋겠죠. 굳이 초기화 과정에서 데이터를 로드할 필요가 없다면 Mediator의 onRegister 메서드에서 로드과정을 기술해도 상관없습니다.

Mediator에 인스턴스 설정

NewSubSystemBuilder.as

이어서 Mediator 역시 등록해 줍니다. InstanceGroup에 등록했던 컴포넌트 인스턴스를 Mediator에 설정해 줍니다.


Stap 6 : 설정 완료

XML 파일 설정

XML 파일의 내용은 MenuBar 컴포넌트의 사용법에 따라 다음과 같이 구성했습니다. data Attribute은 나중에 command API를 호출할때 인자로 사용할 수 있습니다.

menuToolBar.xml

이제야 MenuBar 컴포넌트를 사용할 준비가 완료 되었습니다. 대부분의 컴포넌트가 화면에 추가될때 이와같이 손이 많이가는 설정작업이 필요합니다. framework을 사용하는 이유중 하나는 기능 확장에 따른 유지 보수와 코드 관리에 효율적으로 대처하기 위해서 입니다. 제작물의 요구사항이 보다 넓고 방대해 질수록 제작시에 들어가는 이런 수고가 나중에 기능추가, 버그 수정시 큰 힘을 발휘하게 됩니다. 프로젝트에 framework을 적용할지 여부는 이런 사정을 검토한 후 판단할 문제입니다.


Stap 7 : Application 테스트

F11을 눌러 작성된 코드를 확인합니다.