본문 바로가기

UI, UX

GUI란? 컴퓨터와 사용자를 연결하는 다리

안녕하세요 :)

 

오늘은 GUI에 대해 간단히 알아보려고 합니다. 현대 시대는 디지털 시대라고 해도 과언이 아닌데요. 그 때문에 GUI는 우리 삶에 깊숙이 자리 잡고 있습니다. 컴퓨터, 스마트폰, 그리고 다양한 디지털 기기에서 우리가 쉽게 작업을 수행할 수 있는 이유는 바로 GUI 덕분이죠. 

출처: https://www.javatpoint.com/gui-operating-system

 

과거 CLI가 중심이었던 시대와 달리, GUI는 직관적인 그래픽 요소를 통해 초보자도 쉽게 디지털 기기를 다룰 수 있도록 설계되어 있습니다. 이번 글에서는 이런 GUI가 무엇이고, 어떻게 발전해왔는지 간단히 알아보도록 하겠습니다.

 

시대의 흐름이 CLI - GUI인 만큼, CLI가 무엇인지에 대해 먼저 살펴보고 넘어가도록 하겠습니다.

 

CLI란?

CLI는 Command Line Interface로, 사용자가 직접 명령어를 입력하여 컴퓨터와 상호작용하는 텍스트 기반 인터페이스입니다.

출처: https://www.itrelease.com/2021/04/advantages-and-disadvantages-of-command-line-interface-cli/

 

GUI 이전 시대에 주로 사용되었으며, 대표적인 예시로 MS-DOS, Linux의 터미널 등이 있습니다. CLI는 강력한 기능과 빠른 속도를 자랑하지만, 사용자가 명령어를 정확히 알고 있어야 하기 때문에 초보자에게는 진입장벽이 많이 높다는 단점이 있었습니다. 

 

반면 GUI는 어떨까요?

 

GUI란?

GUI는 Graphical User Interface의 약자로, 사용자가 컴퓨터와 같은 디지털 기기와 상호작용할 수 있도록 돕는 그래픽 기반 인터페이스를 의미합니다. 

출처: https://www.seeedstudio.com/blog/2021/07/19/what-is-python-gui-programming-uses-frameworks-tutorial/

 

예를 들어, 우리가 스마트폰에서 앱 아이콘을 터치하거나, 컴퓨터 마우스로 파일을 드래그하고 클릭하는 모든 작업이 GUI를 통해 이루어집니다. 즉, GUI란, 버튼, 아이콘, 창, 메뉴 등 시각적 요소를 통해 어떠한 명령기반 행위를 직관적으로 처리할 수 있도록 설계된 환경입니다.

 

GUI의 가장 큰 장점은 누구나 쉽게 사용할 수 있도록 설계되어 있다는 점입니다. 과거에는 명령어를 직접 입력해야 하는 CLI를 사용해야 했지만, GUI의 등장으로 마우스나 터치스크린만으로도 다양한 작업을 수행할 수 있게 되었습니다.

 

GUI vs CLI

GUI와 CLI는 각각 다른 특성과 장점을 가지고 있는 인터페이스로, 사용자가 디지털 기기와 상호작용하는 방식을 정의하죠. 두 인터페이스의 차이점을 알아볼까요?

출처: https://www.javatpoint.com/gui-operating-system

  1. 초보자에게 뭐가 더 유리할까?
    • GUI는 직관적인 그래픽 요소를 기반으로 하여 초보자도 쉽게 사용할 수 있습니다. 버튼 클릭, 아이콘 선택, 창이동 등은 학습 없이도 바로 수행이 가능하죠.
    • 반면 CLI는 명령어를 직접 입력해야 하는 텍스트 기반 인터페이스로, 사용자가 명령어를 정확히 알고 있어야 작업이 가능합니다. 이런 특성 때문에, 초보자에게는 어렵지만, 숙련된 사람에게는 GUI보다 빠르고 효율적인 작업이 가능해집니다.
  2. 작업 속도는 뭐가 더 빠를까?
    • GUI는 간단한 작업에는 효율적이며, 즉각적인 시각적 피드백을 제공합니다. 하지만 복잡한 반복 작업에서는 효율이 떨어질 수 있습니다.
    • CLI는 스크립트와 단축기를 활용해서 다량의 데이터를 처리하거나 반복 작업을 자동화하는 데 매우 유리합니다. 이것이 전문가들이 CLI를 선호하는 이유 중 하나죠.
  3. 유연성은 뭐가 더 좋을까?
    • GUI는 사용자가 시각적 요소를 선택하고 조작하는 방식으로 제한된 작업만을 제공합니다. 제공된 메뉴와 버튼 내에서만 작업이 가능하므로 고급 사용자는 제약을 심하게 느낄 수 있죠.
    • 반대로 CLI는 사용자가 명령어로 모든 작업을 처리할 수 있어 높은 수준의 유연성과 제어를 제공합니다. 시스템 관리자나 개발자는 CLI를 통해 더욱 세밀한 작업을 수행할 수 있죠.
  4. 학습 곡선이 어떻게 될까?
    • GUI는 직관적이기 때문에 매우 쉬워 초보자도 별 학습 없이 사용할 수 있습니다. 버튼과 아이콘 클릭 정도의 난이도죠.
    • 하지만 CLI는 사용자가 명령어와 구문을 숙지해야 하므로 학습 곡선이 좀 가파릅니다. 이를 극복하게 되면 CLI는 매우 유용한 도구로 사용될 수 있죠.
  5. 활용 사례는?
    • 다른 두 특성 덕에 활용하는 환경도 다른데요,
    • GUI는 일반 사용자 중심의 환경에 적합합니다. 스마트폰, 웹 브라우저, 소프트웨어의 대부분은 GUI를 사용하여 직관적이고 사용하기 쉬운 환경을 제공하고 있죠.
    • CLI는 서버 관리, 개발, 데이터 분석 등 전문 지식이 필요한 작업에서 주로 사용됩니다. 서버를 원격으로 제어하거나 대규모 데이터 처리 작업에는 CLI가 강력한 도구로 활용되고 있습니다.

 

