GUI FOR EMBEDDED SYSTEM

클릭만을 이용한 시스템 구축환경GUI는 명령어를 통해 컴퓨터 작업을 수행하고, 문자를 통해 수행작업에 대한 결과를 알 수 있었던 기존의 PC 작업환경에 새로운 혁신을 가져온 것은 사용자 인터페이스이다. GUI의 창시자는 맥의 아버지로 불리는 제프 라스킨(Jef Raskin)으로 그는 가전제품처럼 사용하기 쉽고 간단한 사용자 중심 PC 환경 구축을 위해 1984년 매킨토시 컴퓨터에 GUI 시스템을 구축하였다. 하지만 여러 가지 문제로 인해 매킨토시 컴퓨터에 적용되었던 GUI 시스템은 빛을 보지 못하였고, 1980년대 후반부터 IBM PC 및 워크스테이션에 사용되었던 윈도우 시스템을 통해 일반 사용자들에게 GUI 시스템이 널리 알려지기 시작하였다.GUI 시스템의 가장 큰 장점은 시스템을 실행 및 구축하는 데 전문적인 지식이 필요하지 않다는 점이다. 기존 명령어 방식 시스템을 활용하기 위해서는 사용자가 명령어와 문법에 관련된 지식을 가지고 있어야 하며, 관련된 지식을 습득하기 위해 기계적인 연습과 암기가 이루어져야만 했다. 또한, DOS를 비롯한 각종 시스템에 따라 서로 다른 명령어가 구현되기 때문에 컴퓨터를 사용하는 것은 전문적이고 숙련된 개발자들 위주로 진행되어 왔다.하지만 IBM PC가 보편화되고 GUI 시스템이 활용되기 시작하면서 컴퓨터는 관련 분야 전문가들에게만 사용되는 IT 솔루션이 아닌 광범위한 정보를 공유하는 필수 개인용 기기로 탈바꿈하기 시작하였다. 컴퓨터가 급속하게 보급되고 인터넷을 통한 글로벌 네트워크 환경 구축됨에 따라 시작된 정보화 시대 개막의 이면에는 편리하고 쉬운 컴퓨터 사용 환경을 만든 GUI 애플리케이션의 존재가 적지 않은 영향을 미쳤다고 할 수 있을 것이다.GUI, PC를 넘어 임베디드 시스템으로산업용 자동화기기, 개발용 플랫폼 등에 구현되는 과거 임베디드 시스템에서는 텍스트 데이터를 통한 개발 환경 구축이 가능했기 때문에 GUI 관련 애플리케이션이 별로 활용되지 않았다. 하지만, PMP, 내비게이션, 휴대전화, PND와 같은 개인용 가전기기가 활성화됨에 따라 임베디드 시스템에도 다양한 그래픽을 지원할 수 있는 GUI 솔루션에 대한 필요성이 증가하고 있다.임베디드 시스템은 일반 PC 환경에 비해 낮은 성능에서 동작하기 때문에, 개발하는 임베디드 시스템의 성능과 용도를 고려한 다양한 GUI 애플리케이션 개발 환경을 보여주고 있다. 임베디드 시스템에서의 개발 환경은 프로그래밍을 통해 개발자들이 GUI 환경을 구축하는 방법과 전문적인 GUI 툴을 이용해 시스템 관련 디자이너들이 애플리케이션을 구축 하는 두 가지 방법으로 크게 나뉘고 있다. 개발자들이 GUI 환경을 구축하는 방법은 자바, GTK와 같은 그래픽 구현 프로그래밍을 통한 유저 인터페이스를 구축하는 것으로 한정된 성능에서 꼭 필요한 GUI 애플리케이션을 구성하는 데 적합하다. 전문적인 GUI 툴을 이용한 유저 인터페이스 구축은 휴대전화, PMP, PND, MP3P와 같이 그래픽 환경을 중요시하는 사용자 디바이스 중심 개발 환경에 적용되고 있다.지금부터는 임베디드 시스템에서 적용되는 대표적인 GUI 애플리케이션에 대해 소개하고 각 제품군들의 특징 및 활용방법에 대해 알아보는 시간을 가지도록 하겠다.JAVA GUI자바는 대부분의 OS에서 구현 가능한 GUI 애플리케이션으로 AWT와 스윙(Swing) API를 통해 사용자가 원하는 인터페이스 환경을 구축할 수 있다. AWT(Abstract Windows Toolkit)는 GUI 프로그래밍을 위한 클래스들의 집합으로 윈도우를 사용하면서 자주 접할 수 있는 프레임, 버튼, 텍스트 필드 등의 기본 GUI 컴포넌트들을 클래스로 제공한다.AWT를 이용하여 GUI 프로그래밍을 할 경우에는 OS마다 가지고 있는 고유한 컴포넌트들을 사용하기 때문에 어떤 OS에서 프로그램을 실행하느냐에 따라 서로 다른 모양의 프로그램을 볼 수 있다. AWT는 컴포넌트 프레임 생성을 통해 다른 컴포넌트를 포함할 수 있는 컨테이너(container)를 만들어 GUI 응용 프로그램 실행시킨다.스윙은 향상된 GUI 프로그래밍 환경을 제공하기 위한 패키지로, 기존의 AWT에서 제공하는 대부분의 컴포넌트들과 동일한 개념의 스윙 컴포넌트를 제공하고 있다. 스윙은 각 컴포넌트의 내용을 나타내는 모델과 컴포넌트의 모습을 나타내는 뷰, 그리고 컴포넌트의 동작을 나타내는 컨트롤러를 각각 다른 객체로 분리하여 다루는 모델-뷰-컨트롤러 (MVC) 패턴과 뷰와 관련된 작업을 담당하는 룩-앤-필 코드를 통해 구현된다.스윙으로 변환한 이후 AWT에서는 할 수 없었던 스윙만의 기능들을 추가하여 실시하는 작업은 향상된 GUI 애플리케이션 구현을 위해 필요한 작업이다. AWT를 스윙으로 변환하는 이유는 스윙 컴포넌트가 수행될 때 플랫폼으로부터 어떠한 네이티브 코드(native code)도 가져다쓰지 않아 플랫폼에 독립적이므로, 네이티브 코드에 의존하지 않고 특정 플랫폼에 제한되어 있지 않아서 AWT보다 강력한 기능을 갖게 되는 것이다.자바를 이용한 GUI 애플리케이션은 위와 같은 복잡한 프로그래밍 과정을 거쳐서 이루어지기 때문에 타임투마켓에 불리한 측면이 있지만, 여전히 많은 임베디드 솔루션 개발에 활용되는 개발 툴이다.QTQT는 1996년 초 노르웨이의 Trolltech에서 발표한 크로스플랫폼(Cross-platform)을 지원하는 C++ GUI 프로그램 개발용 라이브러리로 GUI를 구축하는데 필요한 모든 기능을 제공한다. QT는 푸쉬버튼, 메뉴, 다이얼로그같은 그래픽 객체(Graphical Object)와 이것들을 구현하기위해 필요한 함수들의 모임(Library)이다. 그래픽 객체들은 위젯 이라고도 불리며 이 위젯에 대응하는 함수들을 합한 것을 툴킷(Toolkit)이라고 한다.QT는 풍부한 위젯 제공을 통해 사용하기 쉽고 화려한 인터페이스를 제공하기 때문에 프로그램 개발과 확장에 용이하며, C++ 클래스로 캡슐화된 구현을 통해 편리한 사용 환경을 구축하고 상속을 이용한 기능 확장이 가능하다.QT는 QObject라고 불리우는 클래스에 신호를 내는 기구와 그 신호를 슬롯(멤버함수)에서 받는 기구가 갖춰져 있다. 객체 신호를 다른 객체 슬롯에 연결함으로써 프로그램의 동작이 결정되며, Motif에서 사용하는 Callback방식이 아닌 Signals/Slots Mechanism을 사용한다.QT는 표준 GUI를 구성할 수 있는 풍부한 양의 위젯을 제공한다. QT가 최초로 선보였던 OSF Motif 스타일은 다소 투박한 GUI 시스템을 갖추었기 때문에 Motif 등을 이용해 이를 개량하려는 시도가 이루어졌다. 이를 통해 발전된 GUI 스타일이 CDE 스타일로 이는 QT 2.0 이상 버전에서부터 지원되어 본격적으로 QT를 통한 GUI 애플리케이션 활용이 이루어진 계기가 되었다. QT 2.2 버전에서는 beveling나 마우스 하이라이트 효과 등을 나타내는 IRIX워크스타일 기반 SGI스타일이 지원되었으며, 리눅스 사용자들을 위한 Motif 플러스 스타일도 추가되었다. 현재 많이 사용되고 있는 3.0 버전에서는 맥킨토시 사용자들을 위하여 아쿠아(Aqua) 스타일도 추가 지원되며 모든 컴퓨팅 및 임베디드 환경에서 GUI 애플리케이션 활용이 가능하게 되었다.QT는 GUI 디자인과 코딩 단계가 분리되어 있어 약간의 시간이 요구되며 개발 환경에 따른 라이선스 비용이 소요되지만, GUI 솔루션 구축에 필요한 모든 기능을 가지고 있기 때문에 폭넓은 임베디드 시스템에서 활용되고 있다.플래시 라이트플래시는 인터넷 환경에서 GUI 및 동영상을 구축하는 데 가장 많이 사용되어 대중들에게도 친숙한 유저 인터페이스로 임베디드 시스템용 GUI 애플리케이션 플래시 라이트 제품군을 선보이고 있다. 플래시 라이트는 휴대전화를 비롯한 임베디드 솔루션에서 텍스트 GUI보다 향상된 플래시 GUI 환경을 구축하고 애니메이션 기능을 지원한다. 이 제품은 국제적으로 통용되는 유니코드 지원을 통해 메모리 소비를 감소시키며, 일관된 데이터 관리 및 XML데이터 처리, 개선을 통해 빠른 개발 환경 구축이 가능하다.플래시 라이트 개발사인 어도비시스템즈(www.adobe.com)는 최근 모바일 디바이스 및 임베디드 솔루션에 적용되는 차세대 플래시 기술을 적용한 어도비 플래시 라이트3를 발표했다. 이 제품은 모바일 환경에서의 풀 브라우징 기능을 지원하며 PMP, 스마트폰, PND 등 휴대용 임베디드 디바이스에 향상된 플래시 형식의 GUI 콘텐츠를 제공한다.플래시 라이트3는 자원 관리 기능의 개선을 통해 상대적으로 낮은 성능을 가지고 구현되는 임베디드 시스템에 최적화 되어 개발자들은 플래시 비디오(FLV)가 포함된 모바일 콘텐츠뿐 아니라 월페이퍼, 스크린세이버, 모바일 게임과 같은 복잡한 움직임을 요구하는 GUI 애플리케이션에도 플래시 라이트 제품군을 적용할 수 있다.플래시 라이트는 심비안(Symbian) S60 2, 3에디션, 퀄컴 브루2.x/3.x, 마이크로소프트 윈도우 모바일5 등 다양한 플랫폼에서 구동되며, 각종 OEM 플랫폼 상의 임베디드 운용체계도 지원한다. 이 제품은 NTT 도코모, 노키아(Nokia)등에서 생산하는 최신형 휴대전화 솔루션에 내장되어 대표적인 상용 GUI 애플리케이션으로 자리매김 하고 있다.어도비 아태지역 모바일 및 디바이스 부사장인 다니엘 브롱길(Daniel Brongiel)은 “플래시 라이트3는 데스크탑에서 사용되는 영상 콘텐츠를 그대로 모바일 및 임베디드 솔루션에 적용할 수 있는 솔루션”이라며 “휴대용 임베디드 솔루션 사용자들은 이제 장소에 구애받지 않고 플래시 기반으로 제작된 다양한 GUI 콘텐츠를 활용할 수 있을 것이다”라고 말했다.참고자료GLADE를 사용한 리눅스 데스크탑 어플리케이션 개발 - 선정필자바 GUI 프로그래밍 - 최성진
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지