유연한 UI 작업을 위한 소프트웨어 개발 방법론

코드를 쓰는 프로그래머 입장에서 UI는 중요하지만 번거로운 존재일 수 있다. ‘번거로움’은 결국 복잡도가 높다는 이야기인데, 과연 ‘복잡도’를 줄이기 위해 어떤 고민을 해야 할까? 개발자 입장에서 어떻게 UI 담당자를 지원할 수 있으며, 거꾸로 UI의 변경과 기능 구현 사이의 간섭을 줄일 수 있을 것인가에 대해 구체적인 방법과 대안 모델들을 생각해 보자.


이승준| plusjune@elasticware.com

eLasticWare에서 연구개발팀장으로 근무하고 있다. 닷넷 관련 기업용 제품 개발에 매진하고 있으며 주로 프로세스 관련한 PSA, SPO 소프트웨어 설계/구현에 많은 관심을 가지고 있다.

소프트웨어가 사용이 편리해야 한다는 것은 누구나 알고 있다. UI는 예쁘고 멋있어 보이는 외관이 중요한 게 아니라 사용자가 원하는 일을 손쉽게 접근하여 할 수 있도록 환경을 마련해주고 경우에 따라서는 사용자의 사용을 유도하는 ‘사용자를 위한 배려’라고 할 수 있다. 최근 UI 개발도 전문화되고 있으며 독립적인 개발영역으로 자리잡고 있다. 소프트웨어가 작동하는 기능에 비해 사용하기 쉬운 인터페이스가 계속 요구되기 때문이다. 웹 애플리케이션 개발에서 개발자와 웹 디자이너와 시각 디자이너 사이의 협력 작업은 더 이상 낯선 모습이 아니다.
하지만 직접 소프트웨어 기능을 코딩하는 프로그래머 입장에서 UI는 매우 귀찮은(?) 존재로 여겨지기 쉽다. 원인은 편의성 중심의 개발(혹은 사용에 대한 고민을 할만한 시간적인 여유 부족)이나, 잦은 사용자의 요구사항 변경에서 찾을 수 있다. UI 설계가 사용이 아닌 개발에 초점이 맞춰지는 경우이다. 짧은 시간에 만들어지는 기업용 애플리케이션들의 대부분이 그렇게 만들어진다. 소프트웨어의 기능적인 측면을 개발하는 개발자가 UI까지 개발하게 되는 경우 사용자 관점에서 제작되기 어렵다. 결국 UI 개발이나 기획 등의 단계가 더 세분화되고 여러 전문가들 간에 효과적인 협력이 중요하게 되었다.
여기서는 ‘어떻게 하면 사용하기 편리하고 멋있는 UI를 만들 수 있겠는가’보다는 ‘그런 UI를 만들기 위한 기반을 어떻게 구축할 수 있겠는가’라는 관점에서 생각해보고자 한다. 즉, 개발자 입장에서 어떻게 UI 전문가를 지원할 수 있으며 반대로 UI의 변경과 기능 구현 사이의 간섭(coupling)을 줄일 수 있을 것인가에 대해 구체적인 방법들과 대안 모델들을 고민해 보자.

