본문 바로가기
EtcLang/Flex&As

Flex를 시작하는 사람들을 위한 학습가이드 제시

by windrises 2007. 7. 10.
Flex프로젝트를 시작하기 위해 이 Flex란 놈을 어떻게 시작해야할 지 막막했을 때가 생각납니다. 지금 생각하면 Flex도 분명 웹프로그래밍이고 웹구조를 크게 뒤엎는 완전한 새로운 개념의 프로그래밍이 아니지만 Flex를 처음 시작하는 사람들한테는 RIA, X-internet 등과 같은 다소 생소한(?) 개념의 이해부터 시작해서 기존의 웹페이지에서는 보기힘든 역동적으로 화려하게 움직이는 데모샘플들을 보면서 "이건 도대체 어떻게 프로그래밍으로 만들며 도대체 어떻게 시작해야하지?"하는 막연함 같은 것이 있을 것 같습니다. 동의할 수 없는 발언일 수도 있지만 주로 java/jsp기술로만 개발해 본 저로서는 처음에는 무척 혼란스러웠습니다. 막막하더군요. 따라서 다음과 같은 순서로 이 Flex를 배우는 것이 어떨까하는 생각에 학습가이드를 제시하고자 합니다.

1. Flex 기본학습
RIA란 무엇인가부터 시작해서, Flex2의 구성 및 개요, Flex2 기본 컴포넌트를 사용한 프로그래밍, FDS2를 이용한 데이터베이스 프로그래밍 등에 대한 기본을 학습합니다.

Abode 공식 메뉴얼(live docs) 중,

- 'Getting Started with Flex 2',
- 'Flex2 Developer's Guide',
- 'Flex2 Language Reference'

가 이에 해당되며 국내 출판된 서적으로는,

- '예제로 배우는 Adobe 플렉스2(에이콘출판사)',
- '개발자를 위한 플렉스2 실무테크닉 148(성안당)',
- '디자이너를 위한 플렉스2 실무테크닉 148(성안당)'

이 있습니다. 많은 자료를 열거했지만 이 중 '예제로 배우는 Adobe 플렉스2(에이콘출판사)'란 책 하나만 보면 기본은 다 커버할 수 있을 것 같습니다. Adobe의 옥상훈 차장이란 분이 쓰신 책으로 JCO회장이기도 하고 Flex2 관련 이 세계에서 이름 많이 날리시는 분이시죠. 책 꼼꼼하니 잘 쓰여진 것 같습니다. 전 처음에 Adobe에서 쓰는 교육교재('Flex2:Developing Rich Client Applications')로 첫 학습을 시작했지만 이건 구하기도 쉽지않은 것 같고 제 생각에는 옥상훈씨가 쓰신 책이 더 좋은 것 같더군요. 저랑 아무 관계도 없는 분이긴 하지만 아무튼 추천합니다.


2. 연습 프로젝트 수행
게시판 제작 등과 같은 간단한 연습 프로젝트를 수행하여 실제 개발 감각을 익혀봅니다.

기본 서적에도 실습 프로젝트를 많이 다루긴 하지만 실제로 자신이 생각하는 어플리케이션하나를 만들어 보는게 꼭 필요하다고 생각합니다. 책에 나온 프로젝트를 따라하는 경우 책을 그냥 막역히 따라하는 경우가 어쩔 수 없이 많게 되니깐요. 연습 프로젝트를 해보면서 'Flex2 Component Explorer'도 찾아보게되고 앞에 언급한 Abode 공식 메뉴얼(live docs)들도 찾아보게 되면서 자연스럽게 더 현실적인 감을 익힐 수 있다고 봅니다.
여기까지 진행하면 Flex의 기본은 다 된거라고 볼 수 있습니다. 어느 프로젝트건 투입되도 일단 따라갈 수 는 있을 것이라 생각됩니다. 실제 국내 프로젝트의 경우 ActiveX, Flash, jsp/asp 등과 서로 연동하여 개발할 일이 많을텐데 이런 경우는 솔직히 혼자하는 연습프로젝트에서는 환경이 잘 나오지 않을 겁니다. 이런 것들은 실제 업무수행시 여러 레퍼런스를 토대로 충분히 해결할 수 있다고 봅니다. 또한 이런 것까지 혼자 학습하는 상황에서 꼼꼼히 따지고 가자면 분명 학습이 지루해질 수 있다는 생각에 여기서는 더이상 언급하지 않겠습니다.


3. 기본 컴포넌트의 사용 및 이펙트 활용
기본 컴포넌트를 이용하여 UI스타일 제작 및 이펙트 사용에 대한 연습을 합니다.

