본문 바로가기

Actionscript3.0

Actionscript3.0 을 사용해야 하는 6가지 이유

 Actionscript3.0 이 나오고 많은 사람들이 Actionscript2.0 에서 3.0 으로 넘어 왔고 그 강력함에 대해 매우 기뻐하고 있다. 그러나 아직 디자이너와 소통을 하기 위해 새로운 언어로 넘어 오지 못하는 많은 사람들이 있다. 그 이유는 여러가지가 있겠지만 같은 작업을 하는거에 대해 Actionscript3.0 이 더 복잡하다는 잘못된 생각들이 있기 때문 이다. 이 기술문서에서는 당신이 왜Actionscript3.0 을 사용해야만 하는지에 대해 알려주고 Actionscript3.0 에 대한 잘못된 생각들을 풀어 주겠다.

 우리는 Actionscript 코드를 사용하는 사람들이 두 그룹이 있다는 것을 알게 되었다. 첫번째는 hardcore developer로 이루어진 그룹이다. 그들은 일반적으로 Java 나 C# 을 미리 접하고 사용했던 사람들이다. 그들에겐 Actionscript3.0 은 반가운 언어 였을것이다.  왜냐하면 그들이 이미 알고 있던 언어들과 비슷하기 때문이다. 두번째 그룹은 interactive designer 로 이루어진 그룹이다. "Interactive designer" 이란 플래시 프로그래밍을 하므로 해서 그들의 비젼을 높일수 있는 디자인 기반의 혹은 애니메이션을 하는 사람들을 말한다. Interactive designer는 종종 타임라인에 코드를 삽입한다. 하지만 그들도 역시 약간의 프로그래밍에서의 object-origented programming(OOP) 를 알고 있다.

이 기술문서에서는 후자의 그룹을 고려 하였다. 그리고 Actionscript3.0 으로 전환하기에 혼란을 느끼시는 분들을 위해 글을 써내려 가겠다.

A brief history of ActionScript ( Actionscript 의 역사 )

 Actionscript 는 Flash player4 에서 처음으로 소개 되었다. 그것은 Flash 에서 인터렉티브에 많은 변화를 가져다 주었지만 언어 자체가 정교 하지고 않았으며 그때 까지 써왔던 언어와도 달랐다. 비록 다음 버젼에서는 ECMAScript 구문이 적용되었지만 초기에 ACtionscript는 ECMAScript 와 많이 달랐다.
Actionscript 1.0 은 Flash player 5 에서 소개 되었다. 1.0은 ECMAScript 기반으로 구문과 문법이 적용되었다. Flash player 6과 7로 Player 가 버젼업 하면서 많은 질타를 받았지만 형태는 그대로 유지 되었다.

 Actionscript2.0 은 Flash MX2004 와 Flex 1.0 에서 공개 되었다. 이 새로운 버젼 역시 Flash player6과 7에서 사용되었다. 왜냐하면 Actionscript2.0 은 실제로 Actionscript1.0 runtime 을 기반으로 하고 있기 때문에 결과적으로 Actionscript2.0 은 좋은 퍼포먼스를 낼수 없었다. 왜냐하면 결국 기반은 Actionscript1.0 모델로 구성되어 있기 때문이다.

 Flash Player 9를 준비 하는 동안, 우리는 더이상 낮은 퍼포먼스를 내는 Actionscript1.0, Actionscript2.0 기반의 Actionscript engine 으로 계속 나아 갈수 없다는 것을 확신하게 되었다. 그래서 Adobe 는 Actionscript Virtual Machine(AVM) 을 다시 만들기 시작한다. 그 결과 AVM2 이라고 알려진 높은 퍼포먼스를 낼수 있는 가상 머신을 만들게 되고 새로운 Actionscript 언어를 탑재하게 된다.  비록 AVM2 이 주요한 Actionscript 의 가상머신이 되겠지만 웹상에 존재 하는 무수히 많은 이전 버젼의 컨텐츠들을 위해 Flashplayer 에서 그 컨텐츠들을 지원에 주는 기능을 남겨 두게 된다.

Reasons to use ActionScript 3.0 ( Actionscript3.0 을 사용해야 하는 6가지 이유 )

지금부터 언급하는 내용들은 Actionscript3.0 을 배움으로해서 좋은 점들은 어떠한 규칙없이 나열한 것이다.

1. Your skills will be in high demand