UI를 위한 라이브러리 동향
개발자 입장에서 IT를 3개 진영 즉 오픈소스, 자바, 마이크로소프트(이하 MS)로 나누어 볼 수 있다(더 나아가 이것을 삼국지에 비유하는 사람도 있다). 개발자들이 주로 UI(특히 GUI) 개발에 널리 사용되는 라이브러리와 그 동향에 대해 간략하게 살펴보자.
GNU, 리눅스 등으로 대표되는 오픈소스 진영의 UI는 역시 X윈도우이다. X11 프로그래밍에 사용되는 Xlib, Xt 역시 Win32 API 프로그래밍과 마찬가지로 상당히 많은 양의 API를 제공하고 있으며 프로그래밍에 많은 노력이 든다. X윈도우 프로그래밍을 손쉽게 하기 위한 상위 수준의 라이브러리들이 많이 개발됐는데 ,유닉스를 포함해 리눅스 환경에서 GUI 개발환경으로 가장 큰 이슈는 역시 GNOME이다. GNOME은 데스크톱 개발환경을 제공하기 위한 프로젝트이다.
GNOME의 기본 툴킷은 GTK+(GIMP ToolKit)이다. <리스트 1>은 버튼, 메뉴, 다이얼로그와 같은 GUI 객체를 위젯(widget)이라 하고 이 위젯의 집합을 툴킷이라고 한다. 위젯은 Win32 개발자 입장에서 GUI를 구성하는 액티브X에 비유할 수 있다. GNOME 프로그래밍에는 GTK+에 대한 이해가 필수적이다. GTK는 원래 리눅스의 유명한 그래픽 소프트웨어인 GIMP를 제작하기 위해 만들어졌으며 여러 언어(C/C++, Perl, 파이썬)에서 사용이 가능하다. GNOME은 UI 뿐만 아니라 자유 소프트웨어를 만드는데 필요한 다양한 내용을 제공하는 일종의 프레임워크이다.
GNOME과 함께 유닉스 GUI 개발의 양대 산맥을 이루는 것이 Qt이다. Qt는 C++로 만들어졌으며 MFC와 비슷한 클래스 라이브러리이다(MFC보다 훨씬 풍부한 내용을 가지고 있다). Qt는 C++ 기반의 GUI 라이브러리로 KDE 환경을 위한 표준 개발 도구로 쓰인다. Qt는 동일한 소스로 Win32와 리눅스에서 수행되는 프로그램을 만들 수 있게 해준다. Qt는 Troll Tech에서 개발한 도구로 무료와 상용 버전이 있다. Qt로 상용 프로그램을 개발하려면 라이선스를 구입해야 한다. 여러 플랫폼을 지원하는 점에서 파이썬도 좋은 대안 중의 하나이다. 파이썬 자체가 C나 자바 개발을 대체하면서 파이썬을 위한 다양한 플랫폼 독립적인 GUI 라이브러리들을 사용할 수 있다.
Cygwin(Win32용 Unix 환경)이나 WINE(Win32 애플리케이션을 리눅스에서 수행)과 같이 Win32 환경에 대한 교차 지원도 상당히 많지만 C나 C++로 직접 Xlib 프로그래밍을 하는 경우는 거의 없다. Gtk나 Qt를 써서 C/C++로 개발하거나 Perl이나 Tcl과 같은 스크립트에서 GUI 툴킷을 이용하여 개발하는 방법을 많이 쓴다.
자바는 전통적으로 스윙(Swing)이 많이 쓰였지만 사실 GUI의 반응 속도 때문에 데스크톱 애플리케이션 개발이 많이 이뤄지지 않았다. IBM의 오픈소스 개발 플랫폼인 이클립스(Eclipse)에서 사용되면서 SWT(Standard Window Toolkit)와 JFace가 자바 개발자들에게 주목을 받고 있다. SWT는 이름과는 달리 자바 표준은 아니다. SWT는 자바가 지향하는 플랫폼 독립을 버리고 운영체제가 제공하는 UI 기능을 최대한 활용하는 데 초점이 맞춰져 있다. 따라서 UI의 반응 속도가 무척 빠르다. ‘100% Pure’보다 ‘조화로운 Hybrid’가 훨씬 나을 수 있다는 것을 보여준다.
<화면 1>은 SWT로 개발된 IP 익스플로러(노트북 사용자를 위해 IP를 자동설정)라는 셰어웨어이다. 코드는 모두 자바로 개발되었지만 C/C++로 작성된 Win32 애플리케이션과 같은 모습과 속도를 보여준다.
MS의 Win32 환경은 클라이언트 환경으로 가장 널리 사용되고 있기 때문에 UI 개발의 가장 대중적인 UI 환경이라고 할 수 있다. 윈도우 2000에서 GDI+가 소개되었는데 닷넷 프레임워크에서도 역시 같은 기능이 제공된다(GDI+는 C/C++에서도 사용이 가능하다). 이전의 GDI에서 볼 수 없었던 다양한 그래픽을 제공한다. 닷넷 사용자 인터페이스 관련 기술의 가장 큰 특징은 뭐니 뭐니 해도 웹 애플리케이션과 데스크톱 개발의 경계를 허물었다는 점이다. 웹 프로그래밍도 데스크톱 애플리케이션 개발과 마찬가지로 완전히 이벤트 방식으로 프로그래밍한다.
ASP.NET의 코드 비하인드(code behind) 기능은 코드와 HTML 페이지를 완전히 분리한다. 자바가 JSP와 서블릿을 조합하여 작업하는 것보다 코드와 HTML을 잘 분리해내며 협업 작업 또한 수월하게 한다. 기업 환경 애플리케이션은 닷넷 개발에 관심이 모아지고 있지만 클라이언트 UI 개발은 여전히 비주얼 베이직과 C++ 개발자에게는 Win32 API와 MFC가 애용된다.

