Runtime AS3 Parser

as3는 컴파일러로 컴파일 하면 실행 가능한 swf가 되는데 왜 구지 런타임에 파싱하여 실행해야 할까요?

일단 이게 궁금한 단계면 이 포스트가 전혀 흥미 없을 테고, ‘런타임에 작은 as3조각이라도 파싱된다면 얼마나 좋을까?’ 라고 느낀 적이 있다면 매우 재밌는 포스팅일 겁니다. 그래서 일단 왜 런타임 as3파서가 필요한지 차근차근 설명해보겠습니다.

Continue reading ‘Runtime AS3 Parser’ »

TAF로 개발된 샘플 #1

소스를 그대로 올려서 주석으로 분석하겠습니다. TAF가 실제 개발 프레임웍으로 어떻게 작동되고 그 결과물은 어떻게 나오는지 이해하기 위해서는 이 방법이 가장 좋은 것 같습니다.

프로그램 개요

만들어보려 고 하는 프로그램은 간단한 모델 뷰어입니다. TAF는 내부적으로 2D와 3D 모두 away를 이용해서 그립니다. 따라서 Sprite나 Bitmap, Shape같은 객체를 아예 사용하지 않습니다. 쨌든 호스트코드 입장에서 신경쓸 건 아니고 TAF하고만 대화하면 됩니다. 간단히 기능을 살펴보면 다음과 같습니다.

  • 2개의 남녀 모델을 로드하여 화면 중앙에 배치한다.
  • 클릭하면 줌인아웃이 토글된다.
  • 오버하면 회전하고 아웃하면 멈춘다.

뭐 이 정도 되겠습니다. 하는 일이 없네요 ^^; 이 간단한 어플리케이션을 TAF로 작성해 보겠습니다.

Continue reading ‘TAF로 개발된 샘플 #1’ »

describeType의 함정

왠일인지 얼마 전에 완성했던 TAF의 embed자원 처리기가 디버깅 모드에서는 정상 작동하는데, 릴리즈에서는 제대로 작동하지 않고 에러가 나는 것을 발견했습니다. TextField로 미친 듯이 로그를 찍어본 결과 당연하지만 당혹스런 사실을 확인했습니다.

//디버그 버전으로 얻은 XML
<variable name="imsge1" type="Class">
	<metadata name="Embed">
		<arg key="source" value="embed/back.png"/>
	</metadata>
</variable>

//릴리즈 버전으로 얻은 XML
<variable name="imsge1" type="Class" />

Main클래스의 인스턴스를 describeType함수에 넘겨 받은 XML이 다르게 생겼다는 겁니다. 특히 embed처리의 핵심인 metadata가 릴리즈버전에선 완전히 제거되어있습니다.

상황이 이렇다보니 metadata를 기반으로 파싱했던 TAF의 embed로직이 막혀버린 것입니다. 따라서 과거의 클래스 이름규칙 기반으로 복귀해야 하나 아니면 초기화 시에 인스턴스를 하나씩 만들어서 테스트를 해봐야 하나 고민 중입니다. 애시당초 자동 초기화가 목표였으니 아마 인스턴스화를 통한 초기화를 선택할 가능성이 높습니다. 이것도 완성되면 TAF쪽에 포스팅을 해보겠습니다.

결론

당연하지만 릴리즈 버전은 여러 가지 방법으로 swf의 용량을 줄이는군요. 클래스의 정의부도 기타 정보를 완전히 제거하고 매우 가볍게 유지하고 있었습니다. 혹시 describeType함수의 결과가 metadata외에도 차이가 나는 부분이 있다면 주저말고 댓글 달아주세요.

Developer Book review 10.07.01

책이 하루 걸러 도착했군요. -.-;

요즘엔 거의 아침마다 2시간 정도 스타벅스에서 놀다가 사무실에 들어갑니다. 거의 포스팅을 하는 시간입니다만 이 때 제 동반자가 얼마 전에 성능 테스트로 구입한 넷북입니다. 오늘은 책을 찍을 사진기가 없어서 넷북에 딸린 캠으로 찍었습니다만 참 구리구리하군요.

사진 005

Debug It! 실용주의 디버깅

경력이 오래된 개발자와 초보 개발자와의 차이는 단순히 개발할 수 있다 없다 정도가 아닙니다. 게다가 유연하고 견고하며 확장성있는 프로그램은 바람직하지만 납품 받는 입장에선 돌아가기만 하면 됩니다.

Continue reading ‘Developer Book review 10.07.01’ »

Developer Book review 10.06.30

주문한 책이 도착했습니다. 원래 기대하던 책인데 읽어보니 과연 내용이 절 실망시키지 않아 즐거워하고 있습니다.

IMG_2057

1. 3D in FLASH

Away3D 개발자들이 직접 집필한 away3D입문서 입니다. 사실 openGL, D3D, PV3D, Away3D 등 뭐가 되었든 기본적으로 3D를 pc에서 구현하는 방법은 대동소이합니다.

카메라와 뷰포트를 변환하고, 오쏘고날모드와 프러스텀모드를 이해하고, 객체에 대해서는 버티스-페이스-세그먼트-매쉬 로 이어지는 자료구조를 이해하며, 빌보드와 스프라이트를 공부하고 나면 대략 원하는걸 구현할 수 있습니다.

보다 고급으로 들어가서 컬링, 재질, 라이팅을 이해하고 범프, 노말맵을 마스터한 뒤 모델링 임포트, 골격계 애니메이션을 익히면 이론은 끝입니다. 그 뒤엔 각 엔진별로 파이프라인 최적화나 버퍼링 최적화(주로 게임프로그래밍젬 시리즈에서 다루는 것들^^) 해주고 난 뒤 파티클 시스템을 이펙트 시스템으로 발전시켜 가는 수순을 밟게 되죠.

Away3D는 사실 현재 비견할 수 없는 최강의 플래시 3D프레임웍입니다. 대부분의 쉐이딩과 렌더링 로직이 픽셀벤더로 이전했고 기본적으로 노말맵을 지원하기 때문에  Away3D가 그려내는 화면은 도저히 플래시라고는 믿을 수 없는 퍼포먼스와 품질을 자랑합니다.

이 책은 이러한 away의 개괄적인 전체 내용을 처음부터 끝까지, 이론에서 실기까지 다룹니다. 2010년도 플래시 3D를 배우고 싶으시다면 역시 이 책입니다.

이제 좀 플8때부터 내려와 땜빵으로 기능을 덕지덕지 막아온 프레임과 헤어질 시간입니다(3.x에서 다시 만나 보시는게 좋겠죠 ^^)

2. 실전 jQuery쿡북

그러니까 사실은 이미 제가 jQuery책이 많습니다. 근데 또 산 이유는 책이 쿡북이다보니 일부 챕터에서 걍 가져다 쓸 소스들이 있기 때문입니다. 제가 개발하면 별로 상관없지만 직원들이 제이쿼리로 개발하기 때문에 그들이 고심할 시간을 줄이기 위해 마련해봤습니다. 하지만 인간들이 책을 안봐서…

책은 좋습니다만 아직 제이쿼리 책을 한 권도 안 샀다면, 저 번에 구입한 제이쿼리1.3을 조금 더 추천하는 바입니다. 두 번째 책을 산다면 역시 이거죠.