내 생각으로 이것은 현재 Flash developer 로 일하고 있던 일할 계획을 가지고 있던 새로운 언어를 배워야 하는 주된 이유이다. 대부분의 커다란 Flash 일들은 Actionscript3.0 으로 제작되고 있다. 앞으로 Actionscript2.0 기술을 요구하는 일들은 점점 작아 질것이므로 당신이 Flash 로 일을 할 계획을 가지고 있다면 Actionscript3.0 은 필수다.

2. Everything you build will be faster

Flash 개발자들은 새롭게 낸 아이디어나, 정말 기발한 생각으로 만들어진 컨텐츠들이 Flash player 에 한계에 부딛히는걸 보며 좌절을 느껴왔다.
Actionscript3.0 은  이전 언어의(Actionscript2.0) 10배 이상의 퍼포먼스를 제공한다. 이 의미는 Stage 위에 더 많은 객체들을 동시에 조절
할 수 있다는 것을 의미 한다. 만약 당신의 프로젝트를 부드럽게, 보기 좋은 퍼포먼스를 내기를 원한다면 Actionscript3.0 이 그것을 도와줄 것이다.

3. There's an abundance of new APIs

Flash 개발자로서 새로운 장난감( Class package 를 묘사한것 같다. ) 을 자신의 프로젝트에 통합 하는 것 만큼 즐거운 일은 없을것이다. Actionscript3.0 은  XML, 정규식, binary sockets 와 같은 100가지의 새로운 APIs 를 포함하고 있다. 더 대단한 것은 Actionscript 의 모든 부분이 새로운 언어의 특징에 맞게 찾아 쓰기 편하도록 package 별로 namespaces 별로 나눠져 있다는 것이다. 당신은
Actionscript3.0 을 사용할때 Flash toolbox 가 더이상 가득 차 있어서 찾기 불편한것이 아닌, 잘 정리되어 있는것을 볼 수 있을것이다.

4. The display list rocks

Actionscript3.0 에서는 Flash 가 visual object(DisplayObject)를 처리 하는 방법이 달라졌다. ( 이전 버젼과 가장 큰 차이점 ) 이전 버젼의 언어에서는, Flash movie 에서 객체들의  display order(depth) 를 조절하기 위해  black art 를 사용하였다. 이 언어를 배우기 시작하는 사람들은 이해 할수 없는 많은 꼼수와 대안이 존재 한다. 예를 들어 이것은 보통 가장 깊은 곳에 있는 visual object 들을 어떤 무엇보다 가장 높은 곳에 위치시키기 위해 사용된다. 이것은 큰 단위 프로젝트시 많은 문제를 일으키고 depth 를 조절하는 메뉴얼을 필요로 한다. Actionscript3.0 에서 visual object 를 조작하는 새로운 규율은 이러한 객체들을 rendering 하는데 간단한 메카니즘으로 되어 있다. 한번 Actionscript3.0 을 사용하기 시작하면 다시는 3.0 없이는 작업을 못할 것이다.  ( depth를 조절 하는 방법이라든지 규칙(내부적으로)이 변하였다는 것을 말하고 있다. )

5. The object-oriented structure is better

개발자들은 특히 Actionscript3.0 의 object-oriented structure 에 만족하고 있다. 3.0은 runtime typing, class, package, namespace 그리고 정밀하게 이루어져 있는 이벤트 모델을 포함하고 있다. Actionscript3.0 을 프로그래밍 하는 것은 Java 나 C# 과 같은 high-level 언어로 프로그래밍 하는 것과 같은 수준이다. Actionscript3.0 의 새로운 기능들은 당신의 코드를 보다 단단하게, 가독성 있게 그리고 확장 가능하게 만들어 준다. 만약 당신이 interactive designer 라면 이 기능들은 많이 사용하지 않을지도 모른다. 하지만 당신이 프로그램능력의 향상을 원할때 이 언어의 구조는 당신을 지원해 줄것이다.

6. It's more enjoyable to work with ActionScript 3.0

지금 까지 언급한 모든 내용을 읽고도 여전히 Actionscript3.0 을 배울 마음이 안생긴다면 그냥 Actionscript2.0 으로 프로젝트를 진행하기를 바란다. 그러나 Flash platform 이 진화하고 앞으로 나올 새로운 기술들은 모두 Actionscript 3.0이 사용될 것이다. 예를들어 Flex 3 이나 Adobe AIR 는 Actionscript3.0 을 필요로 한다. 그리고 만약 당신이 이러한 기술들을 이용한 작업을 원한다면 Actionscript3.0을 사용하는 것 외에는 선택의 여지가 없을 것이다.

FAQs about ActionScript 3.0

