메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

IT/모바일

Flash MX - 클라이언트 애플리케이션 개발 도구 III

한빛미디어

|

2002-05-20

|

by HANBIT

8,340

저자: 조요섭(cyscys@netian.com)

Flash MX를 다루는 마지막 기사이다. 이전 기사에서 플래시의 정의와 기능에 대해 살펴보았으니 본 기사에서는 플래시의 활용분야와 한계에 대해 살펴볼 것이다. 플래시에 관심이 있는 독자들에게 이 기사가 도움이 되길 바라며 마지막으로 플래시의 미래를 살펴보자.

[1] 활용 분야

플래시는 개발툴인 동시에 저작툴이기 때문에 그 활용분야가 다양하다. 그러나 지금까지는 애니메이션이나 게임, 인터넷 광고 등에만 주로 사용되었다. 종종 자바수준의 애플리케이션으로 활용하는 실험적 사이트들이 등장하긴 했지만 일반 사용자들은 이를 보고 어리둥절해 했을 뿐 "flash로 이런 것까지?"라는 생각을 한 사람은 극소수였다.

지금부터는 웹마스터가 실전에서 플래시 활용을 제대로 할 수 있는 방법을 소개할 것이다. 보통, 까다로운 고객들과 상사들을 상대해야 하는 웹 마스터들은 플래시 사용을 꺼리는 경우가 많다. 왜냐하면 플래시가 화려해 보이기는 하지만, 비효율적이고 사용성이 떨어진다고 생각하기 때문이다. 지금까지 플래시가 주로 사용된 곳은 애니메이션이나 특수효과같이 감성적인 요소가 중심이 된 활용이 대부분이었다. 그래서인지 플래시는 주로 엔터테이먼트 사업등에나 어울리고 내가 상대해야 할 고객과는 상관이 없다고 생각한다. 이것은 틀린 생각이다. 정보를 전달해야 하는 웹사이트라면 플래시는 어디든 활용될 수 있다. 본 기사에서는 flash가 "정보 전달"에 어떻게 사용될 수 있는지 그 대표적인 분야를 소개해 보도록 하겠다.

데이터 가시화 (Data Visualization)

데이터 가시화란 말 그대로 데이터를 쉽게 보여준다는 것이다. 쉬운 예로 간단한 그래프 등을 생각하면 된다. 실시간 주가 그래프나 액셀에서 사용되는 원형, 막대형 그래프 등이 모두 데이터 가시화의 예이다. 인터넷에서는 서버에 저장된 숫자나 기타 데이터를 인간이 쉽게 인지할 수 있도록 이를 수치화 하여 화면에 표시하는 것이다. 물론 웹 마스터는 이것이 서로 연동되게 해야 한다. 날씨정보를 표시하는 gif 파일을 생각해 보자. 해, 구름, 온도계, 지도 등.. 분명한 패턴이 있음에도 불구하고, 서버는 브라우저에 항상 일정량의 그림 파일 전체를 보내야 한다. 또한 서버는 이러한 데이터들을 하나의 gif 파일로 합성하기 위해 CPU를 사용해야 한다. 그렇지만 플래시는 이를 매우 효과적으로 처리할 수 있다. 플래시 플레이어는 브라우저와 독립된 클라이언트로서 서버와 통신을 할 수 있으며, 미리 짜여진 로직에 따라 애니매이션을 바꿀 수 있다. 즉 플래시 플레이어와 서버는 "25도, 서울, 흐림, 비가 내릴 확률 20%"같은 데이터만 통신 하고, 이를 받은 플레이어는 로직에 따라 "흐림" 표시를 화면에 보여주면 된다. 게다가 swf 파일은 벡터 기반이기 때문에, gif같은 비트맵 포맷에 비해 크기도 작다. 날씨 정보인 경우는 모든 면에서 gif보다는 swf를 사용하는 것이 효율적이다. 만약 방문자가 10배 늘어나면 이러한 효율성 차이는 10배로 커지고, 이 때문에 서버를 한대 더 늘여야 할 지도 모른다. "새로 고침"을 해야 할 경우 불필요하게 다시 불러오게 되는 HTML까지 고려한다면 그 차이는 더욱 커진다.

