User Interface

2008.04.08 23:36 컴퓨터/컴퓨터 이야기
 

컴퓨터 프로그램을 작성하다 보면 하나의 프로그램으로 모든 기능을 다 하는 경우가 있고, 또는 규모가 커지거나 기능이 많아지면 여러 개로 나누어서, 여러 개의 프로그램이 마치 하나의 프로그램처럼 실행되도록 하는 경우도 있습니다.

또한 프로그램은 하는 일의 특성에 따라 화면에 자신을 출력하는가 하면 아예 꽁꽁 숨어서 제 할 일을 다하는 프로그램도 있습니다. 이렇게 모양이나 형태가 모두 다르지만 그 중에서도 제일 어려운 부분이 UI가 아닌가 싶습니다. UI, User Interface. 즉, 사용자와 프로그램 간의 대화를 맡는 부분입니다.

일단 화면에 출력되는 부분이라 사용하는 사람의 눈을 만족 시켜야 하고 사용 방법의 편리성을 제공해야 하기 때문에 디자인 능력과 함께 엄청난 인내가 필요합니다. 같은 프로그램이라고 하더라도 어떤 사용자를 만나느냐에 따라 일의 난이도가 하늘과 땅 차이로 발생할 수 있기 때문입니다.

UI는 칼의 손잡이와 같아서 서로 다른 성격과 생각을 가지고 있는 사용자 입장을 골고루 반영해야 하기 때문에 매우 힘이 듭니다. 힘들 뿐만 아니라 모든 작업이 끝나도 계속 변경 요청이 들어 오는 것이 또한 UI입니다.

그러나 힘든 만큼 다른 사람으로 감탄의 목소리를 직접 들을 수 있는 것이 또한 UI입니다. 특히 그래픽 인터페이스를 제공하는 요즘 OS에서는 자신의 실력을 사용자에게 직접적으로 보여 줄 수 있는 것이 UI입니다.

예전에는 컴퓨터가 화면에 출력할 수 있는 능력이 매우 빈약해서 대부분 글자에 선 문자를 섞어서 거의 표나 그리드 형태였습니다. 흑백에서 컬러로 바뀌던 시절에는 같은 프로그램인데도 글자 색상만 몇 가지를 섞어서 출력해 주면 죽인다라는 얘기를 들을 때도 있었습니다.

하얗던 심장 문자를 그저 빨간색으로 보였다 감췄다만 했을 뿐인데 주위에서 칭찬을 해 주더라는 것이죠. 이러니 \|/- 문자를 계속 반복으로 출력해서 마치 풍차가 도는 모양만 보여 주어도 감탄을 아끼지 않는다는 것이죠.

더욱 어려워진 UI 프로그래밍

그러나 지금은 가로 해상도가 1600 이상인 경우도 있고, 필요하다면 멀티 모니터를 이용하여 더 넓은 해상도를 사용할 수 있으며 다양한 방법으로 그래픽을 출력할 수 있기 때문에 예전 프로그래머 보다 수십 배는 더 많이 고심하고 고생해야 하는 것이 당연해 졌습니다.

갑자기 UI 말씀을 드리고 싶은 것은 UI 프로그램의 어려움을 말하고 싶은 것입니다.

저는 이런 프로그램을 만들고 싶었습니다. 사람과 비슷한 생각을 내놓는 프로그램을 말이죠. 예를 들어 학교 성적 프로그램 같은 경우 학생들의 시험 성적을 선생님께 숫자로만 알려줄 것이 아니라 간단 명료하게 그림으로 보여 주자는 것이죠.

선생님께서 관리해야 할 숫자가 너무 많습니다. 반 평균 성적과 학년 평균에다가 그 많은 학생 하나하나에 대해서 반 석차와 학년 석차뿐만 아니라 이전 시험 성적과 비교해서 얼만큼 올랐는지 아니면 떨어졌는지를 판단해서 아이들을 교육 시켜야 하는데, 그렇지 않아도 피곤하신 선생님께서 얼마나 고단하시겠습니까? 대부분의 프로그램이 이렇게 숫자 정보를 출력할 것입니다.

제가 생각하는 프로그램 UI