Flex의 강점인 역동적이고 화려한 UI를 만들기 위한 연습이란 의미에서 필요하다고 생각합니다. Flex의 기본프로그래밍 능력과 함께 'Flex2 Style Explorer', 'Flex2 Filter Explorer' 등을 참고하면서 각 기본컴포넌트의 속성을 활용하여 구성할 수 있는 UI를 창의적으로 시도해 보고 이리저리 동적으로 화면을 구성하는 방법을 고민해 보는 것이 한 방법일 수 있겠습니다.
하지만 여기서 염두해야할 것이 있습니다. Flex는 무조건 역동적이고 화려한 UI의 웹을 만들기 위한 기술은 아닙니다. 사용자의 관점에서 좀 더 웹이 편하고 직관적으로 다가올 수 있는 UI를 만드는 것이 중요합니다. 그러기 위해서 Flex의 화려하고 역동적인 기능을 이용하는 것입니다. 실제로 단순히 화려하기만한, 역동적이기만한 UI를 만들기 위해서 Flex를 도입하는 것은 오히려 Flex를 도입하지 않는 것보다 못할 수 있습니다. 많은 Flex개발자들이 말합니다. 'Flex스러운 기획과 디자인이 Flex를 빛나게 한다.' 다만 제가 이 UI스타일 제작과 이펙트의 사용을 학습가이드에 제시한 이유는 이런 Flex의 강점을 살릴 수 있는 UI를 기획하고 만들기 위해선 먼저 Flex란 기술이 표현할 수 있는 수준을 알아야 Flex스러운 기획과 디자인에 대한 아이디어도 나올 수 있고 또 나중에 구현도 할 수 있을 것이란 생각때문입니다. 하지만 다시한번 강조하지만 단순히 개발자의 자신만 희열을 느낄만한 화려하기만한, 역동적이기만한 UI를 추구하는 것은 꼭 지양해야하겠습니다.


4. 커스텀 컴포넌트 제작
Action Script 3.0 프로그래밍을 통해 커스텀 컴포넌트 제작해 봅니다.

이제 기본 컴포넌트로는 어느정도 화면을 구성하고 효과도 주며 사용할 수 있는 수준이 되었습니다. 하지만 이제 이 순간부터는 기본 컴포넌트의 활용으로는 한계를 느끼는 부분이 하나씩 생기게 됩니다. 요구사항 자체가 구체적으로 되기도 하고 또 많은 Flex 어플리케이션을 경험하게 되면서 눈높이가 높아지고 새로운 시도에 대한 욕구와 아이디어가 생겨나게됩니다. 이제 직접 자신만의 컴포넌트를 만들 필요성이 생기는 것입니다.

Abode 공식 메뉴얼(live docs) 중,

- 'Creating and Extending Flex2 Components'

를 학습하면서 많은 오픈소스화된 커스텀 컴포넌트의 소스를 분석하면서 따라하는 것도 좋은 방법일 것 같습니다.


5. 프레임웍 학습
Flex프레임웍에 대하여 알아봅니다.

현재 Flex와 관련된 프레임웍 중 가장 인지도가 높은 프레임웍은 캔곰프레임웍(Cairngorm Framework)입니다. 아직 저도 이 프레임웍에 대해 깊은 지식이 없어 구체적인 이야기는 할 수 없지만 어쨋튼 엔터프라이즈환경의 수준까지 Flex를 도입한다고 생각했을 때 프레임웍에 대한 관심은 꼭 필요하다고 생각합니다.


6. 기타학습
기타 더욱 깊은 내공을 위해 나머지 필요한 Abode 공식 메뉴얼(live docs)에 대한 학습 및 Mashup(야후맵, FABride 등)을 통한 구현기술에 대한 역량강화, Flex 어플리케이션에 대한 퍼포먼스 평가 및 튜닝 등과 같은 최적화에 대하여 연구 등이 있겠습니다.

남은 Abode 공식 메뉴얼(live docs) 및 기타 레퍼런스로는 다음과 같은 것들이 있습니다.

- 'Building and Deploying Flex 2 Applications'(live docs)
- 'Programming ActionScript 3.0'(live docs)
- 'Using Flex Builder 2'(live docs)
- 'Flex Data Services 2 Java Reference'(live docs)
- 'Flex Install Guide'(pdf)
- 'Flex2 Migration Guide'(pdf)
- 'Flex2 Primitive Explorer'(explorer)
- 'Flex2 Help'(builder help)

제시한 학습가이드는 제 경험과 생각을 토대로 제시한 것으로 개인적인 관심 및 능력에 따라 건너 뛰거나 순서를 변경해도 상관이 없습니다. 부디 Flex를 처음 시작하는 개발자에게 Flex에 입문하는데 조금이나마 도움이 되길 바랍니다.