"자바로도 이렇게 할 수 있지 않는가?"라고 생각하는 사람도 있을 것이다. 그렇지만 불행하게도 일반 웹 사용자들은 강력한 기능에도 불구하고 자바를 그렇게 좋아하지는 않는다. 컴퓨터가 느려지는 경험을 하는 사람이 많고, 알 수 없는 에러에 당황하는 경우도 많기 때문이다. 윈도우 XP등 자바 가상 머신(JVM)이 없는 경우도 있고, 10M에 육박하는 가상 머신을 설치하는 것도 부담스러운 일이다. 사용자 측면뿐 아니라 개발 생산성와 질적인 측면에서도 마찬가지이다. 플래시로 훨씬 빨리 개발할 수 있을 뿐만 아니라, 디자인과 프로그램도 쉽게 분리할 수 있기 때문에 유지 보수도 더 효율적이다. 영어에 익숙하다면 E*trade사가 어떻게 활용했는가 여기서 직접 보길 바란다.

또한 웹 마스터가 효율적이고 비용면에서 가벼운 데이터 가시화를 웹에서 자유롭게 활용할 수 있다면, 웹은 좀더 쉽고 직관적이 될 수 있다. 문서로 화면에 뿌려주는 것에 익숙한 우리들은 그저 깔끔하게 정보를 표시하면 된다고 생각하고 일반인들도 거기에 만족하지만 현재의 웹을 보면 많은 정보들이 화면의 한 부분을 차지하고 있음을 보게 될 것이다. 예를 들어 풍속을 생각해 보자. 아마 대부분의 사이트에서는 풍속을 "1m/s"정도로 표시할 것이다. 이를 보는 사람들이 신경써서 이 텍스트를 읽지 않는 한 풍속은 여전히 인지하기 어렵다. 만약 플래시를 사용해 풍속계가 돌아가는 애니메이션을 풍속의 크기에 따라 속도를 다르게 해서 보여준다면 어떨까? (또는 깃발이 펄럭이는 모습)

더 나아가, 반드시 시각적 요소뿐만 아니라, 소리 등을 혼합해서 사용할 수 있다. 음성 정보는 시각적 착각을 보안해 줄 수 있다. "100,000원"이라고 표기된 시각정보에 "십만원" 같은 소리 정보가 추가되면 정보 전달 효과는 더 확실해 진다. 제 3시장에서 일어나는 잘못된 거래는 상당수가 거래량과 가격을 혼동하는 실수로 인해 발생된다고 한다(100원 짜리를 1000원에 사는 일). 따라서 고객의 시각인지에만 의존하여 모든 책임과 위험을 전담시키는 것은 위험하다.

새로운 GUI

게임이 아닌 모든 소프트웨어는 표준 윈도우 GUI와 마우스의 조작으로 사용하게 되고, 사용자는 메뉴, 버튼, radio 버튼, 선택 상자, 풀다운 메뉴, text 입력상자 등을 통해서 정보를 입력하게 된다. 브라우저도 예외는 아니어서 개발자들이나 디자이너들은 이를 따를 수밖에 없다. 문제는 어떤 정보들은 이러한 요소들을 사용하여 입력받는 것이 어렵거나 번거로울 수 있다는 것이다. 예를 들어 우선순위를 입력받아야 한다고 해보자. 2개의 리스트 박스와 몇 개의 버튼으로 이 문제를 해결할 수는 있지만 이는 사용자에게도 개발자에게도 어려운 방법이다. 흔히 접하게 되는 예로, 국적을 입력하는 풀다운 메뉴를 본적이 있을 것이다. 사용자는 180개가 넘는 리스트를 스크롤하여 그 중 하나를 선택해야 하는 수고를 들여야 한다. 우리나라의 경우 Korea(south)로 찾아야 할지, 아니면 South Korea로 찾아야 할지 고민하거나 아예 포기를 해야 할 때도 많다. 회원 가입의 한 순간만 참아야 된다면 괜찮겠지만, 수시로 불편한 입력 인터페이스를 사용해야 한다면 이는 무시할 수 없는 사항이다. 조금만 관찰해 보면 이러한 예는 쉽게 찾을 수 있다. 그러나 플래시는 이에 대해 좋은 해결책을 제공할 수 있다. 플래시로 상상할 수 있는 인터페이스를 모두 만들 수 있기 때문이다. 그리고 실제로도 많은 사이트들이 플래시로 만들어진 메뉴를 사용하고 있다. 앞의 예를 들어 설명한다면, 국적 입력을 지도를 클릭해서 입력할 수 있게 해놓았다는 말이다. 즉 세계지도에서 Asia를 선택하고(클릭), 화면 확대 후 대한민국을 선택(클릭)하면 클릭 두 번에 국적입력이 해결되는 것이다.