그러나 저는 선생님께서 직접 이 숫자, 저 숫자를 비교해서 때릴(?) 학생과 칭찬할 학생을 피곤하고 고단하게 판단하게 할 것이 아니라 프로그램이 알아서 계산해서 그림으로 알려 주자는 것이죠. 성적이 떨어진 학생은 때릴 횟수 만큼 몽둥이를 여러 개 출력하고 성적이 올라 칭찬할 학생에게는 얼만큼 칭찬해야 할지 손 그림을 여러 개를 출력합니다.

이제 선생님은 숫자에서 해방 되었습니다. 이제 골치 아프게 숫자를 비교할 필요가 없어 졌습니다. 그저 몽둥이 개수를 세서 그만큼 때리면 됩니다. 그리고 손바닥 그림 수 만큼 아이에게 머리를 쓰다듬어 주면 끝입니다.

그러나 !!

그러나 선생님 중에 칭찬할 아이에게 싸다구를 날리시는 분이 계십니다. 오류죠. 이것이 UI의 오류입니다. 다른 분은 칭찬으로 알아 보는 손바닥이 이 분은 싸다구가 된 것이죠. 그래서 머리를 그려 주었습니다. 머리를 쓰다듬어 주라는 뜻인데, 선생님은 꿀밤을 때립니다. 역시 에러. 그럼 어떻게 해야 할까요?

그래서 프로그램 전문가는 이미지만으로 표현하는 것은 한계가 있다고 말하면서 그림과 함께 짧은 글씨를 넣어 주라고 합니다. 그래서 손바닥에 “칭찬” 이라고 써 넣으면 그나마 싸다구를 날리는 일은 적어지겠지요. 그러나 어떤 선생님은 이렇게 해도 아이에게 체벌하시는 분도 계실 것입니다. 왜냐? 없다는 보장은 어디에도 없습니다.

모니터 해상도가 떨어 질 수 있고요, 하필 그때 안경을 가지고 오지 않으셔서 글씨를 읽지 못할 수 도 있으니까요.

그러나 정작은 프로그래머가 이미지 뿐만 아니라 적당한 단어를 찾아야 하는 고충이 새로 생겼습니다. 대충 비슷한 이미지는 구했는데 뭐라고 쓰나? 글을 써 놔도 따지시는 분이 계시죠. 버튼에 [OFF] 라고 써 놓으면 기능을 끄는 버튼이다. 아니다 현재 꺼져 있는 상태를 보여 주는 버튼이다. 아니다 끄는 버튼. 아니 지금 현재 상태를 보여주는....아이쿠~

프로그래밍은 종합 예술?

컴퓨터의 표현 능력이 높아져 가면서 프로그래머들은 한층 힘들어 졌습니다. 프로그래밍 능력 뿐만 아니라 디자인 감각도 함께 가지고 있어야 하며 필요에 따라 적절한 단어를 구사해야 합니다. 도움말도 작성해야 하기 때문에 작문 실력과 보기 좋게 편집할 수 있는 능력까지 겸비했다면 금상첨화죠.

최근에 임베디드 리눅스 시스템의 매력에 빠졌습니다만 대부분 UI를 작성할 필요가 없다는 것을 큰 장점으로 생각했었는데, 최근에는 점점 UI를 요구하는 경우가 많아지네요. 이런 요구에 따라 그래픽 라이브러리도 여러 개 나오고 있습니다만 이 모두가 또 학습해야 될 숙제라 반가우면서도 밉기도 합니다. 아예 방법이 없으면 못한다고 할 텐데 말이죠. ^^

지금도 UI, 특히 Graphic User Interface로 고심하시는 프로그래머가 저 어디 있을 것이라는 생각에 잡담하듯이 적어 보았습니다.