유연한 UI를 위한 대안들
MFC 자체의 80% 이상의 클래스가 UI 관련 클래스이다. 그 만큼 많은 부분이 GUI에 할애되어 있다. MFC를 확장한 사용 라이브러리들도 많고 오픈소스도 상당히 많이 있다. 그럼에도 불구하고 UI 관련 개발은 여전히 어려운 과제이다. 사실 이런 문제의 대부분은 제대로 된 설계 없이 접근하면서 생기는 것이다. 쉬운 예로 일단 코드부터 작성하는 나쁜 습관 등이다. 유연하고 재사용성이 높은 UI의 개발은 데이터와 UI를 분리하는 노력에서 시작한다. 이것은 2-티어(클라이언트/서버), 3-티어(데이터-비즈니스 로직-프리젠테이션)와 같이 데이터와 뷰 그리고 비즈니스 로직을 분리하는 노력과 다르지 않다.
MVC(Model-View-Controller) 모델 역시 데이터와 뷰의 분리라는 명제를 보여주고 있다. MVC 모델은 원래 스몰토크(Samlltalk)에서 나온 것이지만 코드의 재사용을 이야기할 때 아직도 빠지지 않고 등장하는 이야기이다. 자바의 스트럿츠 프레임워크(struts frame work)도 MVC 모델에 기반하고 있으며 MFC 설계의 기반이 되고 있는 document/View 구조도 MVC 모델에 근거하고 있다. 다시 얘기하거니와 뷰와 데이터를 분리하는 것은 코드의 재사용성을 좌우하는 가장 중요한 요소일 뿐만 아니라 프로그램의 유연성에도 가장 크게 영향을 주는 요소이다. 하지만 뷰와 데이터 그리고 비즈니스 로직과 데이터를 완전히 분리하는 것이 생각처럼 간단하거나 쉬운 일은 아니다. 상당한 노력을 필요로 한다. 이제 유연한 UI 개발을 위한 다양한 방법과 시도를 살펴보자.

XUL
XUL(XML User interface Language, ‘줄’이라고 발음한다)은 사용자 인터페이스를 XML로 기술하는 것이다. 1999년부터 넷스케이프는 특정 환경에 종속적이지 않은 마크업 언어를 만들기 시작했다. XUL은 인터넷에 연결이나 플랫폼에 상관없이 풍부한 UI를 구성할 수 있도록 해준다.
사용자 인터페이스를 XML 문서로 기술하는 방법은 이미 많이 진행되어 있다. 예를 들어 온라인 게임 에버퀘스트(EverQuest)에서 사용자 인터페이스를 정의하는데 사용되고 있다. 사용자는 약간의 지식으로 UI를 수정할 수 있다. XML로 UI를 기술하는 방법의 장점은 XML 자체가 가지는 유연성에도 있지만 무엇보다 다양한 장치를 효과적으로 손쉽게 지원할 수 있다는 점이다. 물론 HTML도 이와 비슷한 역할을 해왔지만 XUL은 리치 클라이언트의 역할도 충분히 소화해 낼 수 있다.

HTML 애플리케이션
HTML 애플리케이션은 인터넷 익스플로러(이하 IE) 기능을 모두 활용할 수 있다. 예를 들어 IE 4.0부터는 VML을 지원하는데 VML을 사용하여 그래픽 요소가 있는 애플리케이션 제작도 가능하다. 특히 로컬에 설치된 COM 컴포넌트를 활용할 수 있는 장점이 있다. 그래서 COM 컴포넌트를 제작하고 테스트하는 데 매우 유용하게 사용된다. HTA(HTML Application)의 기능은 윈도우 환경의 IE에서만 가능하다. 하지만 이 HTA 모델이 시사하는 바는 매우 의미있다. HTML과 브라우저의 기능(스크립트, VML, XML, DHTML)을 활용해 애플리케이션을 손쉽게 제작할 수 있다는 것이다.
<리스트 3>의 내용을 kb.hta로 저장하고 탐색기에서 kb.hta 파일을 클릭해보자. 바로 <화면 2>와 같이 수행되는 것을 볼 수 있다.

