네이버 블로그 페이지에 있는 태그 클라우드(최근 인기 태그)를 AS 3.0으로 만들어보도록 하겠습니다.


이걸 만드는 이유는 제가 모 회사의 면접에서 실기 테스트로 만들었었기 때문입니다.(제가 만들 내용은 시험문제로 나온 것과는 약간 다릅니다) 그리고 아르바이트로 이걸 제작해달라고 들어온 적도 있지만 단가가 맞지 않아 안하게 된 적도 있고요.


그러니 입사을 원하시는 신입개발자들에게 뭐 이런 것이 나온다 정도의 내용도 될 수 있을 것 같기도 하고...알바를 어떤 식으로 한다도 알 수 있을 거고요.
시험문제야 당연히 언제든 바뀌는 것이니 이거 달달 외우고 가면 붙을 거라고 생각하시는 바보같은 분들이 없기를 바라며 시작하겠습니다.



어플리케이션의 기능은 다음과 같이 정의하겠습니다.

1. 태그내용 표시
2. 당연히 태그는 겹치거나 하지 말아야 한다
3. 태그의 유저 인기도를 시각적으로 표시해야 한다 (컨텐츠로서의 기능)
4. 노출의 중요도를 (태그를 기업 광고의 연장으로 생각할 수도 있다) 시각적으로 표시해야 한다 (상업적으로서의 기능)
5. 사용자 이벤트는 태그 클릭시 페이지 이동으로 한다

여기까지가 클라이언트의 요청일 것입니다.

자, 클라이언트와 기간과 페이 협의를 끝내고 계약서를 쓴 후 디자인을 받았다면 이제 진짜 작업에 들어가야합니다.


///////////////////////////////////////



어플리케이션을 만들기 위해 프로그램 흐름도를 대충 생각해보겠습니다. (사실 짬빱 먹고 나니 이런건 잘 안하게 됩니다. 귀찮고 어차피 그냥 머릿속에서 바로 그려지니깐... 하지만 강좌니깐 나열해보겠습니다)


플래시 로드 > 로딩화면 구성 > 서버의 data.xml 페이지 로드 > xml 을 배열로 파싱 > 로딩 화면 삭제 > 화면 생성

실제 프로그램 흐름도를 그리려니 포토샵 열기가 귀찮아 그냥 화살표로 썼습니다.

자, 그럼 이 흐름이 적당한 것인지 생각해봐야 할 때입니다.


1. 배열 대신에 DataProvider class 로 만들고 DataChangeEvent 를 발생시킬 수도 있겠지만 클라이언트가 원하지 않은 오버스펙으로 작은 어플리케이션을 괜히 무겁게 할 필요는 없다고 생각합니다. (이 말이 무슨 말인지 모르는 분들은 그냥 무시해도 상관 없습니다)

2. xml 이 로드된 후 파싱 이전에 로딩 화면 삭제가 들어가야 할 것 같기도 합니다만 큰 차이가 없기도 하거니와 큰 양이라면 시간이 걸릴 수도 있는 것이니 파싱 이후로 뒀습니다.

3. 다시 생각해보니 data.xml 의 크기가 작을테니 로딩화면은 필요가 없을 것 같습니다


그럼 다시 써보죠.

플래시 로드 > 서버의 data.xml 페이지 로드 > xml 을 배열로 파싱 >화면 생성

자, 그럼 다음 글에서 실제 코딩에 들어가도록 하겠습니다. 물론 언제 쓴다는 기약은 없습니다 :)




p.s. 잘못 만들었기 때문인지 이력서의 내용이 문제인지 면접에서의 태도가 문제인지 연봉이 문제인지는 모르겠지만 참고로 저는 그 회사를 낙방했습니다. :) 제가 누누히 말하잖습니까, 저는 하수라고요... ㅎㅎㅎ

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 미나토

Trackback Address :: http://www.minarto.com/trackback/99 관련글 쓰기

  1. Subject: Flash CS3, Flex 2.0.1 간의 데이타 교환

    Tracked from iamyhs 2008/01/04 17:33  Delete

    개발환경 Flex 2.0.1 + Flash CS3AS 3.0 방식으로 개발해 보지 않았거나, 했지만 Flex 2.0 이상의 에서 쓸 용도로 개발해 보지 않았다면 참고하십시요.FlexComponentKit 쓰게 되면, CS3 에서 swc 콤포넌트를 만들어서 Flex 에서 그대로 가져다 쓸 수 있습니다.첨부된 소스를 참고 하십시요.핵심은 1)Event 모델로 데이타를 주고 받는것과,생성자에서 DataChangeEvent.DATA_CHANGE 이벤트 리...

댓글을 달아 주세요

  1. Favicon of http://www.iamyhs.com BlogIcon 양현석 2008/01/04 17:19 Address Modify/Delete Reply

    >1. 배열 대신에 DataProvider class 로 만들고 DataChangeEvent 를 발생시킬 수도 있겠지만 클라이언트가 원하지 않은 오버스펙으로 작은 어플리케이션을 괜히 무겁게 할 필요는 없다고 생각합니다. (이 말이 무슨 말인지 모르는 분들은 그냥 무시해도 상관 없습니다)

    할꺼면 저 방식으로 강좌를 해.

    슬램 덩크에 비슷무리한 대사 잇지 않냐? "대충 하는건 못봐"

    그리고 너도 알다시피 그 개념이 무척 중요해.

    • Favicon of http://www.minarto.com BlogIcon minarto 2008/01/04 18:30 Address Modify/Delete

      저 이거 그냥 모 카페 등급 올리려고 쓴거예요... 누구 가르치고 말고 하는건 귀차니즘 때문에 안해요...ㅡ.,ㅡ;;;