물론 이러한 방식이 아주 효율적이라고는 할 수 없을 것이다. 서버에 더 많은 부하가 걸릴 수 도 있고, 개발자나 디자이너는 더 많은 손을 써야 하기 때문이다. 그러나 이러한 활용방식은 사용자들에 대한 일종의 배려와 친절이라고 할 수 있다. 컴퓨터 앞에 일반인을 끌어모은 힘이 바로 GUI의 이런 점이었다는 것을 생각하면, 사이트를 설계하거나 디자인할 때 고려해야 한다. 특히 초보자들에게 이러한 배려는 고객으로 남느냐 아니면 떠나게 하느냐를 결정하는 중대한 요소가 될 수도 있다.

[2] flash의 한계와 활용 전략

"정보를 보여줄 때, 또는 입력할 때마다 플래시를 사용할 수 있다면 웹사이트를 모두 플래시를 사용하여 설계하고 디자인하면 되지 않겠는가!"라고 생각하고 있다면 위험하다. 현재 플래시를 이와 같이 사용해야 하는 분야는 한정되어 있다. 플래시도 분명한 한계와 약점을 가지고 있기 때문이다. 모든 것을 플래시로 하면 플래시 기술을 자랑할 수는 있겠지만, 클라이언트나 일반 사용자들을 짜증이 나게 하거나 심지어 사용하기 어렵다고 느끼게 할 수 있기 때문이다. 플래시의 약점과 한계를 알아 두여야 적절하게 활용도 할 수 있을 것이다. 플래시의 한계는 다음과 같다.
  1. 현재 보고있는 상태를 저장할 수 없다. HTML처럼 페이지 단위가 아니고 일종의 애플리케이션이기 때문에 HTML에 익숙한 사용자들이 "뒤로가기" 버튼을 눌러 낭패를 보곤 한다. 새로운 버전이 이에 대한 고려사항을 포함하고 있지만 여전히 문제되는 부분이다.

  2. 연산이 많은 복잡한 애플리케이션은 플래시로 개발하기 어렵다. 이때는 자바를 사용하자.

  3. 점으로 그림을 그리기 어렵다.

  4. text의 가독성이 떨어진다. 대량의 text를 표시하기에는 속도나 가독성에 문제가 있을 수 있다. 많은 량의 text는 가급적 피해야 한다.

  5. 액션스크립트는 완벽하지 않다. 논리적으로 문제가 없어 보이는 경우에도 버그가 있을 수 있다. 따라서 개발자들은 이러한 버그를 피해가는 방법에 익숙해져야 한다.

  6. 실행 속도 문제는 가장 중요하다. 사양에 따라서 속도차이가 많이 난다. 또한 알고리즘이나 그림의 크기, 복잡성에 따라 속도 변동이 심하다. 간단한 것은 디자이너도 쉽게 할 수 있지만 본격적인 애플리케이션으로 개발하려 한다면 코드와 알고리즘 최적화에 공을 들여야 할 것이다.
개발자로서 플래시를 활용하는 원칙은 간단하다. 플래시가 최적으로 사용될 곳에만 사용하는 것이다. 웹 브라우저가 할 수 있는 것 이상의 작업을 플래시가 해내고 있긴 하지만 모든 면에서 탁월한 것은 아니다. 기술과 기능에 도취되어 사용자의 입장을 무시하면 곤란하다. 이는 정말 간단하지만 많은 플래시 디자이너들이 간과하는 부분이다. HTML로 쉽게 할 수 있는 일까지도 고난이도의 플래시로 처리하는 것은 니퍼로 못을 박을 수 있다는 것을 보여주는 것처럼 이상한 일이다. (물론 일반 사용자들에게 그렇다는 것이다.) 기존의 HTML과 잘 결합하면 각각 홀로 쓰였을 때보다 좋은 결과를 만들 수 있다.

