어렸을 적 책읽기를 아주 싫어했었습니다. 그러던 것이 옆집 사는 친구에 의해 만화책을 접하게 되면서 책 읽기에 습관을 붙였고, 보고 싶던 만화책을 다보고 나니 손이 심심해서 소설책을 보게 되었습니다.
소설책을 시리즈로 구매하고, 계속해서 읽다보니 나중엔 책을 읽지 않으면 뭔가찜찜한 기분이 들게 되더라구요.
대학교 때 읽은 책이 그래서 한 1,500권 정도 됩니다.
지금은 바쁜 일상 때문에 과거와 같은 책 읽기를 하지 못하는 아쉬움이 있습니다.(게을러 진것도 포함)
아무튼 그 때 읽었던 다양한 분야의 책들이 사회 생활 하면서 도움이 될 때가 아주 많았습니다.
종교적 이슈나, 사회 문화적 이슈에 대해 접근할 수 있는 이해의 바탕이 되었고, 서로 다른 분야나 부분에 대해 조금이나 연관지어 이해할 수 있는 부분이 생겨나게 되었습니다.
왜 이런 이야기를 하게 되었냐면 HCI라는 학문도 여러분야와 연관되어 발전되고 있기 때문입니다.
인간은 참으로 다양한 활동을 합니다.
하루 3끼 밥을 먹고, 신문이나 TV 인터넷을 보고, 자동차를 몰면서 건물을 오르락 내리락 하고 걷기도 하고 사람들을 만나기도 합니다.
인간이라는 존재는 다른 사물 사이의 접점, 즉 인터페이스는 인간의 활동과 뗄래야 뗄수 없는 관계라고 생각됩니다. 흔히 HCI라고 하면 컴퓨터와 사람 사이의 인터페이스만 생각하기 마련인데 사람은 컴퓨터 뿐만이 아니라 다양한 사물과 접촉하기 때문에 다양한 형태의 상호작용을 이해하는데 필요한 학문이라고 생각하는게 더 좋을 것 같습니다.
결국 모든 것을 알아야 할지도 모른다는 생각이 듭니다. 하지만 학문이라는 것이 인간 행위의 모든 것을 설명할 수 는 없을 것 입니다. 끊임없는 관찰과 지속적인 인간 중심 고려만이 HCI를 하기 위한 기본 조건이 아닐까 생각해 봅니다.
그러기 위해선 경험이라는 부분이 매우 중요하다고 봅니다. 불편한 것에 대한 경험이 있어야 편한 것을 고민할 수 있고, 또 편한 것을 경험해야 편리함이 주는 이익에 대해 잘 알 수 있다고 생각합니다.
이것이 맞는 이야기 인지 아닌지는 모르겠지만 전 HCI라는 학문을 생각할 때 마다 옵션이 차별 적용되어 있는 자동차를 생각합니다.
깔끔한 인터페이스와 고장이 적은 것을 좋아하는 사람은 기본 옵션의 자동차를 고르게 될 것이고, 화려한 옵션과 편리함을 추구하는 사람은 풀-옵션 또는 세미-옵션의 자동차를 선택할 것이기 때문입니다.
기본 자동차를 타던 사람 중의 하나가 기본의 불편함을 느껴 옵션이 많이 적용된 자동차를 고르는 것은 편리함을 느끼고자 하기 때문일 것이고, 옵션이 많은 자동차를 타던 사람은 다양한 옵션 때문에 느끼게 되는 조작의 불편함이나 잦은 고장등에 스트레스를 느껴 기본 옵션의 자동차를 고를 수 있기 때문입니다.
어느 쪽이든 기본옵션의 자동차를 타던 옵션이 다양하게 가미된 자동차를 타던 인간이 중심이 되어 선택을 하게 되고 제품에는 인간 중심적인 설계를 하게 될 것이기 때문입니다.
따라서 HCI에 관심이 많다면 다양한 경험과 인간에 대한 끊임없는 고민 그리고 인문학 분야에 관심을 가지면 많은 도움이 되지 않을까 생각해 봅니다.
HCI는 문자 그대로 인간과 컴퓨터간의 상호작용이라고 합니다.
과거의 컴퓨터 학문은 단지 '기술' 이라는 것에만 촛점을 맞추고, 기술을 잘 구사하는 인력 양성에 그 핵심 목적이 있었다고 본다면 HCI는 그 범위에 사람들까지 포함시켜서 연구하는 학문이라고 합니다.
사실 요즘은 기술의 깊이보다는(그렇다고 기술이 중요하지 않다는 것은 아닙니다.) 그것을 사용하는 사람에 촛점을 맞추고 애플리케이션들을 개발합니다. 내부적으로 멋진 구성과 신기술이 집약된 애플리케이션이라 할지라도 그것을 사용하는 사람이 어렵게 느낀다면 외면 받는 것은 시간 문제일 뿐이기 때문입니다.
활자로 빽빽하게 설명된 책보다는 적절한 그림과 아기자기한 구성으로 이루어진 책이 사람들에게 더 어필되는 것과 같은 이치라고 봅니다. 결국 애플리케이션을 만드는 데 사용된 기술이 더 의미있는 기술이 될려면 복잡하지 않으면서 필요한 부분이 충족이 되고 또 그것을 사용하는 사람들의 요구가 얼마나 잘 반영되어 있는가에 달려 있다고 봅니다.
고객의 요구로 어떤 개발을 진행할 때도 '어떻게 하면 편리하게 개발할까?' 라는 고민을 하다보면 기존에 작성해 놓은 것을 잘 이용하여 조립의 형태로 빠르고 쉽게 개발을 진행하곤 합니다. 기술로 무언가를 구현하는 사람들이든 그 결과물을 사용하는 사람들이든 '편리함' 이라는 것을 더더욱 찾게 되는 것 같습니다.
(Microsoft Vision 2010 에서 캡처)
사람을 조금이라도 편하게 해주는 부분에 촛점을 맞춰 기술이라는 것도 진보하는 것 같습니다.
자동차, 엘리베이터, 전화기, 컴퓨터, 에어컨과 선풍기, 라면, 리모콘 등등
사람 자체에 대한 연구, 그리고 그 사람의 활동에 대한 연구를 통해 사람이 원하는 바를 파악해서 편리함을 주는 것이 HCI라고 봅니다.
아래에 기억에 남는 말들을 따로 정리해 보았습니다.
처음 기술이 소개되는 시대에는 기술 자체를 좋아하는 사람들이 많지만 기술의 성숙기에 접어들게 되면 편리함과 해결책을 원하는 사람들이 많아지게 된다. - 무어(G.A Moore), 노만(D.A. Norman)
사용자에 대한 개발자의 이해 부족이 중요한 이슈가 될 수 있다.
HCI의 시대는 인간 중심의 시대이다.
HCI는 인간이 사용하기에 적합한 인터랙티브 컴퓨터 시스템을 설계-평가-구현하는 그 과정과 주요 현상에 대해 연구하는 학문이다. - SIGGHI)
HCI는 다 아시다시피 Human Interaction Computer의 약자 입니다. '인간과 컴퓨터의 상호작용' 이 의미가 중요한데요.
(Body Tracking)
인간이라는 변수가 아주 많은 대상과 기술집약적 대상인 컴퓨터가 상호작용하기 위해 많은 서로 다른 분야의 전문가들이 대화를 해야 합니다.
예를 들어서 기술 집약적 분야로 산업공학, 컴퓨터 공학, 전자 공학과 관련된 전문가가 필요합니다.
그리고 인간 자체에 대한 연구가 필요하기 때문에 인지과학이나 인간공학 전문가가 필요하며, 인간이 가지는 심리적 특성, 행동을 연구하기 위한 사회학, 철학, 언어학 전문가 또한 필요합니다. 마지막으로 인간과 컴퓨터의 접점에 있게 되는 제품의 디자인 특성, 인간에는 감성을 자극하는 부분에 디자인과 감성공학이 포함되게 됩니다.
이렇듯 HCI는 공학에서 인문학까지 다루는 매우 포괄적인 분야이며, 현재의 산업분야가 세밀하게 세분화된 전문가 그룹에 의해 그 시장이 형성된다고 하면, 미래에는 서로 다른 분야의 전문가들이 융합되어 시장을 형성하게 됩니다.
그럼 오늘날 이렇게 많은 관심을 받고 있는 HCI라는 분야는 누가 처음 제안했고, 어떤 과정을 통해 오늘날까지 이어지게 되었는지 알아보겠습니다.
최초의 HCI 제안자는 엥겔바르트라는 사람이었습니다. 그는 마우스와 GUI를 최초로 개발했고, 그리고 하이퍼텍스트 문서를 처음으로 구현한 사람이었습니다. 그는 인간 컴퓨터 상호작용에 매우 관심이 많았기에 컴퓨터를 통해 인간의 지능을 고도화 시키자고 주장했습니다. 다시말해 복잡한 문제 해결을 기계를 통해 해결하자는 것 이었습니다.
이러한 생각과 관심은 GUI를 탄생시키게 됩니다.GUI는 순전히 컴퓨터라는 기계를 위한 것이 아닌 그것을 사용하는 인간을 위한 것이었습니다.
인간을 위한 기계를 만들기 위해선 인지과학을 통해 대상을 이해할 수 있어야 했고, HCI는 그래서 인지과학의 영향을 많이 받습니다.
그러나 인지과학을 통해 각 개인에 대한 연구는 할 수 있어도 단체나 사회적 접근은 쉽지 않았습니다. 그래서 HCI에 사회학이나 인류학적인 연구가 결합되어 진행됩니다. 이런 연구를 통해 HCI가 바라보는 사용자는 개인이라는 울타리를 넘어 문화, 단체와 같은 대상으로 확대됩니다. 이러한 사용자의 확대와 다양한 사용성을 요구하는 계층을 대상으로 하기에 다양성을 갖춘 단체를 기준으로 더욱 편리한 것을 추구하는 포용적 개념이 적용되면서 시공간을 뛰어넘어야 하는 방향으로 그 개념으로 발전하게 됩니다. 그러한 개념은 컴퓨터 분야에 새로운 패러다임의 시대가 되었음을 알리게 되며, '유비쿼터스' 라는 신조어를 탄생시키기에 이릅니다.
그럼 사람들의 의견은 무엇일까요? 예를 들어보겠습니다. 우리는 배가 고프면 식당에 갑니다.(집에서 먹을 수도 있지만 일단 식당에 가죠.^^) 식당은 무언가를 먹기 위한 장소를 제공하고, 또 음식을 제공합니다. 그러나 사람은 단지 밥만 먹는 존재는 아닙니다. 오감이 존재하는 아주 까다로운 존재죠.
밥을 먹으면서 사람들과 대화를 하기도 하고, 식당의 조명에 영향을 받고, 음식의 맛과 향 그리고 아름다운 모양에 영향을 받는 심리적 존재 입니다.
인간의 심리는 그 사람의 생각과 행동을 제어합니다. 따라서 인간은 심리 상태에 따라 동일한 대상을 경험한다해도 상황마다 다른 감정을 느끼게 됩니다.
이러한 인간의 심리에서 비롯되는 생각과 행동을 컴퓨터 분야와 결합한 것이 HCI 입니다.
아무튼 나는 현재 매우 배가 고픕니다. 그래서 값싼 라면도 너무너무 맛있게 먹을 수 있었습니다. 그러나 시간이 흘러 이젠 값싼 라면 보다는 조금더 좋은 음식을 찾게 됩니다. 배가 매우 고팠던 과거에는 허기를 달래줄 아주 빠른 시간에 요리가 가능한 라면이 최고였지만 이젠 그것보다는 오감을 만족시켜줄 음식을 찾고 있습니다.
기술이라는 것도 마찬가지 입니다. 초기 기술 수요자는 기술 자체에 열광하는 사람들에 의해 시장이 주도되지만 후기 소비자는 기술 보다는 편의성, 안전성, 낮은 가격을 원하는 현실적 수요자로 채워지게 됩니다.
이러한 요구를 만족시키기 위해선 후기 소비자가 원하는 것이 무엇인지를 고려할 필요가 생기게 되었고, 후기 소비자 즉, 다양한 사용자 요구를 만족시키기 위해 인간 자체에 대한 연구가 필요하게 된 것입니다. 그것이 바로 오늘날이며, 그러한 부분 때문에 HCI라는 분야가 최근에 각광을 받게 된 것입니다.
앞에서 길게 설명된 내용을 짧고 명료하게 정의하면 아래의 표현과 같습니다.
"HCI는 인간이 사용하기에 적합한 인터랙티브 컴퓨터 시스템을 설계-평가-구현하는 과정과 이를 둘러싼 주요 현상들에 대해 연구하는 학문이다."
따라서 HCI 입장에서 말하는 컴퓨터는 그것이 H/W이건 S/W이건 사용의 편리함이 있어야 하고, 안정성과 효율성, 그것을 사용하는데 필요한 학습이 용이해야 하며, 개인의 프라이버시 까지 고려되어야 한다고 합니다.
인간과 컴퓨터의 교감, 그것은 HCI가 가장 중요시 하는 개념입니다. 이것을 영어로 표현하면 Interactive Computer System이고, 그 표현답게 인간과 컴퓨터의 커뮤니케이션에 대한 연구를 가장 많이 합니다. 따라서 HCI를 하기 위해선 시스템의 의도와 인간의 의도를 가장 잘 이해해야 하고, 그러기 위해선 Information 구조와 인간에 대한 인지적 특성에 많은 관심을 가져야 합니다.
아래의 영상은 웹캠을 이용하여 손의 움직임을 컴퓨터에 전달한뒤 액션이 일어나는 것을 보여주는 대표적인 HCI 영상입니다.
삼일동안 접속할 수 없었던 블로그에 들어와 보니 짱묜님이 방명록에 글을 남겨 주셨습니다. 그래서 짱묜님의 블로그를 방문했습니다. 오~ 디자이너 관점에서 보는 실버라이트 강좌가 매우 내실있고, 간략 깔끔하게 잘 정리 되어 있었습니다. 개발자가 아닌 디자이너의 입장에서 실버라이트에 대해 꼼꼼하게 알고 싶다면 짱묜님의 사이트에서 많은 도움을 받을 수 있을 거라 생각됩니다.
음~ 저는 웹2.0과 프레임워크라는 트랙에서 RIA와 UX아키텍처를 주제로 발표를 했었습니다. 나름 준비를 많이 한다고 했는데 오늘은 평소보다 더 긴장이 되더라구요. 그리고 나름 멋진 멘트도 준비해놨었는데 홀라당 까먹어 버리고 본의 아니게 말도 몇 번 꼬이고 그랬습니다.^^; 자료 마지막 장에 레퍼런스 기록하는 것도 까먹고...이래저래 딴데 정신 팔려 할 것도 제대로 못하고 있는 중 입니다.(더위 먹었나...헥헥)
아무튼 RIA기술을 잘 활용하기 위한 도구와 개념은 기술회사나 벤더들에 의해서 경험과 노하우가 어느 정도 공개 되는 것 같은데요~ 하지만 아직 그것을 적절히 가공할 엔지니어나 디자이너의 역할 분담이나 또 그들이 만들어낼 소프트웨어의 협업과정, 또 협업을 하기 위한 작업 환경 등은 아직 최적화되어 있지 않은 상태라고 보여집니다.
UX 기반 애플리케이션 제작에서 디자인팀과 기술팀간의 협업이 매우 중요하므로 다이나믹한 환경을 제공하여 불편함이 없도록 합니다.
라고 글쓴 부분이 있습니다.
오늘 그런 다이나믹한 환경을 갖추고 일을 하는 곳을 찾았습니다. 바로 Microsoft MED(Mobile and Embedded Devices Division) 의 사용자 경험 그룹의 작업 공간입니다. 지난 포스트의 글과 아래에 소개하는 동영상을 같이 보면 UX 작업환경에 대해서 "아하~" 하고 느껴지는 부분이 있게 될 것입니다.^^
같이 맛있게 감상해 보아요~ ^^*
(Microsoft MED User Experience Group Workplace Design)
우리나라에서는 언제쯤 이런 환경에서 하는 작업이 가능해질까요? 혹시 이런 환경에서 작업하는 곳이 있으면 누가 좀 알려주세요. ^^
최근 Silverlight, Flex와 같은 RIA기술이 매우 주목을 받고 있습니다. 제 블로그에서 제공되는 검색 키워드 통계를 보면 1위가 Silverlight 입니다. Silverlight와 같은 RIA기술은 사용자 경험(UX)을 최대한 반영하여 고객이 만족할만한 애플리케이션을 만드는데 필요한 기술입니다. Silverlight외에도 사용자 경험을 애플리케이션에 반영하기 위한 기술로는 Flex나 Ajax도 있습니다. 그리고 약간 다르긴 하지만 닷넷이나 자바를 이용해서도 조금 복잡하긴 하지만 UX가 고려된 데스크탑 애플리케이션을 만들수 있었습니다. 하지만 기술이 너무 특정 플랫폼을 지향했다거나 혹은 간단한 기능 구현을 위해 너무 많은 코드를 필요로 한다거나 하는 문제점들이 있었기 때문에 플랫폼에 비교적 자유롭고 간단한 코딩만으로도 다양한 기능을 표현하기 위해서는 새로운 무언가가 필요했던 겁니다.
사용자 경험을 애플리케이션에 녹이고, 고객이 만족할만한 결과물을 만들기 위해 관련 RIA기술(Silverlight, Flex등)에 대해 잘 파악하고 이해하는 것도 중요하지만 사실 그것보다 더 중요시 되야 할 것이 있다고 보는데 그건 바로 UX기반 애플리케이션 제작을 위한 아키텍처라고 생각합니다. 아무리 기술이 있어도 만들고자 하는 애플리케이션을 개념이나 기술적으로 잘 설계하지 않으면 매우 조잡한 형태의 RIA가 될 것이기 때문입니다.
(경험!! 그것을 위해 오늘도 새로운 실험을 한다.)
우리가 만들려고 하는 애플리케이션이 이런 대접을 받아선 곤란하겠죠? 그러한 이유로 오늘은 UX 아키텍처에 대해 조금 알아보도록 하겠습니다.
UX 아키텍처를 이용하여 웹 애플리케이션을 제작할 때 중요하게 생각해야 할 점은 사용자 경험과 그것을 기반으로하는 매우 인터렉티브한 애플리케이션이 탄생해야 한다는 겁니다. 이러한 애플리케이션을 제작하기 위해선 웹 사이트 제작을 위한 철저한 전략이 필요하고, 또 사용자 경험이 가미된 그러면서도 새로운 것에 대해 창조를 하고자 하는 창조성과 차별화된 디자인이 필요합니다.
위에 언급한 3가지, 즉 차별화된 전략과 창조, 디자인을 위해선 객체간의 인터렉티브한 관계와 특징, 기능을 파악하고, 정보를 어떻게 보여줄 것인지를 고려해야 합니다. 그리고 사용자가 이용하게 될 네비게이션을 어떻게 설계해야 사용자들에게 큰 감동을 줄 것인지 고민도해야 하고, 애플리케이션의 주요 목적 중의 하나인 데이터를 어떻게 보여주어야 할 것인지도 고민해야 합니다. 그러고 보니 고민 투성이네요.^^;
아래의 그림은 사용자 경험을 기반으로 애플리케이션을 디자인을 할 때 고려되어야 할 부분을 포함한 원 입니다. 정말 기존 애플리케이션 제작에서 고려되던 것들 보다 훨씬 방대한 영역에 대한 고민이 있어야 함을 보여주고 있습니다.
이러한 다양성이 가미되는 UX애플리케이션의 컨셉을 정하고, 또 모두가 원하는 결과를 이끌어내기 위해선 반드시 고객이 요구하는 비즈니스 모델과 그들이 원하는 목표를 정하고, 기존에 가지고 있던 웹 사이트의 특징을 잘 파악하는 등의 업무를 고객과 함께 추진해야 합니다. 또한 필요하다면 세일즈, 마케팅, 디자인과 같은 별도의 비즈니스 그룹, 개발팀 등과 함께 작업도 진행해야 합니다.
이러한 다양한 이해 관계자를 통해 수집된 정보를 바탕으로 애플리케이션 제작전에 미리 사용성에 대한 테스트를 수행하여 이해 그룹과 다양한 의견을 피드백 해야 합니다.
그럼 UX 기반 인터렉티브 애플리케이션을 제작하는데 필요한 핵심 기능을 정리해보겠습니다. 먼저 사이트 구조를 정의하고 정의된 사이트 구조에 네비게이션의 개념을 도입하고, 필요한 기능들을 배치합니다. 그리고 개발을 위해 사용하기 쉬운 프레임워크를 준비해야 하고, 팀원 모두가 이해할 수 있도록 동일한 페이지 레이아웃을 제공하고, 설계나 컨셉에 대해 일관성을 부여해야 합니다. 그래야 고객이나 개발자와 같은 이해 당사자들끼리 개념이 공유될테니깐요. 그리고 그것에 간단한 특징을 가지는 상호작용성을 부여하여 모델링을 해보는 것입니다.
그리고 프로세스 플로우를 이용하여 애플리케이션에 대한 map을 만들어 봅니다. 모든 개발팀과 고객들에게 사용성에 대한 가이드를 제공하고, 개발팀에는 개발 프로세스를 지원하도록 합니다. 주요 사용자를 위해 고객 중심 디자인과 고객 경험 그룹이 위의 제시된 것들에 대해 함께 그것을 느낄 수 있도록 합니다. 또한 의뢰인을 대상으로 실제적인 리허설을 실시하빈다. 개발팀은 플로우와 네비게이션을 분석하여 애플리케이션이 완벽하게 제작될 수 있도록 합니다. 개발을 진행하면서도 고객의 분석을 다시 요구하고, 또 여러 이해 관련 팀과 미팅을 수시로 진행하여 전략을 정의합니다.
(Information 아키텍처를 위한 3개의 원)
이렇게 다양하게 취합된 요구와 분석 결과를 토대로 애플리케이션의 내부와 외부 그룹에 대해 인터페이스와 인터렉션을 가능하게 하는 정보 아키텍처와 인터렉션 디자인 스키마를 그립니다. 이것을 그릴 때는 아래에 제시된 것들을 준비하면 많은 도움이 됩니다.
- 사이트 맵 - 컨셉 다이어그램 - 사용자 프로필 과 사용자 시나리오 - 콘텐츠에 대한 요구와 매트릭스 - 플로우 다이어그램
UX 기반 애플리케이션 제작에서 디자인팀과 기술팀간의 협업이 매우 중요하므로 다이나믹한 환경을 제공하여 불편함이 없도록 합니다. 그리고 앞에서 언급한 전략, 개발, 진실성, 사용성 테스트, 사용자 경험에 대한 훈련을 실시하고 정보 아케텍처 전달을 위해 템플릿을 생성하고 그것을 유지할 수 있도록 노력합니다. 또한 내부 프로젝트에서 요구된 조사나 작업을 잘 지휘하도록 노력합니다.
(사용자 경험 요소를 벌집 모양 으로 표현, User Experience Honycomb)
그럼 사용자 경험을 애플리케이션에 잘 부여하기 위해 우리는 어떤 지식 어떤 경험, 그리고 인력을 가지고 있어야 할까요?
먼저 경험적 부분을 언급하자면 인간이 가지는 모든 실질적인 부분이나 HCI, 정보 아키텍처, 사용자 인터페이스 디자인, 인터렉션 디자인, 산업 디자인에 대한 이해를 가지는 사람이 필요합니다. 그리고 XHTML, CSS, Javascript 환경에서 3~4년 정도 경험 디자인을 해본 사람, 인터넷 컨설팅 회사나 인터넷 비즈니스에서 5년간 경험과 관련된 일을 한 사람, 3~4년 정도 클라이언트의 다양한 요구를 경험하게 사람이 필요합니다.
그리고 개인의 능력적 부분을 다뤄 보겠습니다. - 사용자 인터페이스에 대한 원칙, 사용성에 대한 원칙, 이슈나 기술과 같은 정보 디자인이나 정보 아키텍처에 대해 깊은 이해를 가지고 있어야 합니다. - 머리 속에 들어있는 이미지를 모두에게 공유해주기 위해선 Microsoft visio나 Omnigraffie, 어도비 이디자인과 같은 common 다이어그램을 능숙하게 그려내고 시연할 수 있어야 합니다. - 뛰어난 문제해결 분석력과 비판적 생각을 잘하는 기술이 있어야 합니다. - 시나리오를 잘 쓰고, 커뮤니케이션이 원할해야 하며, 조직화 하거나 프리젠테이션 하고 조사 하는 기술이 뛰어나야 합니다. - 요구되지 않은 부분도 사용성을 테스트하고, 분석결과를 도출하고, 다양한 분야의 그룹으로 부터 조언을 받습니다.
(사용자 경험을 요구하는 많은 분야들)
이렇게 적고 보니 'UX 기반 RIA 애플리케이션 만들기가 참 쉽지는 않구나.' 하는 생각을 해봅니다. 그러고 보면 UX를 중요시 하는 세상에서 이젠 기능적으로 애플리케이션을 잘 만들기만 한다거나 디자인적으로 뛰어난 애플리케이션만 만들어서는 100% 고객이 만족하는 애플리케이션이 나올 수 없다는 결론이 나오게 됩니다. 개발자는 디자인에 대한 이해를 가져가야 하고, 디자이너는 개발자에 대한 이해를 필수적으로 가져가야 하며 사용성을 설계하는 아키텍처는 다양한 분야에 대한 그 중에서도 특히 인간에 대한 고민을 필수적으로 가져가면서 애플리케이션을 설계해야 하고, 이젠 UX기반 애플리케이션 프로젝트 팀원 모두가 서로의 작업에 대한 이해를 완벽하지는 않더라도 조금씩은 가져가야 한다는 결론이 나오게 됩니다.
UX.... 어찌보면 무서운 단어지만 그 만큼 새로운 영역이므로 도전하는 자가 제일 먼저 과실을 따먹게 되는 또 하나의 새로운 기회가 될 것입니다.
1. 사용자 경험(User Experience)이란? - 사용자가 어떤 시스템이나 제품, 서비스 등을 직간접적으로 이용하면서 느끼고 생각하게 되는 총체적 경험 - 하드웨어, 소프트웨어가 아닌 피플웨어적 접근에서 고민해야 한다. - 산업디자인, 소프트웨어 공학, 마케팅, 경영학의 중요한 과제 - 감성적, 이성적으로 사람에게 만족감을 주지 못하는 경우를 조심해야 한다. - 최근의 제품 개발에서 디자인이 매우 중요한 포인트를 차지하며, 디자인시 User Experience Design을 고려. - 제품 디자인, 상호작용 디자인, 사용자 인터페이스 디자인, 정보 아키텍처, 이용성 등의 분야에서 주로 연구.
2. 사용자 경험의 역사 - 에드워드(E.C.Edwards)와 카시크(D.J.Kasik)의 User Experience With the CYBER Graphics Terminal 에서 언급함. - 1970년대와 80년대에 인간 중심 디자인(Human Centered Design, UCD)의 맥락에서 연구가 많이 이루어짐. - 1993년 애플 컴퓨터의 도널드 노먼이 인간-컴퓨터 상호작용 연구에 큰 영향을 미침. - 1998년 조셉 파인(B.Joseph Pie II)과 제임스 길모어(James Gilmore)가 하버드 비즈니스 저널에 Welcome to the Experience Economy라는 기사를 발표하고, 1999년에 저서를 출간함. - 월트 디즈니의 경험의 가치에 주목
참고 1. 브렌다 로렐:디자인리서치(Design Research, Method and Perspectives), MIT Press(2004) ISBN 0-262-12263-4 2. 조셉파인, 제임스 길모어: 경험 경제로의 초대(Welcome to the Experience Economy)
꽤 오래된 자료 인데 개인적으로 필요해서 번역을 했습니다. 그리고 많은 부분을 의역화 했습니다.
A Look at Rich Internet Applications By Cameron O'Rourke
2002년부터 2004년까지 2년동안 Rich Client를 이용한 흥미있는 아이디어가 많이 나오게 되었습니다. Rich Client의 사용자 인터페이스는 HTML 보다 더 견고하고, 응답적이고 비쥬얼한 흥미를 주기 때문입니다.
Rich Internet Application(RIA) 기술은 웹을 이용하여 Rich Client를 배포할 수 있는 기술을 말합니다. RIA는 그 어떤 누가 예측하더라도 완벽하게 HTML을 대체할 수 있을 것이라 여겼습니다. 그러나 복합적인 애플리케이션을 실행하기 위해선 "fat client" 기술처럼 저렴한 비용으로 복합적 애플리케이션을 실행할 수 있는 대안이 요구되었습니다.
왜 Rich Internet Application인가? HTML 기반 애플리케이션은 간단한 아키텍처와 낮은 비용으로 배포를 할 수 있었기 때문에 많은 인기가 있었습니다. 그리고 HTML은 누구나 쉽게 배우고 또 사용할 수 있었습니다. 많은 사용자와 개발자들은 새로운 데이터와 애플리케이션에 즉시 접속할 수 있었고 또 잠시 자리를 비웠다가 다시 컴퓨터 앞으로 돌아왔을 때에도 그 상태 그대로 사용자 인터페이스를 보여줍니다. 이것은 웹 기반에서 의미있는 UI의 기능보다 더 중요한 이점이었습니다.
그러나 HTML은 우리가 확신을 가지고 사용하게 되는 애플리케이션과 잘 맞지 않았습니다. 그 이유는 다음과 같은데 복잡한 애플리케이션은 한 트랜잭션에서 완벽하게 몇몇의 페이지를 다시 그려줘야 하기 때문입니다. 예를 들어서 의학 분야나 금융 분야 처럼 확실하게 필드를 보여줘야 하는 케이스에서는 느린 상호작용을 보여주면 안됩니다. 또한 프로젝트 매니지먼트 시스템과 같은 것을 만들때도 HTML 애플리케이션으로 조작 되야 하고, 유저에게 차트, 스케줄, 계층적인 것과 같은 것들을 보여줘야 합니다.
더 나아가 오프(off)된 상태에서도 바로 스크립트와 쌍방향 작용이 가능해야하고, 입력 폼에 의해 입력되는 값들은 브라우저에 의해 간단한 이름/값 쌍으로 보내질수 있어야 합니다. 또한 XML 문서로 부터 복합적인 데이터 구조를 받고 보낼 수 있어야 하기 때문입니다.
HTML과 달리 RIA의 유틸은 다른 그 어떤 것보다 강력한 클라이언트-사이드 렌더링 엔진입니다. 그것은 일반적인 애플리케이션에 비해 허술하지 않으며 그래픽적인 Rich User Interface를 통해 응답할 수 있습니다. 추가적으로 컨트롤의 다양성(슬라이더, 데이트 피커, 윈도우즈, 탭, 스나이퍼, 게이지 등)이 있으며, 일반적인 SVG나 다른 매커니즘에 따르는 그래픽 생성을 수용 합니다. 어떤 RIA기술은 데이터 변경시 응답하는 풀 모션 애니메이션을 제공하기도 합니다.
이런 RIA의 또 다른 이점은 데이터가 클라이언트에 캐쉬될 수 있다는 점, HTML 보다 서버에 라운드 트립하는게 낮다는 점, 그리고 최근의 트랜드가 텍스트 기반의 웹 클라이언트에서 멀어지면서 무선이나 디바이스를 지원하는 Rich Client로 넘어가고 있기 때문입니다. 또한 랩탑에서 실행되는 애플리케이션은 인터넷 연결을 잃어도 오프라인에서 작업이 가능하도록 디자인 되어져 있습니다.
RIA의 일반적인 아키텍처는 그림과 같습니다.
XML은 데이터 전송이나 폼 레이아웃을 기술하는 용도로 사용됩니다. 수 많은 인스턴스로 클라이언트가 데이터 소스를 이용하여 연결되고 그 안에 머무르게 되면 서버는 실시간으로 클라이언트를 업데이트 할 수 있습니다.
Rich Clients를 위한 기술들 RIA의 기술은 다음과 같습니다.
Java 오라클의 J디벨로퍼나 이클립스로 자바 코드를 작성할 수 있는데 상상할 수 있는 대부분의 Rich Client 를 생성할 수 있습니다. Java는 몇년전 부터 폼 기반 UI를 지원하는데 폭 넓게 이용되었습니다. 추가적으로 사용자 인터페이스는 Java Foundation Classes(JFC/Swing)내의 콤포넌트에서 찾을 수 있습니다. 또한 개발자들은 이클립스 프로젝트와 다른 써드 파티 툴킷에서 Standard Widget Toolkit(SWT)을 사용하여 개발할 수 있습니다. Java는 또한 XML과 웹 서비스를 지원합니다. 웹 브라우저의 자바 플러그 인이나 자바 런타임 환경에 포함된 새로운 자바 웹 스타트 기술을 사용하여 애플리케이션을 배포할 수도 있습니다. Rich Client를 만드는데 있어 자바를 사용하는데 중요한 결점 한가지는 간단한 폼이나 그래픽을 생성하는데 있어서 적지 않은 라인의 코드를 요구합니다.
XUL XUL은 모질라 오픈 소스 프로젝트에서 제안한 XML 기반의 UI 언어입니다. 그것은 Zulu(플래쉬 MX 컴포넌트)와 Thinlets(자바도구)와 같은 다른 렌더링 엔진과 마찬가지로 모질라 브라우저내에서 실행되는 폼 애플리케이션을 생성하기 위해 사용됩니다. XUL 랜더링 엔진은 일반적으로 매우 작고(100k) XML 데이터를 산출할 수 있습니다. 자바와 더불어 Theodore Thinlet Editor와 같은 오픈소스 툴의 풍부함으로 인해 꽤 큰 사용자 커뮤니티가 있습니다. 자바 애플리케이션에서 그래픽한 레이아웃 UI와 XUL을 통신하게 할 수 있습니다. XUL의 가장 큰 불리한 점은 주요 기업의 지지가 없다는 점이다. XUL의 큰 이점은 Gecko 엔진과 통합할 수 있고, 실제로 XUL은 다른 XML UI 정의언어 대부분과 비교했을 때 매우 표현적이고 간결한 언어입니다.
마크로미디어 플래쉬와 플렉스 플래쉬는 웹 페이지에서 그래픽을 보여주기 위한 상업적 제품입니다. 그것은 최근에 폼-스타일 애플리케이션을 빌딩하기 위한 특징을 포함했고, 업그레이드 했습니다. 플래쉬는 웹에 광범위하게 배포된 프론트-엔드 기술이고 이론의 여지는 있지만 98%의 데스크 탑에 설치되어 있습니다. 활발한 그래픽을 생성하는 플래쉬의 편리함은 매우 강력하고 또 비쥬얼적 입니다. 이것의 스크립팅 언어는 액션 스크립트, 자바스크립트로 잘 알려진 ECMAScript 1.5입니다. 플래쉬에 XML description language가 추가된 제품이 Flex 입니다. 그래서 UI는 플래쉬 플레이어에 의해 컴파일과 렌더링 될 수 있습니다. 플래쉬와 플렉스의 첫번째 불리한 점은 개발툴의 미비점으로 인해 XML과 웹 서비스를 지원에 한계가 있다는 점입니다. 하지만 플렉스와 플래쉬의 이점은 복잡한 애니메이션을 쉽게 만들 수 있고 써드파티 제품에 애드온 된다는 점입니다.
오라클 폼(Forms) 오라클 폼은 데이터 중심 인터넷 애플리케이션을 빌딩하기 위한 상업적 제품입니다. 오라클 폼에서 폼 모듈 파일들의 출력물인 비쥬얼 디자이너를 사용하여 폼을 생성할 수 있습니다. 모듈 파일들은 FMT 포맷이나 그 밖의 디자인 툴을 위한 XML로 형식화 될 수 있습니다. 추가적으로 표준화된 폼의 모든 위젯은 자바 콤포넌트와 커스텀 자바 빈즈에 통합될 수 있습니다. 스크립팅 언어는 오라클 데이터베이스에서 사용되는 것과 같은 PL/SQL 이다. 오라클 폼의 흥미로운 특징은 폼 모듈 파일을 생성하고, 수정하고 컴파일링 하기 위한 자바 API를 사용할 수 있습니다. 오라클 폼의 중요한 결점은 웹에 배포하기 위한 오라클 애플리케이션 서버 라이센스가 요구된다는 점이며 이점으로는 오라클 플랫폼이나 오라클 데이터베이스에 강력하게 통합된다는 점입니다.
Rich Internet Applications를 생성하기 위한 기술을 이용하는데 있어서 RIA기술을 선택해야 하는데 다음과 같은 요소를 따라야 한다. 1. 오픈소스와 상업적 제품간의 비교 2. 성숙한 기능 이냐 특정 기능이냐 3. 가볍고 저장공간이 작아야 하느냐 UI가 풍부해야 하느냐 4. 미디어 중심이냐 데이터 중심 애플리케이션이냐?
RIA를 생성하기 위한 최상의 준수사항은 1. 백그라운드 스레드를 이용하여 패치 되어야 합니다. 리치 클라이언트를 위한 퍼포먼스의 기대는 높아야 하고, 만약에 웹 서비스로 데이터를 수집하는데 애플리케이션이 중단될 때 그것은 응답이 없는 것처럼 보여야 합니다. 2. 클라이언트와 리모트 데이터가 동기화 되는 것 처럼 보여야 합니다. 4. 흥미롭고 기능적인 UI를 비쥬얼하게 생성하는 능력을 가진 그래픽 아티스트나 최소한 좋은 UI 디자이너가 잇어야 합니다.