브라우저 컨트롤
UI를 제공하기 위해 브라우저 자체를 실행 프로그램에 포함시키는 방법이다. MFC의 ChtmlView를 이용하거나 MS 웹 브라우저 컨트롤(HtmlView)을 이용하는 방법이다. HTA와 매우 유사하지만 응용 프로그램이 HTML 뷰를 직접 제어한다는 점에서 차이가 있다. 특히 웹 브라우저와 거의 비슷하게 동작하지만 URL이나 사용자 입력을 직접 처리하는 등 일반적인 데스크톱 애플리케이션의 기능을 그대로 가지고 있다. 이런 기능을 이용해 제작한 대표적인 프로그램으로 한메소프트의 마이퀵파인더(MyQuick Find)라는 온라인 사전을 예로 들 수 있다. <화면 3>에서 볼 때 스크롤되는 부분이 HtmlView이다. 발음청취 기능도 모두 웹 브라우저의 기능을 이용하고 있다.

IBM 새시
새시(Sash)는 HTML, 자바스크립트 그리고 XML만으로 윈도우용 데스크톱 애플리케이션을 제작하도록 하는 프레임워크이다(새시는 윈도우를 의식해 ‘창틀’의 의미로 지어진 이름인 듯 하다). Jabber를 구현한 SashJabber와 같은 메신저도 있고 통합개발환경(IDE)도 제공된다(<화면 4>). 새시에서는 HTML, 자바스크립트, XML로 만들어진 애플리케이션을 ‘웹플리케이션(Webplication)’이라고 한다. 현재 리눅스를 지원하는 오픈소스 프로젝트인 SashXB도 있다. SashXB는 자바스크립트를 이용하고 하부구조로 GNOME, 모질라, OpenLDAP 등을 사용하고 있다.
윈도우용 새시는 매우 다양한 런타임 라이브러리를 제공하는데 모두 COM 컴포넌트로 제작되어 있어 UI를 손쉽게 구축할 수 있을 뿐만 아니라 웬만한 데스크톱 애플리케이션을 쉽게 제작할 수 있다. HTML과 자바스크립트만 알고 있으면 다양한 애플리케이션을 빠르게 개발할 수 있다는 점이 새시의 가장 큰 장점이다. <화면 5>는 새시로 제작된 뱅킹 애플리케이션이다.

또 다른 프론트 엔드, 플래시와 SVG
오픈소스, 자바, 닷넷 등의 영역과는 별개로 RIA(Rich Internet Application) 개발영역에 급부상된 것이 바로 플래시이다. 아직도 많은 사람들이 플래시를 ‘웹 환경의 애니메이션 저작도구’ 정도로 인식하고 있지만 그 응용 분야나 향후 가능성은 실제로 훨씬 광범위하다. 특히 기업용 애플리케이션 개발에 필요한 다양한 통신 기능과 XML 웹 서비스, 리모팅 그리고 보안 통신 등의 문제를 해결하고 있어 리치 클라이언트의 훌륭한 대안이 되고 있다.
W3C의 표준 권고안으로 채택된 SVG는 플래시의 유력한 경쟁자이다. SVG는 오픈 표준으로 순수하게 XML로만 제작이 가능하다는 장점 때문에 오픈 진영에서도 다양한 도구들이 많이 만들어지고 있다. <화면 6>은 SVG로 만들어진 공연 좌석 데모이다. 플래시와 비교해 보자. 플래시가 대안 UI로 가능한 것은 플래시가 제공하는 XML 기능과 리모팅 기능에서 찾아볼 수 있다. 플래시는 HTML만으로는 부족한 리치 클라이언트 환경을 제공하고 있어서 애니메이션이나 광고의 영역을 넘어 다양한 애플리케이션과 다양한 장치를 위한 새로운 UI로 자리잡을 것이다.

