์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
ActionScript์์ ๋์ด์ด
package { public class HelloWorld { public function HelloWorld () { trace("Hello, world!"); } } }
1. ๊ฐ์[ํธ์ง]
์ด๋๋น ์ ๋๋ฉ์ดํธ(๊ตฌ ์ด๋๋น ํ๋์ ํ๋กํ์
๋)์์ ํ๋์ ์ ๋๋ฉ์ด์
์ ์ปจํธ๋กค์ ์ํด ์ฌ์ฉํ๋ ์คํฌ๋ฆฝํธ ์ธ์ด. ์ด๋๋น์์ ์ธ์๋๊ธฐ ์ ํ๋์๋ฅผ ๊ฐ๋ฐํ๋ ๋งคํฌ๋ก๋ฏธ๋์ด[1]์์ ๊ฐ๋ฐํ ์ธ์ด์ด๋ค. ์๋ ํ๋์์๋ 2.0๋ถํฐ '์ก์
'์ด๋ผ ๋ถ๋ฆฌ๋ ๋ฒกํฐ ์ ๋๋ฉ์ด์
์ ์ด๋ฅผ ์ํ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ ์ธ์ด๊ฐ ๋ถ์ด์์๋๋ฐ ์ด๊ฒ์ด ํ๋์ 5์์๋ถํฐ '์ก์
์คํฌ๋ฆฝํธ'๋ผ๋ ์ด๋ฆ์ด ๋ถ์ผ๋ฉฐ ๋ณธ๊ฒฉ์ ์ธ ์คํฌ๋ฆฝํธ ์ธ์ด๋ก ๋ฐ์ , ํํ ๋ฒ์ ์ธ ์ก์
์คํฌ๋ฆฝํธ 3.0์ ๋
๋ฆฝ๋ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์ด๋ผ๊ณ ๋งํด๋ ๋ฌด๋ฐฉํ ์์ค๊น์ง ๋ฐ์ ํ๋ค.
ํน์ดํ ์ ์ด๋ผ๋ฉด ์คํฌ๋ฆฝํธ ์ธ์ด์ด์ง๋ง AVM์์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ spidermonkey๋ v8 ์ฒ๋ผ ํ ์คํธ ํ์ผ ์ํ๋ก ๋ฐ๋ก ์คํํ ์ ์๊ณ ํ๋ฒ ์ปดํ์ผํ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์คํํ๋ค.
ํ๋์๋ฅผ ์ปจํธ๋กคํ ๋ชฉ์ ์ผ๋ก ๋ง๋ ์ธ์ด๋ค๋ณด๋ ์ฑ ์ด๋ ์ธํฐ๋ท ๊ฐ์ข ๋ฑ์์ Hello, world! ์ถ๋ ฅ๋ถํฐ ํ๊ณ ์์ํ๋ ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ๋ ๋ฌ๋ฆฌ, ์ ๋๋ฉ์ด์ ์ ์กฐ์ํ๋ play(), stop() ๋ฑ์ ๋ฉ์๋๋ถํฐ ์์ํ๋ ๊ฒ์ด ํน์ง. ํ๋ ค๋ฉด ์ฝ์ ์ฐฝ์ Hello, world!๋ฅผ ๋ฟ๋ฆด ์๋ ์๋๋ฐ ๊ทธ๊ฑธ๋ก ์ฒซ ์ฝ๋๋ฅผ ์์ํ๋ ์ฌ๋์ ์๋ค(...). ์ด๋ฐ ์ ์์๋ Processing๊ณผ ๋น์ทํ ์ ์ด ์๋ค.
ํน์ดํ ์ ์ด๋ผ๋ฉด ์คํฌ๋ฆฝํธ ์ธ์ด์ด์ง๋ง AVM์์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ spidermonkey๋ v8 ์ฒ๋ผ ํ ์คํธ ํ์ผ ์ํ๋ก ๋ฐ๋ก ์คํํ ์ ์๊ณ ํ๋ฒ ์ปดํ์ผํ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์คํํ๋ค.
ํ๋์๋ฅผ ์ปจํธ๋กคํ ๋ชฉ์ ์ผ๋ก ๋ง๋ ์ธ์ด๋ค๋ณด๋ ์ฑ ์ด๋ ์ธํฐ๋ท ๊ฐ์ข ๋ฑ์์ Hello, world! ์ถ๋ ฅ๋ถํฐ ํ๊ณ ์์ํ๋ ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ๋ ๋ฌ๋ฆฌ, ์ ๋๋ฉ์ด์ ์ ์กฐ์ํ๋ play(), stop() ๋ฑ์ ๋ฉ์๋๋ถํฐ ์์ํ๋ ๊ฒ์ด ํน์ง. ํ๋ ค๋ฉด ์ฝ์ ์ฐฝ์ Hello, world!๋ฅผ ๋ฟ๋ฆด ์๋ ์๋๋ฐ ๊ทธ๊ฑธ๋ก ์ฒซ ์ฝ๋๋ฅผ ์์ํ๋ ์ฌ๋์ ์๋ค(...). ์ด๋ฐ ์ ์์๋ Processing๊ณผ ๋น์ทํ ์ ์ด ์๋ค.
2. ๊ฐ ๋ฒ์ ๋ณ ํน์ง[ํธ์ง]
2.1. ActionScript 1.0[ํธ์ง]
2000๋
9์ ํ๋์ 5.0์ ์ฒ์์ผ๋ก ํ์ฌ๋์๋ค. ๊ธฐ์กด์๋ '์ก์
'(Actions)๋ผ๋ ์ด๋ฆ์ผ๋ก ํ๋์์ ์คํฌ๋ฆฝํธ ํ๊ฒฝ์ด ๋ง๋ จ๋์ด์์์ผ๋ ํ์๋ผ์ธ ์ปจํธ๋กค์ด๋ ๋ฌด๋น์ ํธ์ถ ๋ฑ ์ ๋๋ฉ์ด์
์ปจํธ๋กค์ ํ์ ํ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ์ ์ง๋์ง ์์๊ณ ์ด์ ๋ฒ์ ์ธ 4.0์์์ผ ๋ณธ๊ฒฉ์ ์ธ ํ ์คํฌ๋ฆฝํ
ํ๊ฒฝ์ด ์์ฑ๋์๋๋ฐ, 5.0์์๋ ์ด๋ฅผ ํ์ฅํ๋ ๋์์ ๋ฌธ๋ฒ ๋ฑ์ ์๋ก ์ ๋ฆฌํ์ฌ '์ก์
์คํฌ๋ฆฝํธ'๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฐํํ ๊ฒ์ด๋ค. ๋ฌธ๋ฒ์ ์ ๋ฐ์ ์ผ๋ก ๋น์ ๋ฒ์ ์ JavaScript ๋ฐ 1๋
์ ์ธ 1999๋
์ ECMA-262 ํ์ค์ผ๋ก ํ์ ๋ ECMAScript ์ 3ํ[2]์ ์ํฅ์ ๋ฐ๊ณ ์์ด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ์ค ์๋ค๋ฉด ๋น๊ต์ ์ฝ๊ฒ ์ตํ ์ ์๋ค.
์ผ๋จ์ ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ๋ฉฐ ๊ฐ์ฒด์งํฅ์์๋ ์ฒจ๊ฐ๋ ์ธ์ด๋ก ์ค๊ณ๋์๊ธฐ๋ ํ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ ECMAScript์ ์ํฅ์ ์ง์ ์ ์ผ๋ก ๋ฐ๊ณ ์๋ ๊ด๊ณ๋ก ํ๋กํ ํ์ ๊ธฐ๋ฐ์ OOP๋ฅผ ๊ตฌํํ๊ณ ์์ด์ Java์ฒ๋ผ ๊ณ ์ ์ ์ธ ํด๋์ค ๊ธฐ๋ฐ์ OOP์ ์ต์ํ ์ฌ๋์ด ๋ณด๋ฉด ์ด๊ฒ ๋ญ๋๋ ์๋ฆฌ๊ฐ ๋์จ๋ค.๊ฒ๋ค๊ฐ OOP ๊ทธ๋ฐ๊ฑฐ ๋ชฐ๋ผ๋ ์๋ง ์ด๋ค ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์์ธ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌ๋ฆฌ Java์ฒ๋ผ ์ปดํ์ผ ํ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์์ฑํ์ฌ AVM(ActionScript Virtual Machine)์ด๋ผ๋ ๊ฐ์๋จธ์ ์์ ๊ตฌ๋ํ๋ ํ์์ด๋ค.
์๊ทธ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ํฅ์ ๋ฐ์ ๋์ ์ธ์ด๋ช ์ธ๊ฐ ๊น๋ค๋กญ์ง ์์ ์ ๋ฌธ์ ์ฌ์ด ํธ์ธ๋ฐ, ์ด๊ฒ ํ๋์์ ๊ตฌ์ฑ์์๋ค๊ณผ ์ ๊ธฐ์ ์ผ๋ก ์ฐ๋๋์ด์๋ค๋ณด๋ ํ ์คํฌ๋ฆฝํ ์ ํ ์ผ์ ๋ณ๋ก ์๊ณ ๋์ฒด๋ก ์ค๋ธ์ ํธ๋ค์ ์ง์ ์ฝ๋๋ฅผ ์ฌ์ด์ฃผ๋ ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์ฝ๋๋ฅผ ์์ฑํด ๋ณด๋ฉด ๋๋์ฑ ์ฝ๋ค. ๋์์ด๋๋ค๋ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฐ์์ ์ธํฐ๋ํฐ๋ธํ ๊ฒฐ๊ณผ๋ฌผ์ ์ง์ ๋ง๋ค์ด๋ผ ์์๋ ์๋๋ฅผ ์ฐ ์ฅ๋ณธ์ธ์ด๋ผ๊ณ ํ๊ฒ ๋ค. ์ธ์ด์ ํน์ง ์ค ํ๋๋ก ๋ฉ์๋์ ํ๋กํผํฐ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ชจ๋ ํ๋กํผํฐ ์ด๋ฆ ์์๋ _(์ธ๋๋ฐ)๊ฐ ๋ค์ด๊ฐ๋ค๋ ๊ฒ ์๋๋ฐ, ์ ๋น์ด ๋ฉ์๋์ ํ๋กํผํฐ๋ ํธ์ถํ๋ ๋ฐฉ๋ฒ๋ถํฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ์ฝ์ง์ด๋ค(...).
์ผ๋จ์ ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ๋ฉฐ ๊ฐ์ฒด์งํฅ์์๋ ์ฒจ๊ฐ๋ ์ธ์ด๋ก ์ค๊ณ๋์๊ธฐ๋ ํ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ ECMAScript์ ์ํฅ์ ์ง์ ์ ์ผ๋ก ๋ฐ๊ณ ์๋ ๊ด๊ณ๋ก ํ๋กํ ํ์ ๊ธฐ๋ฐ์ OOP๋ฅผ ๊ตฌํํ๊ณ ์์ด์ Java์ฒ๋ผ ๊ณ ์ ์ ์ธ ํด๋์ค ๊ธฐ๋ฐ์ OOP์ ์ต์ํ ์ฌ๋์ด ๋ณด๋ฉด ์ด๊ฒ ๋ญ๋๋ ์๋ฆฌ๊ฐ ๋์จ๋ค.
์๊ทธ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ํฅ์ ๋ฐ์ ๋์ ์ธ์ด๋ช ์ธ๊ฐ ๊น๋ค๋กญ์ง ์์ ์ ๋ฌธ์ ์ฌ์ด ํธ์ธ๋ฐ, ์ด๊ฒ ํ๋์์ ๊ตฌ์ฑ์์๋ค๊ณผ ์ ๊ธฐ์ ์ผ๋ก ์ฐ๋๋์ด์๋ค๋ณด๋ ํ ์คํฌ๋ฆฝํ ์ ํ ์ผ์ ๋ณ๋ก ์๊ณ ๋์ฒด๋ก ์ค๋ธ์ ํธ๋ค์ ์ง์ ์ฝ๋๋ฅผ ์ฌ์ด์ฃผ๋ ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์ฝ๋๋ฅผ ์์ฑํด ๋ณด๋ฉด ๋๋์ฑ ์ฝ๋ค. ๋์์ด๋๋ค๋ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฐ์์ ์ธํฐ๋ํฐ๋ธํ ๊ฒฐ๊ณผ๋ฌผ์ ์ง์ ๋ง๋ค์ด๋ผ ์์๋ ์๋๋ฅผ ์ฐ ์ฅ๋ณธ์ธ์ด๋ผ๊ณ ํ๊ฒ ๋ค. ์ธ์ด์ ํน์ง ์ค ํ๋๋ก ๋ฉ์๋์ ํ๋กํผํฐ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ชจ๋ ํ๋กํผํฐ ์ด๋ฆ ์์๋ _(์ธ๋๋ฐ)๊ฐ ๋ค์ด๊ฐ๋ค๋ ๊ฒ ์๋๋ฐ, ์ ๋น์ด ๋ฉ์๋์ ํ๋กํผํฐ๋ ํธ์ถํ๋ ๋ฐฉ๋ฒ๋ถํฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ ์ฝ์ง์ด๋ค(...).
2.2. ActionScript 2.0[ํธ์ง]
2003๋
9์, ํ๋์ MX 2004์์ ๊ธฐ์กด์ AS 1.0์ ๋ง์ ๊ธฐ๋ฅ๊ฐ์ ๊ณผ ์ถ๊ฐ๊ธฐ๋ฅ์ ๋ํ๋ฉด์ ํ๊ธ์ ์ฌ๋ ธ๋ค. ํน์ง์ ์ธ ์ฐจ์ด๋ผ๋ฉด ์ปดํ์ผ ํ์์ ์ด๋ฃจ์ด์ง๋ ํ์
์ฒดํฌ, ํด๋์ค ๊ธฐ๋ฐ์ OOP ๊ฐ๋
[3]์ ๋์
ํ๋ค๋ ์ . ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ์ ECMAScript ์ 3ํ์ ๊ธฐ๋ฐํ๊ณ ์์ผ๋ ํด๋์ค ๊ด๋ จ ๋ฌธ๋ฒ์ Java์ ๊ทธ๊ฒ๊ณผ ๊ฑฐ์ ์ ์ฌํ๋ฐ, ์ค์ ๋น์์ ์๋ก์ด ํ์ค์์ผ๋ก ๋
ผ์๋๊ณ ์๋ ECMAScript ์ 4ํ ์ด์์ ๋ช
์ธ๋ฅผ ์ผ๋ถ ๋์
ํ ๊ฒ์ด๋ค. ์ ์ด์ ์ด์ชฝ์์ ํ๋กํ ํ์
๋๋ ค์น๊ณ ํด๋์ค ๊ฐ๋
์ ๋์
ํ๋ ค๋ ์๋๊ฐ ์์๋๋ฐ ์ด๊ฑธ ๊ทธ๋๋ก ๊ฐ์ ธ์จ ๊ฒ. ๋น์ ๋งคํฌ๋ก๋ฏธ๋์ด๋ ECMAScript ์ 4ํ์ ํ์ค ์ ์ ์ ๊ฝค ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ๊ณ ์์๋ค๊ณ ํ๋ค.
๋ฐ๋ก ์ด ์๊ธฐ๊ฐ ์ก์ ์คํฌ๋ฆฝํธ, ๊ทธ๋ฆฌ๊ณ ํ๋์์ ๋ฆฌ์ฆ์์ . PHP๋ JavaScript์์ ์ฐ๋ ๋ฑ์ผ๋ก ์ ์ฐจ ํ๋๋์ด ํ๋์๊ฐ ์น์์์ ์ ์ง๋ฅผ ๊ตณํ ๋๊ฐ๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ ์ด ๋์ ๋ง์ ์ก์ ์คํฌ๋ฆฝํธ ์ ๋ฌธ์๊ฐ ์๊ฒผ๋ค. ๋ช๋ช ์์ธ๊ท๋ชจ ์ ์ฒด๋ค[4]์์๋ ์์ง๋ ํ์ญ์ธ๋ฐ, ๊ทธ ์ด์ ๋ ์ด๊ฒ ํ์ญ์ด๋ ์์ ์ ์ด๋๊ฐ์์ ์์ ๋ฑ์ผ๋ก ๋์จ ์คํฌ๋ฆฝํธ๋ฅผ ํผ์ค๊ธด ํ๋๋ฐ ์ ์ ์ด๊ฑธ ๊ณ ์น ์ค์ ๋ชฐ๋ผ์.
์ฐธ๊ณ ๋ก AS 2.0์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋๋ผ๋ ์ปดํ์ผํ๋ฉด AS 1.0์ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์๋จธ์ ์ AS 1.0๊ณผ ๋์ผํ AVM1์ ๊ทธ๋๋ก ์ฌ์ฉํ๊ฒ ๋๋ค. ์ฌ์ค AS 3.0๊ณผ AVM2๊ฐ ๋์ค๋ฉด์ ํ๊ฒฉํ ์ฑ๋ฅ์ฐจ์ด, ๋ณด์์ ์ทจ์ฝ์ ๋ฑ์ผ๋ก ์ธํด ์กฐ๋ง๊ฐ์ AVM1๊ณผ ๊ทธ ๊ธฐ๋ฐ์ธ์ด์ธ AS 2.0์ ๋ฒ๋ ค์ง ๊ฒ์ด๋ผ๊ณ ์์๋์์ผ๋ ํ์ํธํ ๋๋ฌธ์ ๊ฝค ์ค๋ ์ด์๋จ์๋ค๊ฐ 2011๋ ๋ฐํ๋ ์ด๋๋น ํ๋์ CC์์ ๊ธฐ์ด์ด ์งค๋ ธ๋ค.. CC ๋ฒ์ ๋ถํฐ๋ AS 3.0 ๊ธฐ๋ฐ์ ์ฝ๋ฉ๋ง์ด ํ์ฉ๋๋ฉฐ ์ฌ๊ธฐ์ ๋์๋๋ ํ๋์ ํ๋ ์ด์ด๋ 15.0 ๋ฒ์ ๋ถํฐ AVM1์ ๋ค์ด๋ด๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ AS 2.0 ๊ธฐ๋ฐ SWF ํ์ผ์ด ๋์ด์ ์๋ํ์ง ์๊ฒ ๋์๋ค. ๋ฌธ์ ๋ AS 3.0์ ๊ฐ๋ฐ ๋์ด๋๊ฐ 2.0๊ณผ๋ ๋น๊ต๊ฐ ์๋๋ค๋ ๊ฒ.
๋ฐ๋ก ์ด ์๊ธฐ๊ฐ ์ก์ ์คํฌ๋ฆฝํธ, ๊ทธ๋ฆฌ๊ณ ํ๋์์ ๋ฆฌ์ฆ์์ . PHP๋ JavaScript์์ ์ฐ๋ ๋ฑ์ผ๋ก ์ ์ฐจ ํ๋๋์ด ํ๋์๊ฐ ์น์์์ ์ ์ง๋ฅผ ๊ตณํ ๋๊ฐ๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ ์ด ๋์ ๋ง์ ์ก์ ์คํฌ๋ฆฝํธ ์ ๋ฌธ์๊ฐ ์๊ฒผ๋ค. ๋ช๋ช ์์ธ๊ท๋ชจ ์ ์ฒด๋ค[4]์์๋ ์์ง๋ ํ์ญ์ธ๋ฐ, ๊ทธ ์ด์ ๋ ์ด๊ฒ ํ์ญ์ด๋ ์์ ์ ์ด๋๊ฐ์์ ์์ ๋ฑ์ผ๋ก ๋์จ ์คํฌ๋ฆฝํธ๋ฅผ ํผ์ค๊ธด ํ๋๋ฐ ์ ์ ์ด๊ฑธ ๊ณ ์น ์ค์ ๋ชฐ๋ผ์.
์ฐธ๊ณ ๋ก AS 2.0์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋๋ผ๋ ์ปดํ์ผํ๋ฉด AS 1.0์ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์๋จธ์ ์ AS 1.0๊ณผ ๋์ผํ AVM1์ ๊ทธ๋๋ก ์ฌ์ฉํ๊ฒ ๋๋ค. ์ฌ์ค AS 3.0๊ณผ AVM2๊ฐ ๋์ค๋ฉด์ ํ๊ฒฉํ ์ฑ๋ฅ์ฐจ์ด, ๋ณด์์ ์ทจ์ฝ์ ๋ฑ์ผ๋ก ์ธํด ์กฐ๋ง๊ฐ์ AVM1๊ณผ ๊ทธ ๊ธฐ๋ฐ์ธ์ด์ธ AS 2.0์ ๋ฒ๋ ค์ง ๊ฒ์ด๋ผ๊ณ ์์๋์์ผ๋ ํ์ํธํ ๋๋ฌธ์ ๊ฝค ์ค๋ ์ด์๋จ์๋ค๊ฐ 2011๋ ๋ฐํ๋ ์ด๋๋น ํ๋์ CC์์ ๊ธฐ์ด์ด ์งค๋ ธ๋ค.. CC ๋ฒ์ ๋ถํฐ๋ AS 3.0 ๊ธฐ๋ฐ์ ์ฝ๋ฉ๋ง์ด ํ์ฉ๋๋ฉฐ ์ฌ๊ธฐ์ ๋์๋๋ ํ๋์ ํ๋ ์ด์ด๋ 15.0 ๋ฒ์ ๋ถํฐ AVM1์ ๋ค์ด๋ด๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ AS 2.0 ๊ธฐ๋ฐ SWF ํ์ผ์ด ๋์ด์ ์๋ํ์ง ์๊ฒ ๋์๋ค. ๋ฌธ์ ๋ AS 3.0์ ๊ฐ๋ฐ ๋์ด๋๊ฐ 2.0๊ณผ๋ ๋น๊ต๊ฐ ์๋๋ค๋ ๊ฒ.
2.3. ActionScript 3.0[ํธ์ง]
2005๋
12์, ์ด๋๋น๊ฐ RIA(Rich Internet Application) ์์ฅ์ ์ง์ถํ๊ธฐ ์ํด ๋น์ ํ๋์๋ก ์ํ๊ฐ๋ฅผ ์ฌ๋ฆฌ๊ณ ์๋ ๋งคํฌ๋ก๋ฏธ๋์ด๋ฅผ ์ธ์ํ๋ ๋ํ์ฌ๊ฑด์ด ๋ฒ์ด์ง๋ค. ์ด ๊ณผ์ ์์ ๋งคํฌ๋ก๋ฏธ๋์ด๊ฐ ๊ฐ๋ฐํ๊ณ ์๋ ์๋ก์ด ๋ฒ์ ์ ์ก์
์คํฌ๋ฆฝํธ๋ ์ด๋๋น๋ก ๋์ด๊ฐ ๊ฐ๋ฐ์ ์๋ฃํ๊ฒ ๋๋๋ฐ, ์ฒซ ๋ฑ์ฅ์ ํ๋์๊ฐ ์๋๋ผ 2006๋
6์ ๋ฐํ๋ Flex[5] 2.0์ด์๊ณ ํ๋์์๋ ์ด๋ฌํด์ ๋์จ ํ๋์ CS3 ๋ฒ์ ๋ถํฐ ํ์ฌ๋์๋ค.
Flex๋ ๋์์ด๋๊ฐ ์๋ ํ๋ก๊ทธ๋๋จธ ๊ณ์ธต์๊ฒ๊น์ง ํ๋์ ํ๊ฒฝ์ ์ ๊ณตํ๊ธฐ ์ํ SDK์๋ค๋ณด๋ ์ฒ์์ ํฐ ๋ฐํฅ์ด ์์์ผ๋ ํ๋์ CS3๊ฐ ๋์ค๊ณ AS 3.0์ ์ธ์ด๋ช ์ธ๊ฐ ํ๋์ ๊ฐ๋ฐ์๋ค์๊ฒ ์๋ ค์ง์ ์ ๊ณ์ ๋ถ์๊ธฐ๋ ๊ทธ์ผ๋ง๋ก ํผ๋์ ์นด์ค์ค์๋ค. ๋ฌด์๋ณด๋ค 2007๋ ์์ผ ์ธ์ด๋ช ์ธ๊ฐ ์ด๋์ ๋ ํ์ด ์กํ ECMAScript ์ 4ํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ๋ฒ์ ์ธ๊ทธ๋ฆฌ ๊ฐ์์์ด๋ฒ๋ ธ๋๋ฐ 2.0์ฒ๋ผ ๊ธฐ์กด ์ก์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ ES4์ ์์๋ฅผ ์ฝ๊ฐ ์ฒจ๊ฐํ ๊ฒ ์๋๋ผ ๊ทธ๋ฅ ES4์ ์ธ์ด๋ช ์ธ๋ฅผ ๊ฑฐ์ ๊ทธ๋๋ก ๋ค๊ณ ์๋ค.[6] ๋ฌธ์ ๋ ์ด ES4๊ฐ ๊ธฐ์กด์ ES3์ ๋นํด ๋๋จํ ๋ฐฉ๋ํ๊ณ ์ธ์ด์ ๊ธฐ์ ๋์ด๋๊ฐ ๋์์ ธ์์๋๋ฐ๋ค ๊ธฐ์กด์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ์ ์ [7]์ ํด๊ฒฐํ๊ฒ ๋ค๋ ๋ชฉ์ ์ผ๋ก ๋๋ฌด ๋ง์ ๋ถ๋ถ์ ์์ ๋๋ค๋ ๊ฒ. ์ฌ๋ด์ผ๋ก ๊ฒฐ๊ตญ ES4๋ ์์ํ ์ฐธ๊ฐ์ ์ฒด๋ค์ ์๊ฒฌ์ฐจ๊ฐ ๊ทน์ฌํด์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ค์์ผ๋ก ํ์ ๋์ง ๋ชปํ๊ณ ์์ด์ก๋ค. ๊ทธ๋ ๋ค๋ณด๋ ์ฌ์ค์ ES4 ๋ช ์ธ๋ฅผ ์ค์ ๊ฐ๋ฐํ๊ฒฝ์ผ๋ก ๊ตฌํํ ๊ตฌํ์ฒด๋ AS 3.0์ด ์ ์ผํ๋ค์ํผํ๋ฐ, ES4๊ฐ ์์ด์ง ์ด์ ์ค ํ๋๋ ๊ธฐ์กด์ ES3์ ๋นํด ๋๋ฌด๋ ๋ฐฉ๋ํ๊ณ ์ด๋ ค์์ก๋ค๋ ๊ฒ์ด์๊ณ ํ์ฌ๋ HTML5์ ํจ๊ป ์ ์ฐ์ด๊ณ ์๋ ES5๋ ES4๊ฐ ์๋ ES3์์ ์ ์ง์ ์ผ๋ก ๋ฐ์ ์ํค๋ ํํ๊ฐ ๋์๋ค.[8]
์ด์จ๊ฑฐ๋ ๊ทธ๋ ๋ค๋ณด๋ ๊ธฐ์กด์ AS 2.0์ ์ฌ์ด ์คํฌ๋ฆฝํ ์ ์ต์ํด์ก๋ ๋์์ด๋๋ค์๊ฒ๋ ํฌ๊ฒ์ดํธ๊ฐ ์ด๋ ธ๋ค. ๊ธฐ๋ณธ์ ์ธ ์์ฑ๊ฐ์ด๋ ๋ฉ์๋ ๋ฑ์ ๊ฐ๊ธฐ์ ๊ทธ๋๋ก ์ฌ์ฉ์ด ๋๊ธด ํ์ง๋ง, ๋ฒํผ ํด๋ฆญ์ด๋ ๋ง์ฐ์ค ์ค๋ฒ ๋ฑ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ฌ๋ณผ ์์์ ํด๊ฒฐํ ์ ์๋ค๋ ์ด๋ง์ด๋งํ ๋ณ๊ฒฝ์ ์ด ์๊ฒจ๋ฒ๋ ค์ ์ผ์ผ์ด ํ์๋ผ์ธ ๋๋ ๋ณ๋์ ํด๋์ค ํ์ผ์ ์ฝ๋ฉ์ ํด์ ์ฐ๊ฒฐ์์ผ์ผ ํ๋๋ฐ, ์ฌ๊ธฐ๋ฅผ ์ ์ธํ ๊ณณ์๋ AS๋ฅผ ์์ ์ฝ๋ฉํ ์ ์๊ฒ ํด๋จ๋ค. ์ต์ํ์ง ์์ ์ฌ๋์ ๋ฒ๊ฑฐ๋ก์์ ๋์ด์ ํ๊ธฐ์ฆ์ด ๋๋ค. ๊ฒฐ๊ตญ ๋์์ด๋๋ค์ ๋ฌธ๋ฒ์ ์๊ฒฉํด์ก์ง, ์ด๋ฒคํธ ๋ค๋ฃจ๋ ๋ฒ๋ ์ดํด๊ฐ ์๋์ง, ๋ฒํผ์ ์ฝ๋ฉ๋ ์๋์ง, ํด๋์ค๋ ๋ ๋ญ๋ฉฐ ํจํค์ง๋ ๋ ๋ญ๋... ํ๋ฉฐ ๋ฉํ์ด ๋๊ฐ๋ ๊ฒฝํ์ ํ๋ฉฐ 3.0์ ์ตํ์ผํ์ผ๋ฉฐ ๊ทธ๋ฌ๋ค๊ฐ ๋นก์ณ์ ๊ทธ๋ฅ 2.0์ผ๋ก ๋กค๋ฐฑํ๋ ์ฌ๋๋ ๊ฝค ์์๋ค. CS3๊ฐ AS 2.0๋ ํ์ํธํ์ ์ํด ์ง์์ ํด์คฌ๊ธฐ ๋๋ฌธ. [9] ๋ฐ๋๋ก Java์ ๊ฐ์ ๊ธฐ์ฑ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ณด๋ค ํก์ฌํ ๊ตฌ์กฐ๋ฅผ ๋๊ฒ๋๋ฐ๋ค ๊ธฐ๋ฅ๊ณผ ์์ ๋ ๋ฉด์์ ํ๊ฒฉํ ํ์์ ์ด ์์๊ธฐ ๋๋ฌธ์ ์ฝ๋ฉ์ ์ต์ํ ์ฌ๋๋ค ์ ์ฅ์์๋ ํ์ ํ๊ณ (ํ๋ก๊ทธ๋๋จธ์ ์ฌ๊ณ ๋ฐฉ์์ผ๋ก) ์ดํดํ๊ธฐ ํ๋ค์๋ 2.0๋ณด๋ค ํฉ๋ฆฌ์ ์ด๊ณ ์ฐ๊ธฐ ํธํด์ก๊ธฐ ๋๋ฌธ์ ํ์๋ฐ์๋ค.
์ธ์ด๋ด์ ์ธ ๋ฉด์์๋ ์๋ก์ด ์์๊ฐ ๊ฝค ๋ง์ด ๋์ ๋ ํธ์ธ๋ฐ, ํด๋์ค๋ 2.0์์๋ ์ฌ์ฉํ ์ ์์์ง๋ง ํจํค์ง, ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์ด ์ฝ๋๊ฐ ์๊ทผํ Java์ค๋ฌ์์ก๋ค. import๋ผ๋๊ฐ extends๋ผ๋๊ฐ interface๋ผ๋๊ฐ ์ด๋์ ๋ง์ด ๋ณด๋ ํค์๋๋ค์ด ๋ณด์ธ๋ค. ์์๋ ํด๋์ค ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ ๊ธฐ์กด์ ํ๋กํ ํ์ ๊ธฐ๋ฐ ์์๋ณด๋ค ํผํฌ๋จผ์ค๊ฐ ๊ฐ์ ๋์๋ค. XML๊ณผ ์ ๊ทํํ์์ ์ง์ ๋ค๋ฃฐ ์ ์๊ฒ ๋์๊ณ ๊ทธ ์ธ์๋ 2.0์์ ์ค๊ธฐ์ฐจ๊ฒ ์จ ์ ๋ผ๋ _(์ธ๋๋ฐ)๊ฐ ์ฌ๋ผ์ง๊ณ ์ปดํ์ผ๋ฌ๋ ์๊ฒฉํด์ก๋ค. ํ์ ์ฒดํฌ๋ ์ปดํ์ผ ํ์/๋ฐํ์ ์์ชฝ์์ ์ด๋ฃจ์ด์ง๋ฉฐ ๋ณ์ ์ ์ธ๋ ๋ฐ๋์ ๋จผ์ ํด์ผ ๋๊ฒ ๋ฐ๋์์ง๋ง, ์์ธ๋ ์๋ค.('var'๋ฅผ ์ฐ์ง ์๊ณ ํน์ ์์น์ ๋์ ํ๋ ๊ฒฝ์ฐ)๊ทธ๋์ ์ค์ฝํ๋ ํธ์ด์คํ
์ ์๋ฐ๋์๋๋ผ๋ง์
๋ํ AS 3.0์ผ๋ก ๋ง๋ ์ฝ๋๋ ์ปดํ์ผํ๋ฉด AS 1.0/2.0๊ณผ๋ ๋ค๋ฅธ ์๋ก์ด ํํ์ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ AS 3.0์ ๋ฐ์ดํธ์ฝ๋๋ ์๋ก์ด ๊ฐ์๋จธ์ ์ธ AVM2์์ ํด์์ ํ๊ฒ๋๋๋ฐ, AVM2์ ๋ฐ์ดํธ์ฝ๋๋ ๊ธฐ์กด์ AS 1.0/2.0์ ๋ฐ์ดํธ์ฝ๋์ ํธํ์ฑ์ด ์ ํ ์๋ค. ๋ค๋ง ํ์ํธํ์ ์ํด ํ๋์ ํ๋ ์ด์ด๋ ๊ธฐ์กด์ AVM1๋ ๋ด์ฅํ๊ณ ์์์ผ๋ฉฐ AS 1.0/2.0์ ๋ฐ์ดํธ์ฝ๋๋ ์ด์ชฝ์์ ๋ด๋นํ๊ฒ ๋๋ค. AVM2๋ ๊ตฌ์กฐ๋ฅผ ์๋ก์ด ์ต์ ํํจ๊ณผ ๋๋ถ์ด JIT๋ฅผ ๋์ ํ๋๋ฐ ๋๋ถ์ ํผํฌ๋จผ์ค๋ฉด์์๋ AVM1๊ณผ ๋น๊ต๊ฐ ๋์ง ์์ ์ ๋๋ก ๊ฐ์ ๋์๋ค. ๋น์ ํ๋์๊ฐ ์งํ๋ฐ๋ ์ด์ ์ค ํ๋๊ฐ ๋ฌด๊ฑฐ์ด ๋์์ด์๋๋ฐ ์ด๊ฒ์ ๋น์ ์ปดํจํ ์ฑ๋ฅ๋ ์ฑ๋ฅ์ด์์ง๋ง AVM1์ด ๊ตฌ๋ ธ๋(...) ํ์ด ๋งค์ฐ ์ปธ๋ค. ์ ๋๋ก ์ฝ๋ฉ๋ง ํ๋ค๋ฉด AVM2์์๋ ํ๋์์ ์ต๋ ๋์ ์ด์๋ ๋๋ฆฐ ์คํ์ด ์๋นํ ๊ฐ์ ๋ ์ ์์๋๋ฐ, ์ด๋๋น ์ธก์ ์ฃผ์ฅ์ผ๋ก๋ 2.0์ ๋นํด์ ์๋๊ฐ 10๋ฐฐ ๋น ๋ฅด๋ค๊ณ ํ๋ฉฐ, ์ค์ ๋ก ์ฌ๋งํ๋ฉด ์ ๋ง ๊ทธ๋งํ ์๋์ฐจ๊ฐ ๋ฌ๋ค. AS 3.0์ ์ ๊ท ํํ์ ์๋๋ JavaScript์ 1.5๋ฐฐ๋ค. ๋์ฑ์ด ๋จ์ ๊ณ์ฐ์ด๋ผ๋ฉด AS 2.0์ ๋ช๋ฐฑ ๋ฐฐ๋ฅผ ๋๋๋ค. ์ด ์ด์ ๋ง์ผ๋ก๋ AS 3.0์ผ๋ก ์ฎ๊ฒจํ์ผํ ์ด์ ๋ ์ถฉ๋ถํ๊ธด ํด์๋๋ฌผ์ ๋จธ๊ธ๊ณ AS 3.0์ ์ตํ๋ ์ฌ๋๋ค๋ ์ฐจ์ฐจ ๋์ด๋๊ณ ์์ฅ์ ์์ฐฉํ...๋๊ฐ ํ์ผ๋ ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์ด๋ฏธ ์๊ณ ๋ค ์๋ฏ์ด ๋ชจ๋ฐ์ผ ์๋์ ๋๋์ HTML5์ ๋ณด๊ธ์ผ๋ก ์ธํด ํ๋์๊ฐ ๋งํ๋ค.. ์์ต. ๊ทธ๋๋ ์์ง์ Flex๋ AIR๋ ์๊ณ ํด์ 2.0๊ฐ์ด ์์ฃผ ์ํ์ง ๊ธฐ์ ์ด๋ผ๊ณ ๊น์ง๋ ํ๊ธฐ ์ด๋ ต๊ฒ ์ง๋ง 2008~10๋
๋ฌด๋ ต์ AS 3.0 ๋ฐ์ง ์ดํ์ ๊ทธ์ผ๋ง๋ก ๊ณผ๊ฑฐ์ ์๊ด. ํ๋๋ ํ๋์ ๊ธฐ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์
ํ๊ฒฝ์ด ๋จ์ํ ์นํ์ด์ง๋ฅผ ๊พธ๋ฏธ๋ ์ ๋๋ฉ์ด์
์์ค์ ๋ฒ์ด๋ ์คํ ๋์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์์ญ๊น์ง ํ๋๋๋ ๊ฑฐ ์๋๋ ํ๋ ๊ธฐ๋๋ ์์์ง๋ง ๋จ๊ฐ์ผ๋ชฝ์ผ๋ก ๋๋๊ณ ๋ง์๋ค. ์ด๋๋น๊ฐ ์๊ฐํ๋๋ก ์ ํ๋ ธ์ผ๋ฉด Java ๊ฐ์ ํฌ๋ก์คํ๋ซํผ ๊ฐ์๋จธ์ ์ ํ๋ฆฌ์ผ์ด์
ํ๊ฒฝ์ด ๋์์ ์๋ ์์๊ฒ ์ง๋ง... ??? : ๊ณํ๋๋ก ๊ทธ๋ฌํ ํ๊ฒฝ์ HTML5์์ ๋ค ์ด๋ฃจ์ด์ง๊ฒ ๋์๋ค.
์ ์ ํ๋ฏ์ด ํ๋์ CC๋ถํฐ๋ ์์ 3.0์ ์ธ ์๋ฐ์ ์๊ฒ ๋์๋ค. AVM1์ ๋ด๋ค๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ธ๋ฐ ์คํ๋ ค ์์๋ณด๋ค ๋ฆ๊ฒ ๋ฒ๋ ธ๋ค๋ ํ๊ฐ๋ ๋ง์ด ์๊ธฐ ๋๋ฌธ์ ๊ผญ ๋ถ์ ์ ํ ์ฒ์ฌ์๋ค๊ณ ๋ณด๊ธฐ๋ ์ด๋ ต๋ค. ์ธ์ ๊ฐ๋ ๋ฒ๋ ค์ผํ ๊ณผ๊ฑฐ์ ์ ์ฐ์ด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ด๋ฉฐ ์ค์ง์ ์ผ๋ก 2.0 ๊ธฐ๋ฐ์ ๊ฐ๋ฐ์ ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ์ ๊ฑฐ์ ๋ํ๋์๊ธฐ ๋๋ฌธ์ด๊ธฐ๋ ํ๋ค. ์ง๊ธ์ ์์์ผ ๋ญ ์ด๋๋น๊ฐ ํ๋์๋ฅผ ๋ฒ๋ฆฐ์์ ์ทจ๊ธํ๋ฉด์ 3.0๋ ์๋ ์ ์ฅ๋ดํ ์ ์๋ ์ ์ธ๊ธฐ๋ ํ๊ฒ ์ง๋ง....
Flex๋ ๋์์ด๋๊ฐ ์๋ ํ๋ก๊ทธ๋๋จธ ๊ณ์ธต์๊ฒ๊น์ง ํ๋์ ํ๊ฒฝ์ ์ ๊ณตํ๊ธฐ ์ํ SDK์๋ค๋ณด๋ ์ฒ์์ ํฐ ๋ฐํฅ์ด ์์์ผ๋ ํ๋์ CS3๊ฐ ๋์ค๊ณ AS 3.0์ ์ธ์ด๋ช ์ธ๊ฐ ํ๋์ ๊ฐ๋ฐ์๋ค์๊ฒ ์๋ ค์ง์ ์ ๊ณ์ ๋ถ์๊ธฐ๋ ๊ทธ์ผ๋ง๋ก ํผ๋์ ์นด์ค์ค์๋ค. ๋ฌด์๋ณด๋ค 2007๋ ์์ผ ์ธ์ด๋ช ์ธ๊ฐ ์ด๋์ ๋ ํ์ด ์กํ ECMAScript ์ 4ํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ๋ฒ์ ์ธ๊ทธ๋ฆฌ ๊ฐ์์์ด๋ฒ๋ ธ๋๋ฐ 2.0์ฒ๋ผ ๊ธฐ์กด ์ก์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ ES4์ ์์๋ฅผ ์ฝ๊ฐ ์ฒจ๊ฐํ ๊ฒ ์๋๋ผ ๊ทธ๋ฅ ES4์ ์ธ์ด๋ช ์ธ๋ฅผ ๊ฑฐ์ ๊ทธ๋๋ก ๋ค๊ณ ์๋ค.[6] ๋ฌธ์ ๋ ์ด ES4๊ฐ ๊ธฐ์กด์ ES3์ ๋นํด ๋๋จํ ๋ฐฉ๋ํ๊ณ ์ธ์ด์ ๊ธฐ์ ๋์ด๋๊ฐ ๋์์ ธ์์๋๋ฐ๋ค ๊ธฐ์กด์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ์ ์ [7]์ ํด๊ฒฐํ๊ฒ ๋ค๋ ๋ชฉ์ ์ผ๋ก ๋๋ฌด ๋ง์ ๋ถ๋ถ์ ์์ ๋๋ค๋ ๊ฒ. ์ฌ๋ด์ผ๋ก ๊ฒฐ๊ตญ ES4๋ ์์ํ ์ฐธ๊ฐ์ ์ฒด๋ค์ ์๊ฒฌ์ฐจ๊ฐ ๊ทน์ฌํด์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ค์์ผ๋ก ํ์ ๋์ง ๋ชปํ๊ณ ์์ด์ก๋ค. ๊ทธ๋ ๋ค๋ณด๋ ์ฌ์ค์ ES4 ๋ช ์ธ๋ฅผ ์ค์ ๊ฐ๋ฐํ๊ฒฝ์ผ๋ก ๊ตฌํํ ๊ตฌํ์ฒด๋ AS 3.0์ด ์ ์ผํ๋ค์ํผํ๋ฐ, ES4๊ฐ ์์ด์ง ์ด์ ์ค ํ๋๋ ๊ธฐ์กด์ ES3์ ๋นํด ๋๋ฌด๋ ๋ฐฉ๋ํ๊ณ ์ด๋ ค์์ก๋ค๋ ๊ฒ์ด์๊ณ ํ์ฌ๋ HTML5์ ํจ๊ป ์ ์ฐ์ด๊ณ ์๋ ES5๋ ES4๊ฐ ์๋ ES3์์ ์ ์ง์ ์ผ๋ก ๋ฐ์ ์ํค๋ ํํ๊ฐ ๋์๋ค.[8]
์ด์จ๊ฑฐ๋ ๊ทธ๋ ๋ค๋ณด๋ ๊ธฐ์กด์ AS 2.0์ ์ฌ์ด ์คํฌ๋ฆฝํ ์ ์ต์ํด์ก๋ ๋์์ด๋๋ค์๊ฒ๋ ํฌ๊ฒ์ดํธ๊ฐ ์ด๋ ธ๋ค. ๊ธฐ๋ณธ์ ์ธ ์์ฑ๊ฐ์ด๋ ๋ฉ์๋ ๋ฑ์ ๊ฐ๊ธฐ์ ๊ทธ๋๋ก ์ฌ์ฉ์ด ๋๊ธด ํ์ง๋ง, ๋ฒํผ ํด๋ฆญ์ด๋ ๋ง์ฐ์ค ์ค๋ฒ ๋ฑ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ฌ๋ณผ ์์์ ํด๊ฒฐํ ์ ์๋ค๋ ์ด๋ง์ด๋งํ ๋ณ๊ฒฝ์ ์ด ์๊ฒจ๋ฒ๋ ค์ ์ผ์ผ์ด ํ์๋ผ์ธ ๋๋ ๋ณ๋์ ํด๋์ค ํ์ผ์ ์ฝ๋ฉ์ ํด์ ์ฐ๊ฒฐ์์ผ์ผ ํ๋๋ฐ, ์ฌ๊ธฐ๋ฅผ ์ ์ธํ ๊ณณ์๋ AS๋ฅผ ์์ ์ฝ๋ฉํ ์ ์๊ฒ ํด๋จ๋ค. ์ต์ํ์ง ์์ ์ฌ๋์ ๋ฒ๊ฑฐ๋ก์์ ๋์ด์ ํ๊ธฐ์ฆ์ด ๋๋ค. ๊ฒฐ๊ตญ ๋์์ด๋๋ค์ ๋ฌธ๋ฒ์ ์๊ฒฉํด์ก์ง, ์ด๋ฒคํธ ๋ค๋ฃจ๋ ๋ฒ๋ ์ดํด๊ฐ ์๋์ง, ๋ฒํผ์ ์ฝ๋ฉ๋ ์๋์ง, ํด๋์ค๋ ๋ ๋ญ๋ฉฐ ํจํค์ง๋ ๋ ๋ญ๋... ํ๋ฉฐ ๋ฉํ์ด ๋๊ฐ๋ ๊ฒฝํ์ ํ๋ฉฐ 3.0์ ์ตํ์ผํ์ผ๋ฉฐ ๊ทธ๋ฌ๋ค๊ฐ ๋นก์ณ์ ๊ทธ๋ฅ 2.0์ผ๋ก ๋กค๋ฐฑํ๋ ์ฌ๋๋ ๊ฝค ์์๋ค. CS3๊ฐ AS 2.0๋ ํ์ํธํ์ ์ํด ์ง์์ ํด์คฌ๊ธฐ ๋๋ฌธ. [9] ๋ฐ๋๋ก Java์ ๊ฐ์ ๊ธฐ์ฑ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ณด๋ค ํก์ฌํ ๊ตฌ์กฐ๋ฅผ ๋๊ฒ๋๋ฐ๋ค ๊ธฐ๋ฅ๊ณผ ์์ ๋ ๋ฉด์์ ํ๊ฒฉํ ํ์์ ์ด ์์๊ธฐ ๋๋ฌธ์ ์ฝ๋ฉ์ ์ต์ํ ์ฌ๋๋ค ์ ์ฅ์์๋ ํ์ ํ๊ณ (ํ๋ก๊ทธ๋๋จธ์ ์ฌ๊ณ ๋ฐฉ์์ผ๋ก) ์ดํดํ๊ธฐ ํ๋ค์๋ 2.0๋ณด๋ค ํฉ๋ฆฌ์ ์ด๊ณ ์ฐ๊ธฐ ํธํด์ก๊ธฐ ๋๋ฌธ์ ํ์๋ฐ์๋ค.
์ธ์ด๋ด์ ์ธ ๋ฉด์์๋ ์๋ก์ด ์์๊ฐ ๊ฝค ๋ง์ด ๋์ ๋ ํธ์ธ๋ฐ, ํด๋์ค๋ 2.0์์๋ ์ฌ์ฉํ ์ ์์์ง๋ง ํจํค์ง, ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์ด ์ฝ๋๊ฐ ์๊ทผํ Java์ค๋ฌ์์ก๋ค. import๋ผ๋๊ฐ extends๋ผ๋๊ฐ interface๋ผ๋๊ฐ ์ด๋์ ๋ง์ด ๋ณด๋ ํค์๋๋ค์ด ๋ณด์ธ๋ค. ์์๋ ํด๋์ค ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ ๊ธฐ์กด์ ํ๋กํ ํ์ ๊ธฐ๋ฐ ์์๋ณด๋ค ํผํฌ๋จผ์ค๊ฐ ๊ฐ์ ๋์๋ค. XML๊ณผ ์ ๊ทํํ์์ ์ง์ ๋ค๋ฃฐ ์ ์๊ฒ ๋์๊ณ ๊ทธ ์ธ์๋ 2.0์์ ์ค๊ธฐ์ฐจ๊ฒ ์จ ์ ๋ผ๋ _(์ธ๋๋ฐ)๊ฐ ์ฌ๋ผ์ง๊ณ ์ปดํ์ผ๋ฌ๋ ์๊ฒฉํด์ก๋ค. ํ์ ์ฒดํฌ๋ ์ปดํ์ผ ํ์/๋ฐํ์ ์์ชฝ์์ ์ด๋ฃจ์ด์ง๋ฉฐ ๋ณ์ ์ ์ธ๋ ๋ฐ๋์ ๋จผ์ ํด์ผ ๋๊ฒ ๋ฐ๋์์ง๋ง, ์์ธ๋ ์๋ค.('var'๋ฅผ ์ฐ์ง ์๊ณ ํน์ ์์น์ ๋์ ํ๋ ๊ฒฝ์ฐ)
๋ํ AS 3.0์ผ๋ก ๋ง๋ ์ฝ๋๋ ์ปดํ์ผํ๋ฉด AS 1.0/2.0๊ณผ๋ ๋ค๋ฅธ ์๋ก์ด ํํ์ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ AS 3.0์ ๋ฐ์ดํธ์ฝ๋๋ ์๋ก์ด ๊ฐ์๋จธ์ ์ธ AVM2์์ ํด์์ ํ๊ฒ๋๋๋ฐ, AVM2์ ๋ฐ์ดํธ์ฝ๋๋ ๊ธฐ์กด์ AS 1.0/2.0์ ๋ฐ์ดํธ์ฝ๋์ ํธํ์ฑ์ด ์ ํ ์๋ค. ๋ค๋ง ํ์ํธํ์ ์ํด ํ๋์ ํ๋ ์ด์ด๋ ๊ธฐ์กด์ AVM1๋ ๋ด์ฅํ๊ณ ์์์ผ๋ฉฐ AS 1.0/2.0์ ๋ฐ์ดํธ์ฝ๋๋ ์ด์ชฝ์์ ๋ด๋นํ๊ฒ ๋๋ค. AVM2๋ ๊ตฌ์กฐ๋ฅผ ์๋ก์ด ์ต์ ํํจ๊ณผ ๋๋ถ์ด JIT๋ฅผ ๋์ ํ๋๋ฐ ๋๋ถ์ ํผํฌ๋จผ์ค๋ฉด์์๋ AVM1๊ณผ ๋น๊ต๊ฐ ๋์ง ์์ ์ ๋๋ก ๊ฐ์ ๋์๋ค. ๋น์ ํ๋์๊ฐ ์งํ๋ฐ๋ ์ด์ ์ค ํ๋๊ฐ ๋ฌด๊ฑฐ์ด ๋์์ด์๋๋ฐ ์ด๊ฒ์ ๋น์ ์ปดํจํ ์ฑ๋ฅ๋ ์ฑ๋ฅ์ด์์ง๋ง AVM1์ด ๊ตฌ๋ ธ๋(...) ํ์ด ๋งค์ฐ ์ปธ๋ค. ์ ๋๋ก ์ฝ๋ฉ๋ง ํ๋ค๋ฉด AVM2์์๋ ํ๋์์ ์ต๋ ๋์ ์ด์๋ ๋๋ฆฐ ์คํ์ด ์๋นํ ๊ฐ์ ๋ ์ ์์๋๋ฐ, ์ด๋๋น ์ธก์ ์ฃผ์ฅ์ผ๋ก๋ 2.0์ ๋นํด์ ์๋๊ฐ 10๋ฐฐ ๋น ๋ฅด๋ค๊ณ ํ๋ฉฐ, ์ค์ ๋ก ์ฌ๋งํ๋ฉด ์ ๋ง ๊ทธ๋งํ ์๋์ฐจ๊ฐ ๋ฌ๋ค. AS 3.0์ ์ ๊ท ํํ์ ์๋๋ JavaScript์ 1.5๋ฐฐ๋ค. ๋์ฑ์ด ๋จ์ ๊ณ์ฐ์ด๋ผ๋ฉด AS 2.0์ ๋ช๋ฐฑ ๋ฐฐ๋ฅผ ๋๋๋ค. ์ด ์ด์ ๋ง์ผ๋ก๋ AS 3.0์ผ๋ก ์ฎ๊ฒจํ์ผํ ์ด์ ๋ ์ถฉ๋ถํ๊ธด ํด์
์ ์ ํ๋ฏ์ด ํ๋์ CC๋ถํฐ๋ ์์ 3.0์ ์ธ ์๋ฐ์ ์๊ฒ ๋์๋ค. AVM1์ ๋ด๋ค๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ธ๋ฐ ์คํ๋ ค ์์๋ณด๋ค ๋ฆ๊ฒ ๋ฒ๋ ธ๋ค๋ ํ๊ฐ๋ ๋ง์ด ์๊ธฐ ๋๋ฌธ์ ๊ผญ ๋ถ์ ์ ํ ์ฒ์ฌ์๋ค๊ณ ๋ณด๊ธฐ๋ ์ด๋ ต๋ค. ์ธ์ ๊ฐ๋ ๋ฒ๋ ค์ผํ ๊ณผ๊ฑฐ์ ์ ์ฐ์ด๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ด๋ฉฐ ์ค์ง์ ์ผ๋ก 2.0 ๊ธฐ๋ฐ์ ๊ฐ๋ฐ์ ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ์ ๊ฑฐ์ ๋ํ๋์๊ธฐ ๋๋ฌธ์ด๊ธฐ๋ ํ๋ค. ์ง๊ธ์ ์์์ผ ๋ญ ์ด๋๋น๊ฐ ํ๋์๋ฅผ ๋ฒ๋ฆฐ์์ ์ทจ๊ธํ๋ฉด์ 3.0๋ ์๋ ์ ์ฅ๋ดํ ์ ์๋ ์ ์ธ๊ธฐ๋ ํ๊ฒ ์ง๋ง....
3. ์ฌ์ฉ๋๋ ๊ณณ[ํธ์ง]
์ก์
์คํฌ๋ฆฝํธ๋ ์ฃผ๋ก ํ๋์ ํ๋ ์ด์ด์์ ์ฌ์ฉ๋์ง๋ง, ํ๋์ ํ๋ ์ด์ด ๋ฟ๋ง ์๋๋ผ, ํ๋์ ํญ๋ชฉ์์ ๋ณผ ์ ์๋ ํ๋์ ํ์ ๊ธฐ์ ๋ค(FLEX, AIR, ํ๋์ ๋ผ์ดํธ ๋ฑ)์์๋ ๊ธฐ๋ฅ์ ์กฐ๊ธ์ฉ ๋ค๋ฅด์ง๋ง ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
[1] ๋ค๋ง ํ๋์๋ ๋งคํฌ๋ก๋ฏธ๋์ด๊ฐ ์ฒ์๋ถํฐ ๊ฐ๋ฐํ ๊ฒ์ ์๋๊ณ ๊ฒฝ์์
์ฒด์๋ ํจ์ฒ์จ์ด๋ธ๋ฅผ ์ธ์ํ๋ฉด์ ๊ทธ๋ค์ ์ ํ์ด์๋ ํจ์ฒ์คํ๋์ ์ ๋๋ฉ์ดํฐ๋ฅผ ๊ฐ๋ํด์ ๋ด๋์ ๊ฒ์ด๋ค.
[2] ๋น์์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ง์ดํฌ๋ก์ํํธ์ JScript ๋ฑ์ผ๋ก ํํธํ๋๋ ์์์ ๋ณด์ด์ ๋ท์ค์ผ์ดํ ์ธก์ ์ ์ฒญ์ผ๋ก ECMA(์ ๋ฝ ์ปดํจํฐ ์ฐ์
ํํ)์์ ํ์ค๋ฌธ๋ฒ๊ณผ ์ธ์ด๋ช
์ธ๋ฅผ ์ ํ๊ธฐ๋ก ํ ๊ฒ์ด ECMAScript์ด๋ค. ํต์นญ ES๋ผ๊ณ ์ค์ฌ ๋ถ๋ฅด๋ฉฐ AS 1.0~2.0์ ์ํฅ์ ์ค ES3๋ ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ 5.5๋ถํฐ ํ์ฌ๋์์ผ๋ ์๋น๊ธฐ๊ฐ ํ์คํ ์ด์ ์ ๊ตฌ ๋ฌธ๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ๋ MS์ ๋
์์ ๊ตฌํ์ธ JScript์ ๊ณต์กดํ๋ค.
[3] ๋จ, ๋ด๋ถ์ ์ผ๋ก๋ ํ๋กํ ํ์
๊ธฐ๋ฐ์ OOP๊ฐ ์ ์ง๋์ง๋ง ๋ฌธ๋ฒ์ ์ผ๋ก๋ง ํด๋์ค๋ฅผ ์ฐ๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค. ํํ ECMAScript 6์ ํด๋์ค์ ๋น์ทํ ๊ตฌ์กฐ.
[4] ๊ฐ๋ ์ฐ๋ผ์๋ ํ์๋ง ๊ฐ์๊ฑธ๋ก ๊ด๊ณ ํ๋ "ํํ์ด์ง XX๋ง์์ ๋ง๋ค์ด ๋๋ฆฝ๋๋ค!!" ๊ฐ์ ๊ณณ
[5] ํ๋์ ํ๊ฒฝ์์ ๊ตฌ๋๋๋ ํฌ๋ก์คํ๋ซํผ RIA ๊ฐ๋ฐํ๊ฒฝ. SDK ํํ๋ก ๋์ด์๋ค. ๋ง์ธ์ฆ์จ ํ๋์ IDE ์ด๋ฐ๊ฑฐ ์์ด๋ ์์ง๋ก ์ก์
์คํฌ๋ฆฝํธ๋ง ๊ฐ์ง๊ณ ํ๋์ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฝ๋ฉํ ์ ์๋ ํ๊ฒฝ์ด๋ผ๋ ์ด์ผ๊ธฐ. ํ์ฌ๋ ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์์ ๊ด๋ฆฌํ๊ณ ์๋ค.
[6] ์ด๋๋น๋ ๋น์ ES4 ์์ํ์ ์ผ์์ด์๊ณ AS 3.0์ ์ฑ๊ณต์ ์ํด ES4์ ๋๋จํ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ๊ณ ์์๋ค. ๋์ค์ ์ด๋๋น๋ AVM2์ ์์ค์ฝ๋๋ฅผ 'Tamarin'์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ชจ์ง๋ผ ์ฌ๋จ์ ๋๋ค์ด์
ํด๋ฒ๋ฆฌ๋ ๋์ธ๋ฐฐ์ค๋ฌ์ด ํ๊ฐ๊น์ง ๋ฒ์ด๋๋ฐ ์ด๊ฒ๋ ๋ค AS 3.0๊ณผ ES4์ ์ฑ๊ณต์ ์ธ ์์ฐฉ์ ์ํ ํ๋ณด์๋ค.
[7] ์ธ์ด ์์ฒด์ ์ถ๋ฐ์ด ๊ฐ๋จํ ์ธํฐ๋์
๊ตฌํ์ ์ํ ์คํฌ๋ฆฝํ
์ด๋ค๋ณด๋ ๊ธฐ๋ณธ ์ค๊ณ๊ฐ ์ข ํ์ ํ๋ค๋ ํ๊ฐ๊ฐ ๋ง๋ค. ์ ์ด์ ์ฐฝ์์์ธ ๋ธ๋๋ ์์ดํฌ ์ ์์ด ์ธ์ด๋ช
์ธ๋ฅผ ๋จ 10์ผ๋ง์ ์งฐ๋ค๋ ๋ฏฟ๊ธฐ ํ๋ ์ ์ค์ด ๋ด๋ ค์ค๋ ์ธ์ด๋ค.
[8] ์ฌ์กฑ์ด์ง๋ง 2015๋
์ ์ ๋ ES6์ ์ค๋ฉด์ ES4์์ ํ๋ ค๋ค ์์ด์ง ์ผ๋ถ ์์๋ฅผ ๊ฐ์ ธ์๋๋ฐ ์ด ๋๋ฌธ์ธ์ง ES6 ์ฝ๋๋ฅผ ๋ณด๋ค๋ณด๋ฉด ๊ต์ฅํ AS 3.0๊ณผ ๋น์ทํด๋ณด์ธ๋ค.