이 섹션에서는 Actionscript3.0 에서 자주 받는 질문에 대해 이야기 해 볼까 한다. 그리고 당신이 새로운 언어로 바꾸는 것에 대한 걱정과 질문거리를 씻어내 주겠다.

* Why does ActionScript 3.0 require more code than ActionScript 2.0? ( 왜 Actionscript3.0 은 2.0 보다 많은 코드를 필요로 하는가? )

많은 경우에서 Actionscript3.0 는 더 많은 코드를 필요로 하지 않는다. 이 질문을 하는 대부분의 사람들은 button click 과 같은 이벤트 리스너를 등록하는 작업을 예를들며 질문을 하곤한다. 하지만 Actionscript 3.0 이 코드를 더 많이 필요로 하는게 확실하다 할지라고 그에 따른 이득을 가져다 준다. 3.0으로 작성된 코드는 보다 코드 전체의 가독성을 높여 주고 코드를 구조화 시켜 준다. ( 결합도가 높다) 만약 당신이 Actionscript2.0 의 이벤트가 동작하는 것을 hack 을 이용하여 본다면 새로운 언어 모델이 더욱 더 센스 있게 만들어져 있다는 것을 알게 될 것이다.

* Why can't I attach code directly to symbols anymore? ( 왜 symbol 에 코드를 삽입할수 없게 되었는가? )

불행하게도 이러한 작업은 대 단위의 프로젝트에서 커다란 혼란을 가져온다. 어디에 있는지 모르는 Actionscript code 는 프로젝트의 대부분의 시간을 소비 하게 한다. 심볼에 보다 잘 알아 볼수 있게
표시를 하더라도 당신이 주요한 코드 위치를 정해 놓고 작업을 하는게 ( document class 와 같이 class 기반 프로젝트를 뜻함 ) 보다 가독성있고 유지 보수하기 좋을 것이다. 이러한 이유로
Flash 를 만든 사람들은 Flash CS3 에서 Actionscript3.0 을 이용하는 프로젝트 작업시 이러한 기능을 막아 놓았다.

* What if I don't want to write everything in class files? ( 나는 모든 코드를 class 파일에 작성하기를 원하지 않는데, 어떻게 해야 하는가? )

Actionscript 3.0 의 오해 중 하나는 모른 code 를 class 파일에 작성해야 된다는 점이다. 이것은 맞는 말이 아니다. 당신은 여전히 Timeline 에 스크립트를 삽입할수 있다. 나 역시도 여전히
Timeline 을 이용한 작업을 하고 있다. 그러나 당신 스스로 보다 객체지향 코드를 작성하고 싶다면 Actionscript3.0 는 객체지향 프로그래밍을 보다 쉽게 도와줄 것이다.

* Why is Adobe focusing all of its attention on developers? ( 왜 Adobe 는 개발자들을 위한 것에 주력하는가 ? )

난 이해할수가 없다. Adobe 는 많은 시간을 디자이너를 위한 기능을 만드는데 쓰고 있다. Actionscript3.0는 개발자가 Flash 를 더욱 발전할 수 있게 하는 핵심적인 요소이다. Actionscript3.0 에 대한 프로젝트가 끝났고 곧있으면 Adobe 는 다시 디자인과 애니메이션 기능에 촛점을 맞출 것이다.  Flash Player 10 beta 의 기능을 보라. 3D  커스텀 필터, 물리역학 등등 모두 interactive designer 가 요청한 것들이다.

Where to go from here

아래 자료들은 Actionscript3.0 을 시작하는데 매우 도움을 줄 것이다.

  • ActionScript 3.0 overview discusses the goals and features of the language, as well as describing ECMAScript for XML (E4X) and Flash Player API features.
  • Emmy Huang of the Flash Player team compiled some tips and common issues you might encounter during development to help ease your transition to ActionScript 3.0.
  • To get more articles and online resources, be sure to check out the ActionScript 3.0 section of the ActionScript Technology Center.
  • I also highly recommend Learning ActionScript 3.0. It is a great book for beginners who are learning the new language. You can review three chapters of the book on the Adobe Developer Connection.
  • For more advanced coders, Colin Moock's book Essential ActionScript 3.0 is largely considered the bible of ActionScript 3.0 development. You can review two chapters of Colin's book on the Adobe Developer Connection as well.
  • If you prefer to learn by watching videos, there are many resources available. Lynda.com is a great place to learn about ActionScript 3.0. In particular, ActionScript 3.0 in Flash CS3 Professional is a great introduction to the language. I also run a free video tutorial site (gotoandlearn.com) that has a large number of tutorials featuring ActionScript 3.0.


원문 링크 번역 : 동강 www.ddongkang.com