적절한 상황에서만 플래시를 사용하려면 다음과 같은 사항을 생각해야 한다.
  1. 다루는 정보가 무엇인가?

    방문자가 보는 정보는 어떤 것인가? 시각화나 소리 등으로 정보전달이 강화될 수 있는가? 어떤 정보를 입력하게 되는가? 새로운 GUI를 통해 더 편리하게 만들 수 있는가? 정보의 최종 종착지는 모니터 화면이나 브라우저가 아니다. 인간의 두뇌이다. 이러한 사항을 고려해 모니터나 브라우저에서 인간의 두뇌로 효과적으로 정보가 이동할 수 있는 경우에만 플래시를 사용하자.

  2. 정보의 사용패턴

    "빠르고 정확한 정보전달이 중요한가?" 아니면 "감성적인 요소를 더 즐기는가?" 이와 같은 질문에 사용자가 어떤 반응을 나타내는지도 알아야 한다. 이와 관련해서 가장 중요한 것은 정보에 접근하는 빈도이다. "불특정 사용자들이 가끔 보는 정보인가?" 아니면 "정해진 고객이 자주 접근하는 정보인가?" 이것은 새로운 GUI 도입 여부를 결정하는데 좋은 기준이 된다. 익숙하게 되기까지 드는 시간과 노력, 그리고 익숙하게 된 후 절약되는 시간과 노력, 이 두 가지를 어느 정도 비교할 수 있기 때문이다. 아무리 배우기 어려워도 결국 얻는 것이 월등히 많다면 도입해야 한다. (인간의 문자는 극단적인 예이다.) 모국어에 익숙해지는 것처럼 여기에 익숙해진 방문자는 평생 고객이 될 수 있다.

  3. 사용자들과 사용환경

    "사용자들은 컴퓨터에 얼마나 익숙한가?, 플래시 플래이어가 설치되어 있는가?, 자신이 만들 플래시 애플리케이션이 원활하게 돌아갈 수 있는 컴퓨터 사양은 어느 정도인가?" 등을 생각해야 한다. 사용자가 PDA나 기타 다른 기기를 사용하고 있을 수도 있다는 것도 잊지 말아야 한다.

  4. 기존 시스템과 잘 결합하는가?

    플래시를 사용하기 위해 기존 시스템을 많이 수정해야 한다면 아예 플래시 사용을 포기할 수도 있다. 다행하게도 플래시는 웹 서버나 소켓 서버 환경에서 잘 연동한다. 단지 플래시를 사용하기 위해 매크로미디어의 Generator를 사용하려고 한다면, 심각하게 다시 생각해 보아야 한다. Generator는 플래시에 가장 특화된 솔루션이므로, 플래시 말고 이를 사용할 수 있는 곳은 거의 없다. 표준적인 기술을 사용하기를 권하며, 여러 가지 기술을 잘 조합하면 Generator를 충분히 대체할 수 있다. JEE나 닷넷 기반으로 개발하길 원한다면 앞으로 등장할 Jrun이나 ColdFusion 같은 매크로미디어사의 솔루션을 기대해 보자.
플래시 활용에 대해 좀 장황하게 설명했다. 결론적으로, 플래시는 웹을 더 효율적으로 바꾸고 사용자 친화적인 기술을 제공할 수 있다. 특히 인터넷 기술의 보편화로 다른 경쟁사와 차별화 할 것이 점점 사라지는 추세 속에서, 사용자들에 대한 배려는 뜻밖의 경쟁력이 될 수 있다. 보이지 않는 어떠한 기술적 장점보다도 최종사용자에게 느껴지는 직관성과 편안함은 클라이언트들에게 더 좋은 인상을 남기는 경우가 많기 때문이다(자신이 가진 보이지 않는 기술을 최대한 쉽게 설명하기 위해 고생했던 것을 기억해 보라.).

기사를 끝내며…

지금까지 플래시에 대한 전반적인 사항을 모두 살펴보았다. 매크로미디어사는 플래시가 앞으로 웹에 끼칠 영향에 대해 스스로 "혁명"이라고 부른다. 필자가 생각하기에 애플릿 클라이언트는 그 입지가 점점 더 좁아지고 있는 반면 웹은 점점 더 다양한 모습을 지니게 될 것이다. swf 포멧은 PDA를 넘어 핸드폰으로 확산되고, 일반 S/W의 프리젠테이션 부분을 처리하게 될 것이다.

개인적으로는 우선 플래시가 개발자들의 좋은 장난감으로 활용되었으면 한다. 너무 뻔한 GUI에서 벗어나 재미있는 실험 작품들을 만들어 보는 것은 어떨까? 이렇게 개발자들이 플래시를 조금이라도 다룰 줄 알게 되면 실제 업무에서 플래시를 활용할 곳은 얼마든지 발견할 수 있으며 보너스로 좋은 성과도 얻어낼 수 있을 것이다.

관련 기사
TAG :
댓글 입력
자료실

최근 본 상품0