많은 기능이 포함되어 있는 플랙스 프로그램을 만들면 가장 문제점이 바로 프로그램 크기 문제이다. ![]() 위 그림을 보자. 왼쪽은 각각의 Application에 같은 Library가 포함되어 있다. 전체적으로 보면 같은 Library가 2개가 포함된 것이므로 Flash Player 입장에서 전체용량은 커진다. 하지만 오른쪽과 같이 이 Library를 RSL로 만들어주고 각각의 Application에서 RSL를 로드해서 사용하는 방법을 쓴다면 Flash Player에서는 전처럼 Library를 중복사용하는 결과에서 벗어나게 되므로 실제로 1개의 Library를 사용하게 되어 그 만큼 용량이 줄어든다. 실무에서 이 RSL을 적용하면 용량문제를 해결하는데 큰 도움이 될 것이다. 이에 관련된 내용은 다행히도 [딴동네 동영상 강좌]를 통해 쉽게 공부해볼 수 있겠다. 딴동네 님의 블로그에 찾아가 RSL을 검색한 뒤 시간되실때 가볍게 공부하길 바란다. 분명 큰 도움이 있을것이다. 2. Module을 만들어 사용하자. 모듈을 만들어 사용하는 방법인데... 여기서 RSL과 무슨 차이인가 이해가 안될 수 있겠다. RSL은 Main Application이 실행되는 시점에서 프로그래머가 다른 설정없이 로드하여 바로 프로그램상에 적용할 수 있다. 중요한 점은 로드 시점을 프로그래머가 조정하는 것이 아니다. RSL은 프로그램 실행하는 시점에 로드 된다. RSL은 여러 Application을 사용하는 과정에서 같은 기능이 반복되는 것을 방지하기 위해 RSL로 만들어 사용한다는 것에 큰 의미가 있는 것이다. 또 RSL을 사용하면 Flash Player가 한번 로드한 RSL을 클라이언트에 캐싱하므로 한번 로드되면 다음에는 다시 로드할 필요가 없다는 것이 큰 장점이다. 하지만 Module은 로드하고 실행하는 시점을 프로그래머가 정할 수 있다. 가령 쇼핑몰을 만든다고 할때 메인페이지, 카테고리, 상품리스트, 상품상세보기, 결제시스템, 게시판 등이 쇼핑몰 프로그램 실행 시점에 전부 로드해야한다면 메모리 낭비일 뿐 아니라 프로그램 실행하는데도 오랜 시간이 걸려 쇼핑몰을 이용하는 고객이 떠나게 하는 결정적인 요소가 될 수 있다. 이러한 문제를 해결하기 위해 각각의 모듈을 제어할 수 있도록 Main Application이 관장하도록 만들고 메인페이지, 카테고리, 상품리스트 등을 전부 모듈화 시켜 만들면 프로그램 크기가 줄어들고 효율적인 메모리를 사용할 수 있으며 프로그램 실행 시간을 단축시킬 수 있다. 모듈화를 해도 중복된 클래스를 사용하는 것 아니냐고 반문할 수 있다. Flex는 컴파일시 중복된 코드를 방지하기 위해 모듈자체만 컴파일하는 Optimize기능이 추가되어 있다. 모듈 자체는 단독으로 실행할 수 없지만 Main Application에서 필요한 자원을 사용할 수 있으므로 중복된 코드 사용을 방지할 수 있다. 물론 이것은 모듈이 Main Application에 종속적이 될 수 있으므로 설계시 적절히 고려해서 사용하면 되겠다. 이처럼 RSL과 Module은 같은 모듈화 프로그래밍 방법이지만 그 쓰임새가 다르다. 그러므로 자신의 프로젝트에 적당한 것을 골라서 사용하면 되겠다. 그럼 Module을 어떻게 만드는가? 또 어떻게 사용하는가? 방법은 간단하다. SWF 형태로 모듈을 만들고 Main Application에서 Loader 클래스를 이용해 모듈을 로드하여 통신하면 되겠다. 이 방법은 사용하기 불편하고 프로그래머가 생각할 것이 너무 많다. 다행히 Flex에서는 Module에 관련된 SDK들을 제공하고 있다. 내부적으로는 Loader 클래스를 이용하지만 보다 Flex 다운 프로그래밍이 가능하도록 SDK를 제공하고 있다. ![]() 위 그림은 Module과 Application간에 관계에 대해 보여주고 있다. ModuleManager와 ModuleLoader 클래스를 이용해 SWF로 만들어진 Module을 로드할 수 있다. 모듈은 Module 클래스를 이용해 만들면 된다. 이와 관련된 내용은 예전에 내가 작성한 글을 참고하거나 라이브 독을 참고한다. [Flex,AIR]모듈(Module) 제작에 관련된 문서와 예제 [Creating Modular Applications - Adobe Live Docs] 마무리 모듈화 프로그래밍은 어떤 방법(RSL,Module)을 쓰던지 제대로된 프로그램 설계가 꼭 필요하다. RSL, Module을 적당하게 잘 섞어서 튼튼한 기반의 프로그램을 만들면 쉬운 메모리 관리가 가능해지며 프로그램 용량을 크게 줄일 수 있다. 하지만 어설프게 모듈화를 적용하면 전체 프로젝트를 다시 한번 뒤짚어야 하는 결과를 초래할 수 있다. [Flex, AIR] 프로그램 크기를 줄여보자 1 - 사용하지 않는 클래스는 사용하지 않도록 하자. [Flex, AIR] 프로그램 크기를 줄여보자 2 - 폰트(font) 동적로드 또는 문자범위지정 글쓴이 : 지돌스타(http://blog.jidolstar.com/310) |
||||||