GUI의 미래

현대의 GUI는 우리의 일상에서 떼려야 뗄 수 없는 존재입니다. 스마트폰, 컴퓨터, 웹 브라우저, 그리고 가전제품에 이르기까지 거의 모든 디지털 제품에 GUI가 사용되고 있죠. 

현대 GUI는 단순히 버튼과 아이콘을 넘어, 터치스크린, 제스처, 음성 명령과 같은 직관적인 입력 방식을 지원하고 있습니다. 모바일 앱과 웹 애플리케이션은 사용자가 원하는 작업을 빠르게 수행할 수 있도록 점점 더 사용자 친화적으로 설계되고 개발되고 있습니다. 저는 이런 GUI가 미래에는 크게 변화할 것이라 생각합니다. 미래에는 AI, VR/AR과 같은 기술을 통해 GUI 또한 그에 맞춰 발전할 거라고 생각하고 있습니다. 

 

출처: https://medium.com/@duhoang/how-to-build-vr-uis-with-unity-and-oculus-rift-part-1-f359e41f309a, https://www.apple.com/newsroom/2024/02/apple-announces-more-than-600-new-apps-built-for-apple-vision-pro/

먼저 3D 공간에서 디지털 콘텐츠와 상호작용 할 수 있는 환경이 생길 것입니다. 손동작이나 시선 추적과 같은 자연스러운 방식으로 설계될 것이며, 물리적 디바이스에 대한 의존도가 어느정도 줄어들 것입니다. 이건 현대 시대에도 어느정도 구현이 되어 있죠?

또한, 인공지능을 활용한 인터페이스는 사용자의 다음 행동을 예측하고, 보다 개인화된 UX를 제공할 것입니다. 사용자가 필요로 하는 정보를 미리 제안하거나, 상황에 맞게 화면 커스텀이 가능하도록 조정하는 기술은 기존 UX에 비해 더 나은 UX를 제공할 수 있을 것입니다.

마우스나 키보드에 의존하던 방식에서 벗어나 음성과 제스처를 중심으로 한 인퍼테이스가 점차 보편화되고, 이런 방식은 사용자와 기술 간의 경계를 지금보다 더 허물어줄 것입니다.

이런 방향으로 GUI가 발전해 나간다면, 사용자 층 또한 확대될 것입니다. 장애를 가진 사람들이 디지털 환경을 더 쉽게 사용할 수 있도록 설계된 인터페이스가 탄생할 것입니다. 위와 같은 방식이면, 물리적 제약 없이 디바이스를 활용할 수 있는 방안을 유연하게 설계할 수 있기 때문이죠. 

 

결론을 말하자면, GUI는 앞으로 단순한 디지털 기기 인터페이스의 역할을 넘어, 사용자와 기술을 잇는 핵심 다리로 계속 발전해 나갈 것입니다. 기술의 발전 속도와 함께 GUI의 혁신도 가속화되며, 일상을 더욱 편하게 만들어 줄 것입니다. 

 

끝내는 말

오늘은 GUI에 대해 알아보았습니다. CLI가 뭔지, GUI는 또 뭔지 차이점이 어떻게 되는지 이해가 되셨을까요? 저는 개발자인만큼 CLI가 더 좋긴 하지만, GUI가 없었다면 이런 작업에 관심을 가지지도 않았을 것 같습니다. 'GUI의 미래'에서는 미래 GUI에 발전 가능성 및 방향에 대해 작성해보았는데, 아무래도 제가 지금 VR/AI 쪽 제품을 만드는 회사에서 일을 하고 있다보니 생각이 치우친 경향이 좀 있는 거 같습니다 ㅎㅎ.. 

 

아무튼! 갑자기 삘 받아서 GUI를 작성해보았는데, 이번 글도 도움이 되셨으면 하고 여기까지 하고 끝내겠습니다.

 

읽어주셔서 감사합니다 :)