이 댓글을 비밀 댓글로
    • 나는그네
    • 2008.04.09 00:02
    제가 볼땐 오피스 2007의 리본이 참 대단하다는 생각을 했었는데 개발이나 리눅스 같은 것을 안 써봐서 세부적인 면은 잘 모르겠네요
    • 오피스 2007 구조를 보면 참 대단하다라는 생각을 하게 됩니다.
      너무 크게 바뀌어서 처음에는 감당이 안 되었는데 쓰면 쓸수록 편하더군요.
      물론 이전 구성이 그리울 때도 많습니다만. ^^
    • 궁금이
    • 2008.04.09 00:17
    안녕하세요~ 본문이랑은 상관없지만 브라우져쓰면서 약간 문제가 있어서 문의드립니다^^;
    네이버나 다른 사이트는 로그인정보 저장과 자동로그인까지 한꺼번에 잘 돼거든요~
    그런데 유독 다음에서만 문제가 생겨요~
    로그인정보를 잘못 입력했나 싶어서 전부 삭제하고 즐겨찾기에서도 삭제한뒤
    네이버에서 "다음"을 검색하여 바로가기를 클릭하면 다음 오류메시지가 뜹니다.ㅠㅠ
    로그인시도는 하지도 않았는데 "입력하신 아이디 혹은 비밀번호가 일치하지 않습니다."
    이런 창이 떠요~
    • 다음에서요? 저도 다음을 사용하는데 자동으로 로그인하도록 해서
      사용하고 있습니다.
      제가 설정하여 사용하는 방법을 올려 보도록 하겠습니다. ^^
    • 궁금이
    • 2008.04.09 00:20
    위에서 저도 모르게 저장을 눌러서^^;
    아무튼 그런 오류가 계속되는데 왜 그러는지 알 수 가 없어서 도움 요청하고자 글 드립니다^^;
    혹시 몰라서 오류 창 주소 남겨요
    http://login.daum.net/Mail-bin/login.cgi?dummy=1497793077
    • 싸움꾼
    • 2008.04.09 01:07
    싸다구라는 말씀 너무 웃깁니다. ㅋㅋㅋ
  1. 가끔 들러서 글을 읽고 갑니다. 오늘 글은 유난히 와 닿네요. 제가 UI 프로그래밍을 하는 건 아니지만, 마침 잠깐 아는 사람의 웹프로그램을 봐주고 있는데, Interface때문에 고민이 많이 되네요. 처음부터 모든 정보를 입력하게 해야 할까? 단계별로 입력하게 할까? 수정은 어떻게 이루어지게 해야 하나...등등.
    UI에는 백그라운드의 로직까지 아우르는 뭔가가 있는 것같습니다. 로직을 모르고서는 UI를 구성할 수가 없네요. 이래저래 힘든 밤입니다. ㅡ.ㅡ
    • 생각할 것이 너무 많죠? ^^
      간단한 프로그램도 사용자의 요구에 따르다 보면
      또는 일이 진행하다 보면 원래의 프로그램 보다
      곱절이 되는 경우가 많습니다. ^^
    • 묵묵부답
    • 2008.04.09 09:32
    UI... 하나의 학문으로 발전하고있는 모습입니다. 의사소통은 인간과 인간에서 인간과 기계 이제 기계와 기계간의 소통... 앞으로는 환경과의 소통으로 발전해가리라 믿습니다.
    • 네, 충분히 학문으로 발전하고 분석이 필요한 부분입니다.
      최종적으로 사람이 사용하는 부분이기 때문에 대단히 중요한 부분이라고
      생각합니다.
    • 두운초온
    • 2008.04.09 11:17
    싸다구! 정겹네요.
    빠마리, 빠말때기 등도 우리 동네에서 재미있게 쓰는 말입니다.
    • 빠마리와 빠말때기는 처음 듣는데요. ^^
      경상남도 어느분께서 사투리를 심하게 사용하시는 분을 한 번 뵌적이 있는데,
      알아 듣기 정말 힘들더군요. ^^
    • hanpedro
    • 2008.04.09 11:25
    jwbrowser의 로그인프로그램의 리스트등을 편집할 수 있습니까?
    • 좋은날
    • 2008.05.23 19:44
    그런 고충이 또 있군요... 창작엔 원래 고충이 따르기 마련이죠..
    그래도 힘내세요 ^^*
  2. jwmx님의 동영상을 무단으로 올렸다고 말씀드렸던 포스트입니다.
    예전 텍큐에서 발행한 글들을 정리하며 다시 재발행하게 되어 연관글로 트랙백 남깁니다. ^^
    주말이네요.. ^^ 편안하고 즐거운 시간 되시길... (_ _)
    • 아! 정말 좋은 글입니다. 그별님의 글을 보면 참 꼼꼼하시다라는 생각이 듭니다. UX에 대한 개념을 머리 속으로 어렴풋이 생각하고 있었는데, 그별님의 글로 명확하게 개념이 잡혔습니다. 감사합니다. ^^