본문 바로가기

인사이드RIA/인사이드플렉스

Flex 애플리케이션의 성능을 보장하는 10가지 팁

반응형
Flex 애플리케이션의 성능을 보장하는 10가지 팁 이라는 지극히 낚시성 제목의 글이 올라왔습니다.
http://network.hanb.co.kr/view.php?bi_id=1625

글쓴이의 말대로 잘 지켜주면 성능을 쓸데없이 낭비되는 자원을
최소화시킬 수 있는 좋은 방법들입니다.
이런 내용들이 하늘에서 뚝 떨어진 것은 아니고
그동안 하나둘 이야기되었던 것들을 잘 정리해놓은 글이라고 보시면 될 듯합니다.

사용자 삽입 이미지

http://en.wikipedia.org/wiki/Ariel_Atom


원문에서 부족한 내용들을 링크로 추가하려고 합니다.
부족한 부분을 이해하는데 도움을 드릴것입니다.
내용중 일부는 논란의 소지가 있기는 합니다.
원문에 달린 댓글을 보시면 꼭 이것만은 정답이 아니라는 것을 생각해볼 수 있습니다.
그리고 이 10가지 팁외에도 다양한 방법들이 있고
기본 컴포넌트를 경량화시키는 커스텀 컴포넌트 형식도 많이 사용하고 있습니다.
플렉스4 SDK에서 스크롤 부분을 분리한것을 보더라도
컴포넌트 자체의 경량화가 얼마나 큰 영향을 가지는지 알 수 있습니다.

1) 이벤트 리스너를 관리하자.
- 기본적으로 이벤트 리스너의 동작원리에 대해 모르면 이해하기가 힘든 내용입니다.
- 다양한 옵션이 있는 만큼 책임도 뒤따르게 된다는...ㄷㄷ
* Event propagation
http://livedocs.adobe.com/flex/3/html/help.html?content=events_08.html#203937

2) 로더를 정리하자.
- 이슈에 대해 잘 정리해주신 분은 GSKinner 입니다.
작년에 이 주제를 가지고 몇차례 관련된 글을 찾아볼 수 있습니다.
*  unloadAndStop in Flash Player 10
http://www.gskinner.com/blog/archives/2008/07/unloadandstop_i.html
이를 좀 쉽게 풀어서 설명해주는 글은 아래를 참고하세요.
* Loader 객체의 unloadAndStop() 메서드
http://joshy21.com/weblog/36

3) 리소스를 한꺼번에 청소하자.
- 좀 위험한 방법이기도 합니다. 없어진 객체때문에 오류가 발생할 수 있기때문이죠.
일단 아래 내용을 참고하세요.
* clean up your garbage
http://olegfilipchuk.com/2009/03/15/clean-up-your-garbage/

4) 컬렉션을 적절하게 다루자.
- 기본 컬렉션의 동작원리를 먼저 이해하는게 좋겠죠.
* Collection 계열의 클래스와 List 계열 컴포넌트의 데이터 처리
http://blog.jidolstar.com/375
- disableAutoUpdate()을 적절하게 사용한 예제입니다.
* 페이징 대신 무한 스크롤
http://fxdev.wordpress.com/2009/02/20/

5) 인스턴스 생성을 적절히 조정하자.
- creationPolicy를 적절하게 제어하지 않는 것은 폭탄을 심어놓는것 같습니다.
* creationPolicy
http://watta.egloos.com/2710533

6) 객체를 재사용하자.
- 당연한 이야기입니다만...^^
* Flex Performance, Memory Management, & Object Caching
http://www.insideria.com/2008/03/flex-performance-memory-manage.html

7) 변경되지 않는다면 객체를 무효화/제거/다시무효화 하지 말자.
- 본문의 예제를 참고하세요. 신경을 못쓰는 부분중 하나죠.

8) 타입 지정 객체를 사용하자.
- 아마 AS2에서 AS3로 넘어오면서 많은 분들이 혼란스러워 하는 부분인듯 싶구요.
캐스팅 과정에서 좀 애매하게 사용하는 경우도 있구요.

9) 적절하게 상수를 사용하자.

10) 스태틱 멤버를 사용하자.
* Flex 의 static 변수의 초기화 순서...
http://blog.daum.net/clark75/8892820

UI 와 관련된 성능을 개선하려면
아래 이벤트를 참고하세요. ^^
http://koko8829.tistory.com/690

728x90