화면을 넘어서는 UI
UI를 화면에 나타나는 윈도우와 메뉴에만 한정하지 말아야 한다. TTS(Talk To Speech), 음성인식, 3D 그래픽스, 가상 현실 등 다양한 UI 분야들이 있으며 HCI 분야의 새로운 영역들이 계속 개척되고 있다. 또한 프로그램의 외관을 UI로만 인식하고 있지만 사용자와 소프트웨어간의 인터페이스는 눈에 보이지 않는 요소들도 존재한다. 윈도우 업데이트와 같은 업데이트 절차를 예로 들 수 있다. 인터넷에 접속하는 애플리케이션을 개발했거나 웹 기반의 액티브X 컴포넌트를 만들었다면 새로운 버전이나 프로그램의 수정에 대해 어떻게 대응할 것인가? 버전업이 되었다고 다시 다운로드해 설치하도록 하는 것은 별로 바람직하지 않다. 변경된 소프트웨어의 구성요소들이 자동으로 설치할 수 있도록 하는 것이 바람직하다. 마치 백신 프로그램의 바이러스 정보가 업데이트되듯이 프로그램 자체의 버전도 스스로 관리할 수 있어야 한다. 아크로뱃 리더 3와 같이 대부분의 소프트웨어가 온라인으로 자동 업데이트하는 기능을 제공한다.
이 밖에도 도움얻기, 웹을 통한 지원, 사용팁, 사용자들끼리 서로 도움을 주도록 하는 커뮤니티 사이트 등 다양한 이슈들이 있으며 이러한 내용들도 결국 사용자가 소프트웨어 사용에 접근하는 방법을 제공해주는 ‘보이지 않는 인터페이스’인 것이다.
스크립팅 UI 프레임워크 모델, ‘웹플릿’
지금까지 UI 개발과 관련된 다양한 이슈들을 살펴보았다. 구체적인 예를 들기 위해 필자가 구현하여 상용 애플리케이션 제작에 활용하고 있는 프레임워크의 구성과 원리에 대해 소개하겠다. 이 모델은 HTML과 스크립트만을 써서 애플리케이션을 개발한다는 점과 스크립트에서 사용하는 다양한 기능들이 런타임 라이브러리로 제공된다는 점에서 IBM 새시와 비슷한 점이 많다.
<그림 1>은 HTML과 자바스크립트로만 작성하는 애플리케이션의 구성을 보여준다. 이렇게 HTML과 자바스크립트만으로 작성하는 애플리케이션을 필자는 ‘웹플릿(Webplet, Web+Applet)’이라고 부른다. 자바스크립트는 System.dll, Net.dll 등 프레임워크에서 제공되는 COM 컴포넌트를 이용한다.
<화면 8>은 버튼이 눌렀을 때 다이얼로그가 출력되는 간단한 응용 프로그램을 작성하여 수행하는 화면이다. 웹플릿은 프로그램의 겉모양을 기술하는 문서인 ButtonSample.htm과 비즈니스 로직과 사용자와 상호작용을 제어하는 ButtonSample.htm.js 두 가지로 구성된다. ButtonSample.htm.js 파일은 자바스크립트 파일로, 윈도우 스크립트 호스팅을 이용해 호스팅된다. 즉, 윈도우의 스크립트 호스트 기능을 활용하는 것이다. ButtonSample.htm은 일반적인 HTML 문서이다. 이 두 개의 문서는 .dll이나 .exe에 리소스 형태로 포함된다(IE에서 제공하는 “res://” 프로토콜을 이용하여 로드된다).
<리스트 4>와 <리스트 5>는 웹플릿을 구성하는 HTML 문서와 자바스크립트 문서를 보여주고 있다(지면관계상 세부적인 설명은 힘들지만 대략의 구성은 알 수 있을 것이다). 여기서 가장 중요한 부분은 버튼 이벤트 같은 이벤트가 스크립트에 의해 처리된다는 점이다. 이런 HTML 스크립팅 프레임워크는 뷰와 비즈니스 로직이 HTML과 스크립트로 제작되므로 다음과 같은 장점을 가진다.

◆ 언제든지 쉽게 뷰(HTML)와 수행 방법(스크립트)을 변경하거나 수정할 수 있다.
◆ 자바스크립트와 HTML을 아는 사람이면 누구나 애플리케이션을 제작 수정할 수 있다.
◆ C/C++ 개발자는 기능적인 측면에 전념할 수 있다.
◆ 뷰, 비즈니스 로직 기술적인 부분들이 서로 완전히 분리된다.
◆ 스크립트가 이용하는 COM 컴포넌트들은 재사용이 가능하다.

<화면 9>는 실제 HTML과 스크립트만으로 제작된 애플리케이션이다. 실제 운영체제나 기술적인 부분들 심지어 서버와 통신하는 기능들도 모두 COM으로 나누어 개발이 만들어져 있으며, 자바스크립트로 COM의 기능을 호출하여 사용하고 있다. 그림에 좌우로 나눠져 있는 두 개의 뷰는 브라우저 컨트롤(MFC의 HtmlView)이다. 왼쪽의 트리 부분도 역시 자바스크립트로 동작하며, 선택하는 이벤트가 발생했을 때 특정 기능을 수행하여 그 결과를 오른쪽에 HTML 문서로 보여 주도록 작성되어 있다. 여기까지 작업됐다면 이 프로그램을 예쁘게 만드는 것은 HTML 디자이너에게 맡길 수 있을 것이다.

MVP 모델
MVP(Model-View-Presenter) 모델은 MVC 모델을 기반으로 하는 일종의 패턴이다. MVC 모델과 유사하지만 모델(model)과 뷰(view) 사이의 옵저버(observer) 연결을 둬 더 유연한 구현을 제공한다. MVP 모델에서는 모든 요소들이 플러그이다. 즉, 구현된 뷰가 있으면 이를 다른 뷰로 바로 대체할 수 있음을 뜻한다. MVP 모델은 말 그대로 기본적으로 세 가지(model-view-presenter)로 구성되지만 다음과 같이 추가적인 클래스를 가진다. MVP 모델은 MVC를 대체하는 패턴이다. 훨씬 더 유연한 구성으로 UI 부분 역시 재사용과 변경을 용이하게 만든다.

◆ 모델 : 데이터
◆ 뷰 : 모델을 출력
◆ 프리젠터(presenter) : 애플리케이션을 표현, 다른 오브젝트들을 생성하거나 관계를 맺는다.
◆ 셀렉션(selection) : 모델의 서브셋(subset)을 구체화(커맨드에 의해 조정)
◆ 커맨드(command) : 커맨드 패턴
◆ 인터랙터(interactor) : 키보드나 마우스 이벤트들을 커맨드나 셀렉션에 맵핑

버전 2.0을 향하여
소프트웨어의 기능성(functionality)과 사용성(usability)이라는 두 마리 토끼를 잡기 위해서는 비즈니스 로직을 구현하는 개발자가 UI를 함께 개발하지 않고 UI만을 고민하는 전문가가 독립적으로 개발할 수 있도록 하는 것이 바람직하다. 뷰와 데이터 그리고 비즈니스 로직과 데이터를 완전히 분리하는 것이 생각처럼 쉬운 일은 아니다. 더욱이 전혀 다른 개발자가 각각 두 영역에서 따로 작업하면서 협업한다는 것은 더욱 어렵다. 이를 가능하게 하려면 프레임워크를 생각하는 접근이 필요하며 개발 공정과 방법에 대한 고민이 병행돼야 한다.
또한 UI를 C나 자바로 개발하는 것도 나쁘지 않지만 일반적으로 UI는 빠르게 구성해 보고 손쉽게 바꿀 수 있도록 HTML, 자바스크립트, XML을 최대한 활용할 수 있는 방법들을 고려해 보자. 이런 방식의 개발을 지원하기 위해서는 최소한 개발 방법이나 절차 그리고 공통으로 사용하는 라이브러리와 이에 대한 인터페이스 등이 잘 정비되어 있어야 한다. 결국 유연한 UI 구현은 결국 프레임워크와 패턴의 문제로 귀결된다. UI만을 고민하는 전문가가 특정 기술에 의존하지 않고도 손쉽게 UI를 수정하고 이를 반영할 수 있는 프레임워크를 갖추는 것이다. 초기에는 비용이 많이 필요하지만 일단 구축되고 나면 손쉽게 사용자 인터페이스를 구축하고 테스트해 볼 수 있고 애플리케이션 전체의 문제를 조기에 파악할 수 있어서 전체적으로 볼 때 비용이 훨씬 절감된다.
프레임워크는 유연한 소프트웨어를 개발하는 데 필수적인 요소라고 할 수 있다. 또 한번 구축해 놓은 프레임워크는 개발사에서 지속적으로 사용될 수 있기 때문에 어떤 개발 팀이든 장기적으로 계속 유지하고 키워가야 할 자산이다. 많은 소프트웨어가 버전 1.0으로 그 생명주기를 마감한다. 소프트웨어는 아이와 비슷하다(낳은 정보다 키운 정이라고 하지 않던가). 만드는 것보다 키우고 발전시키는 것이 더 중요하고 또 어렵다. 독자 여러분 중에 자신이 제작하는 소프트웨어가 버전 1.0에서 끝나기를 희망하는 사람은 없을 것이다. 버전 2.0을 만들고 싶다면 당장 자신만의 혹은 팀의 프레임워크를 시작하자.

정리 | 위윤희 | iwish@korea.cnet.com

[ HCI 관련 학회 및 단체 ]
◆ ACM SIGCHI 학회 홈페이지(http://www.acm.org/sigchi)
전 세계적으로 가장 대표적인 HCI 관련 학회. 매년 상반기에 한번 모이며 HCI에 대한 이론적인 연구는 물론 실용적인 방법론이나 디자인 결과물에 대한 발표도 활발하게 이뤄지고 있다. 앞으로 한국 HCI 전문가들의 적극적인 참여가 절실히 필요한 단체이다.
◆ British HCI 그룹 홈페이지(http://www.bcs-hci.org.uk)
미국을 제외하고 유럽 쪽에서 가장 활발하게 활동을 하고 있는 HCI 관련 단체로서 1년에 한번씩 매년 가을에 Human-Computer Interaction 컨퍼런스를 주최하고 있다.
◆ Usability Professionals’ Association 홈페이지(http://www.upassoc.org)
HCI 중에서도 특히 사용성과 관련된 내용을 집중적으로 다루는 단체로서 1년에 한번씩 매년 여름에 UPA 학회를 개최하며 주로 실용적인 부분에 초점을 맞춘 논문들이 많이 발표된다.
◆ Human Factors and Ergonomics Society 홈페이지(http://www.hfes.org)
주로 인간공학과 관련된 HCI 주제들을 많이 다루는 홈페이지로써 다른 단체들보다 오래된 역사를 가지고 있다. 1년에 한번씩 HFES 연례 모임을 주최한다.
◆ International Federation for Information Processing 홈페이지
(http://www.ifip.or.at)
주로 정보 처리 관점에서 HCI에 대한 연구를 하는 단체로서 HCI에 대한 교육, 사용자 중심의 소프트웨어 개발 방법론, 장애자를 위한 HCI, 소프트웨어의 안정성 등을 집중적으로 다룬다.
◆ Association for Information Systems의 SIGHCI 홈페이지(http://melody. syr.edu/hci/index.cgi)
주로 정보 소프트웨어 분야에서 HCI를 연구하는 사람들이 모인 단체로서 최근 들어 매우 활발한 활동을 하고 있는 단체이다. 1년에 두 번씩 여름에는 AMCIS 학회에서 그리고 겨울에는 ICIS 학회에서 HCI 관련 워크숍을 개최하고 있다.
◆ Association of Computer Machinery의 SIGGRAPH 홈페이지(http:// www.siggraph.org)
컴퓨터 그래픽을 전공하는 사람들이 주로 모이는 학술 단체로서 1년에 한번씩 대규모의 학회를 개최한다.
◆ Society for technical communication의 Usability Special Interest Group(http: //www.stcsig.org/usability/index.html)
테크니컬 커뮤니케이션을 전공하는 사람들의 학술 단체로서 1년에 한번씩 STC 컨퍼런스에서 관련 연구를 발표한다.
◆ 한국 정보과학회 산하 인간과 컴퓨터 상호작용 연구회(SIGHCI, http://www. hcikorea.org)
1992년부터 시작해서 꾸준하게 활동을 하고 있는 국내 대표적인 HCI 학회로써 매년 겨울에 보광에서 학회를 개최한다.
◆ 인간공학회 산하의 UI 연구회(http://esk.or.kr)
최근에 발족한 HCI 관련 학술 단체로서 주로 인간공학, 산업공학, 산업디자인, 인지과학, 전산학 등을 전공하는 연구자들이 모인 단체. 2003년 8월에 세계 인간공학 총회를 서울에서 개최했다.
◆ 한국 HCI 연구회 홈페이지(http://www.hci.or.kr)
인간과 컴퓨터 상호작용에 관한 순수한 연구 모임으로서 컴퓨터 소프트웨어에 관한 디자인, 사용성 평가 응용 등의 연구를 하고 있으며, 현재 다양한 전공(전산학, 소프트웨어 공학, 심리학, 인지과학, 디자인) 연구자들이 모임에 참가하고 있다.

by 길동 | 2006/07/27 16:42 | web개발 보따리 | 트랙백(23) | 덧글(2)

트랙백 주소 : http://gildong0.egloos.com/tb/190454
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from ~ 2006년, 과거의.. at 2006/12/29 10:11

제목 : SWT/JFace를 이용한 자바 애플리케이션과 UI..
유연한 UI 작업을 위한 소프트웨어 개발 방법론 ...more

Tracked from walmedrx.com at 2008/06/22 03:15

제목 : Cheap Levitra
just checking out your site. good stuff....more

Tracked from stlouisperso.. at 2008/08/17 12:37

제목 : Missouri Personal Injury Att..
nice site. keep up the good work....more

Tracked from http://i.biv.. at 2008/09/07 05:09

제목 : Markus Wegenke
MJ51Rt1 | Peoria Illinois Crisis Hotline ...more

Tracked from http://d.cut.. at 2008/09/16 12:44

제목 : Teksing To Taks
nuLCEt0 | Indian Penagra Karmagra Where To Buy ...more

Tracked from http://d.dah.. at 2008/09/19 03:27

제목 : Sharp 55r-wp4h Remote Control
GJmUat0 | Euphorbiaceae Euphorbia Tirucalli Firesticks ...more

Tracked from http://g.dem.. at 2008/09/26 01:40

제목 : Larval Stage Nemesis Liberalis
hc2a8t0 | Grizzly 1023s Tablesaw ...more

Tracked from http://i.dem.. at 2008/10/17 06:09

제목 : Airline Tickets Ebern
n3eC9t0 | Grammar Reformat Or Re-format ...more

Tracked from Bryant S at 2008/12/01 04:44

제목 : Greetings
God love google, very neat website. Thank you....more

Tracked from Trikke at 2009/01/30 08:49

제목 : Hi
Looking for something else, but nice site....more

Tracked from LocalAdLink at 2009/02/06 04:40

제목 : just stopped by.
Looking for something else, but cool site....more

Tracked from Personal Inj.. at 2009/02/07 09:13

제목 : just meandered in.
Looking for something else, but very fine site. All the best....more

Tracked from Medical Malp.. at 2009/02/08 11:20

제목 : Hiya
Gotta love yahoo, very cool site. Thanks....more

Tracked from Trikke at 2009/02/16 07:26

제목 : just stopped by.
Very nice site. All the best....more

Tracked from Personal Inj.. at 2009/02/16 07:45

제목 : Hi
Looking for something else, but very fine site. All the best....more

Tracked from http://www.t.. at 2009/02/19 01:00

제목 : anesthesia drugs severe musc..
RQzQft0 | powerhouse honda menominie michigan ...more

Tracked from Soma online. at 2009/08/18 13:08

제목 : Addiction to soma.
Tempra soma. Soma side effects. Pictures of soma 750 mg.. Soma seeds. Soma prescription medicine. Soma....more

Tracked from Amaryl. at 2009/08/24 14:34

제목 : Amaryl medicine.
Amaryl....more

Tracked from Soma prescri.. at 2009/08/24 23:43

제목 : Soma fm.
Soma....more

Tracked from Neurontin. at 2009/08/25 12:47

제목 : Neurontin 100mg.
How do i wean off neurontin. Neurontin vs lyrica. Neurontin and clonipin. Neurontin....more

Tracked from How cialis w.. at 2009/08/25 22:27

제목 : Cialis vs viagra.
Buy cialis. Cialis. Cialis with viagra. Cheap cialis. Buy cialis phentermine....more

Tracked from http://backg.. at 2009/09/12 11:32

제목 : backgrounds blueprint
GOkart0 | organic food on-line health snack bars ...more

Tracked from Xanax. at 2009/11/03 02:20

제목 : Generic xanax.
Xanax side effects. Xanax online without prescription. Xanax norx needed one day fedex overnight delivery. Pharmacy order generic xanax. Xanax. Geniric xanax....more

Commented by hooney at 2006/07/30 22:29
최근엔 HCI를 대신해서 HII(Human Information Interection))가 각광받죠. 정보를 접근하는 수단으로써 컴퓨터라는 한계가 사라진지 오래됐으니깐요~
Commented by 보름달 at 2006/10/11 20:49
●달통위젯을 사용해 보셨습니까?
네이버 위젯/ 다음 위젯바 / 야후 위젯/ 미니플 위젯과
꼼꼼하게 비교해 보시면
디자인에서 차이를 느끼실 수 있습니다.
다음자료실 http://file.daum.net/ 에서 [달통]을 검색하시거나
http://www.daltong.com 웹사이트에서
지금 무료로 다운로드 받으시고 테스트사용해 보십시오.

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