UI에대해 어떻게 생각하시나요?
저는 여태 오픈소스 개발자및 커뮤니티(이하 오픈소스)들은 대부분 UI에대한 개발은
거의 이뤄지지않는다고 생각이들었습니다.
물론 지금도 그생각은 변하지않았습니다.
대부분 sw들이 UI에대한 개선은 거의 이뤄지지않은체
기능우선을 하는 개발에 치우친거같다는 생각이듭니다.
그렇기때문에 대부분 초보자들은 오픈소스를 허접한 sw를
만드는 단체라고 생각해버리는 사람이있습니다.
솔직히 상용보다는 못하겠지만 그렇다고 허접한 sw를 만든다라고 생각은 안듭니다만.
실질적으로 저도 한때 그런생각을 했었습니다.
하지만 그때나 지금이나 변함이없는것은 오픈소스는 ui에대한 고려는 절대적으로 부족한거같습니다.
아래는 MS빌게이츠의 말중에 나온말입니다.
"인텔리전트 에이전트나 마인드 매퍼 같은 인공지능소프트웨어가 단순한정보를 유용한 지식으로 바꿔주게 될것"
(참고 : http://blog.naver.com/kimseye3/130000277701)
이말인즉 누구나 정보를 가진사람이라면 누구나 정보제공자가될수있다는 말도될꺼같다는생각이듭니다.
그렇다면 그제공자가 IT초보일수도있고 IT고수일수도있을것이고
또한 그정보도 IT정보일수있고 아닐수도있겠죠.
그모든 점에서 sw라는것은 정보창출을 목적으로 하는 도구의 총칭이라고 생각합니다.
이런 정보제공의 도구가 사용하기어렵게 만들어진거라면 아무리기능이좋아도 쓰기가 힘들겠죠.
그렇기때문에 표준화가 생기고 상호규약이생기고 일반화, 정규화등의 방법론이생기며
그에따른 개발도구는 보면 rad나 기타 리소스툴을 이용한 프로그래밍등이있을것이고
이를일반적으로 사용하기 쉽게 하기위해서 객체지향및 이벤트드리븐이라는 프로그래밍방식등이있습니다.
솔직히 저는 그것들을 구분할줄모릅니다.
그러나 그것의 구분은 필요합니다.
그러나 제가아는 한 그것의 구분은 쉽게 알려지지않는걸로 기억합니다.
물론 그만큼 어렵기때문이겠죠
말이 길어져서 여기서 결론을 내고 그에따른예를 쓰겠습니다.
결론인즉 UI를 좀더 발전시키는 sw및 발전에따른 어떤 필요성을 인식할필요가있다는겁니다.
제가 배웠던 swe에는 그런 필요성이 기술되지않았던걸로 기억하는데..
결코 바람직하지않는것같다는생각이듭니다.
-- 예 시작 --
또 제가 말하는 UI의 발전이라함은 아래와같은 것도 범위에 속한다할수있습니다.
예컨데 GUL같은걸 좀더 대중화시켜 누구나 이것을 만들수있게하는겁니다.
물론 그렇게하려면 그필요성이 있어야겠죠. 그렇게하기위해서는
그필요성을 끊임없이 찾고 알려 그것의 필요성을 자각하게하면 적어도 그에따른 관심이 많아질껍니다.
그렇다면 그것이 수면위로 오르고 수면위로 오를때 관련 개발도구등도 대중화되겠죠.
그러면 GUL같은건 발전하지않을까요?
또 GUL이 대중화되면 누구나 사용할수잇을테고 또 자신들의 생각을 GUL로 표현해 이렇게하면 더 편한
인터페이스를 제공할수잇지않겠는가라는 방법론에대한 논의도 생길것이고
그렇게되면 실제개발자들은 그것을 인용해 그대로 적용하면 정말 기능과 UI모든면에서
MS에 필적하는 프로그램을 만들지않을까싶습니다.
또 대중화되면서 기능이 그에따른 형태로 변화 발전될것입니다.
(지금같은경우 기능은 그대로인데 UI가 바뀌면해매는 사람들이많죠때문에 대부분 메이져급sw는 UI의 변화를 최소화하려합니다)
또 이렇게함으로서 용어의 통일화가 자연스럽게 이뤄지겠죠
왜냐면 사람들에게 대중화가되는데 용어가 이렇게불리고 저렇게 불리우면 답답하겠죠.
그러므로 이용어역시 통일이 될꺼라생각합니다.
또 어떤개념을 머릿속에그려야하는데
옆에서 암만 볼펜으로 그림그려가면서 목에 피터져라 설명하는데 이해못할수있습니다.
듣는저로서는 엑세스를 배웠기때문에 엑세스에 맞춰서 설명해주면 좋앗을텐데 구태여 틀리다고
그렇게 설명하고 나중에 찾아보니까 엑세스의 그거랑 똑같은거아니냐고하니까 비슷한거같다라고 말하더라구요
솔직히 짜증에의한 약간의 살인충동이 느껴지는 시점이었습니다.
-- 예 끝 --
적절한예인지는 몰라도 짧은예를 주었습니다.
보면 대부분 단수가 높은 개발자들은 코딩을 하거나 설계정도를 할뿐입니다.
그러나 정작 그원리와 그이해는 정말 단수낮은 저같은 보통사람들이 개발해내곤합니다.
(그렇다고 제가 슈퍼맨이라는말은 아니구용 ^^; 말이그렇다는..)
초보자들은 복잡한 개념을 이해하기위해서 좀더 쉬운방법론과 좀더 쉬운 연구를 합니다.
중요한것은 기능의 중요성만큼 UI의 중요성도 있다고 생각합니다.
저는 이부분을 예전부터 강조를 해왔었습니다.
그래서 지금은 프로그래밍으로 하는것보다 아예 글로서 어떤 기술을 적어놨습니다.
나름대로 제가 백서라고 만든부분들인데 모듈에대한 설명들을 해놓은것들이있습니다.
물론 이것은 제취향에따라 모듈들(문서)을 만든건데 보면 OS, GAME, 유틸리티, 등의 sw에대한 모듈들을 만들어놨습니다.
만든지 상당히지났고 지금도 만들고있는데 어떤것들은 실질적으로 그렇게 개발된것이많았습니다.
저는 이것들이 sw의 표준이되었음좋겠다는생각이듭니다.
물론 다소 정리가안된 자료들이라 보기에 힘들지모른다는생각으로 외부에 공개는 하지않았습니다만.
만약 그것이 필요하다생각되면 시기적절하게 100%공개할의향도있습니다.
UI도 기능만큼 sw에있어서 정말 중요한요소입니다.
기능개발에잇어서 중요한 실행시간, 성능, 리소스점유율등이중요할지모르지만
무엇보다도 UI에있어서 필요한것은 쉽지만 그필요성에대한 이유입니다.
이렇게하면 뭐가 어떻게되어서 좋았다라는식으로 때문에 편리했다라는..
어떤분들은 저의 UI에대한 이야기를 보면서 GUI를 개발하면 성능면에서 늦지않냐?
라고 말합니다.
그렇기때문에 제가 UI라고 말한겁니다. GUI던 CUI던 개발하는게 좋지않겠습니까?
또 그것을 개발하는것만큼 삽질시간도 상당히 줄일수있다고 생각들지않을까요?
짧은식견으로쓴글이라 글에 충분한 전달이되지않을수도있겠네요.
나름대로 그에따른 필요성을 적어놨습니다.
PS 태어나서 몇번째인지는 모르겠지만 금요일날 서울에갔었습니다.
저녁식사때였는데 식사중에 IT에 종사하는 어떤분들의 이야기를 엿들었습니다.
사용자들의 인터페이스에대한 이야기를 하고있었습니다.
좀더편리한 UI에대해 서로 밥앞에다 두고 언쟁을 하고있는것같아보였습니다.
때문에 그분들을위해서라도 UI의 필요성이 강력히 요구된다고 생각합니다.
정말 저도 이글쓰면서 제가 어찌나 무책임하게 글을쓴다는것을 느끼게되더군요
여러분들은 UI와 그리고 그런 저의 생각에대해 어떻게 생각하시나요?
원래 GUI는 이벤트 핸들링을 위해서 시그널, 쓰레드등의 개념이 들어가기
원래 GUI는 이벤트 핸들링을 위해서 시그널, 쓰레드등의 개념이 들어가기 때문에 어느정도 복잡할 수 밖에 없습니다. 단순히 화면에 그림만 그려줘서 되는 것이 아니기 때문이죠.
하지만 이런 GUI에 대한 개념적인 면에서는 어느 GUI 툴킷을 쓰던 커다란 차이가 없으므로, 하나를 익힌 다음에는 다른 것을 쓰는데 크게 노력이 들지 않습니다.
이런 개념적인 부분을 제외한 면에서 가장 쉽게 배울 수 있을거라고 개인적으로 생각하는 pygtk나 wxPython을 한번 사용해 보시길 권해드립니다.
GUL이 뭔진 잘 모르겠지만 python 정도면 초보자가 익혀서 사용하는데에 충분히 쉽고 좋은 언어라고 생각합니다.
응용이 부족하다는 데는 동의합니다.
훌륭한 도구들이 있는데 그것들을 서로 잘 엮는 방법이 부족한 걸 많이 보게 됩니다.
저만 해도 고전적인 fetchmail + procmail + spamassassin + mutt + ...을 유기적으로 맞물리게 하는 데만도 꽤 시간이 걸렸으니까요. 작은 것이 아름답다는 철학 때문에 해당 기능 외에 외부로 가는 통로를 제공하거나 하는 데는 씀씀이가 덜 한 것 같습니다.
그나마 표준 입출력이라는 IPC가 있어서 많이 쓰이고, 고차원에서는 CORBA 같은 게 개발되어서 GNOME이나 KDE에서 그 산물이 쓰이고 있죠. dbus라는 것도 새로 제안되어서 쓰이기 시작하고 있습니다.
ps. 글을 쓰실 때 좀 정리를 해주시기 바랍니다. 분명 공감할 수 있는 얘기고 논조가 공격적이거나 하지 않아도 이렇게 너저분하게 대충 쓰면 그냥 무시당하거나 엉뚱한 답을 듣게 됩니다.
ps2. 요즘 lftp에 끌려서 gui를 입혀볼까 하는데 popen 말고는 딱히 방법이 없어서 고민중입니다.
Re: 응용이 부족하다는 데는 동의합니다.
좀조심할필요가있네요.. 나름대로 길게 써야할필요는 있다고생각들었지만 그것이 적절한지는 미지수라 일단 길게 써봤습니다.
------------------------------------
F/OSS bless you... ^^*
사실 GUI프로그래밍시에는 도구가 절대적이라고 생각합니다.특히 대규모
사실 GUI프로그래밍시에는 도구가 절대적이라고 생각합니다.
특히 대규모 프로그램이 아닌, 작은 유틸용 프로그램을 생각하고 있다면 도구없이 제작하기란 여간 어려운 일이 아닙니다.
이러한 이유로 비주얼 베이직은 꽤나 큰 호응을 받을 수 있었다고 생각합니다.
현재 리눅스에 필요한것은 이러한 비주얼 베이직 역할을 할 수 있는 언어겠지요.
사실 QT디자이너와 PyQT궁합은 대단한 것이지만, QT가 GPL계열의 라이센스라서 참 안타깝습니다. BSD나 LGPL이었으면 더 고민할 것 없이 QT를 썼을 것입니다.(음.. 사실 Python을 그렇게 좋아하는편은 아니군요.)
이런저런 고민끝에, 작은 GUI유틸은 NetBeans와 Swing을 이용해서 자바로 만들고 있습니다. 그리고 나름대로 만족하고 있습니다.
덧붙여, 리눅스의 UI가 윈도우나 다른것에 비해 떨어진다고 전혀 생각하지 않습니다. 다만, 몇몇사람들에게 생소할 뿐입니다. 그리고 이러한 몇몇사람들에게 생소함을 없애줄 노력을 할 사람들은 별로 없는것 같습니다. 그리고 저는 할 필요도 없다고 생각합니다. 오픈소스는 지금처럼 자신의 가려운곳을 긁어나가고 똑같이 가려운곳을 호소하는 사람들에게 도움을 주면 된다고 생각합니다.
경험상 남이 이부분이 가려울꺼야~ 라고 생각하고 만든 프로그램은 당연히 나에게는 도움이 안되었고 더불어 다른사람은 그곳을 전혀 가려워하지 않았습니다. :roll:
poklog at http://poksion.cafe24.com/poklog/
Re: 응용이 부족하다는 데는 동의합니다.
정말 작은 프로그램들이 합쳐져서 정말 복잡한 일을 해내는 유닉스의 철학은 매력적이죠 ;)
procmail 에 clamassassin, f-prot-wrapper 등을 붙이고... 외부 프로그램들을 통한 필터들을 붙였을 때의 효율이란 :D
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
[b]pok[/b]님, 자바는 어떨까요 ~_~swing 라이브러리라고
pok님, 자바는 어떨까요 ~_~
swing 라이브러리라고 있습니다. ( c만 알면 누구나... )
[quote="pok"]이러한 이유로 비주얼 베이직은 꽤나 큰 호응을 받
http://www.realsoftware.com/
real basic 이라고 비쥬얼 베이직 역할을 할 수 있는 건 이미 있습니다 :)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
[quote="JuEUS-U"][b]pok[/b]님, 자바는 어떨까요 ~
넵. 만족합니다. 넷빈즈도 만만히 볼 물건이 아니더군요.
호. 이런것이 있었군요. 음.. 역시 리눅스 좋아~(... :oops: )
poklog at http://poksion.cafe24.com/poklog/
저는 dummy999님과는 약간 생각이 다릅니다.이미 [url=h
저는 dummy999님과는 약간 생각이 다릅니다.
이미 gtk, qt가 개발중에 있습니다.
활발하게 활동중이며, 정말 괜찮습니다. 강력하구요.
위키에도 실제 프로그램에 응용하는 방법이 소개되어 있으며, 레퍼런스 가이드(gtk, qt)도 있습니다.
UI가 허접하다고 느껴지게 되는것은, 다소 생소하기 때문이지요.
한컴리눅스의 경우 KDE 기반인데 윈도우와 흡사하게 UI를 설정해놓았습니다.
그리고 리눅스에서 쓰이는 대부분의 응용프로그램들의 경우 gnome, kde에서 어떻게 보이게 할건지 설정이 가능하구요.
(win32에서 디스플레이 등록정보처럼 말이죠)
윈도우로 치면 처음 깔았을 때는 '최적 모양'이지만 많은 분들이 '최적 성능'으로 바꾸는 것과 비슷한 이치일까요..
Linux를 쓰면서 하면 안 될 것들
1. 데스크탑을 윈도우나 맥스럽게 꾸미지 말자.
2. 리눅스가 최고라고 떠들지 말자.
3. 윈도우 잘 쓰는 사람한테 리눅스 쓰라고 강요하지 말자.
4. 명령어 몇개 안다고 잘난체 하지 말자.
5. 리눅스니까 어렵게 쓰지 말자.
UI쪽 중요한 문제는 오래전부터 많은 사람들이 느끼고 있는 부분입니다
UI쪽 중요한 문제는 오래전부터
많은 사람들이 느끼고 있는 부분입니다.
저도 솔루션 업체에서 5년정도 있다보니
초창기에는 UI가 모 대수냐 싶었는데,
시장에서 많은 제품과 사람들 접하다 보니
이제는 제품에서 UI쪽이 오히려 키인것 같더군요.
스티브잡스는 진작에 알았던것 같고, iriver도 마찬가지구요.
빌게이츠도 개발은 손뗀지 오래됐지만 지금도 제품 인터페이스는
마지막까지 관여한다고 하더군요.
UI쪽 연구하는 분야는 이미 독립적으로 분리되어 있습니다.
HCI(Human computer interaction)이라는 이름으로 불리는데
많은 연구와, 저널, 학회 활동 등이 이루어지고 있습니다.
이 분야는 UI 포괄하여 좀더 넓은 분야인데,
hci로 한번 검색해보세요.
권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -
[quote="spacelee"]UI쪽 연구하는 분야는 이미 독립적으
HCI의 풀네임을보니 HMI(Human Machine Interface)나
MMI(Man Machine Interface)가 생각나네요
공장쪽에서는 이걸 많이씁니다.
ILOG나 데이터뷰라는 그런 개발도구가 사용됩니다.
개인적이지만 이거 정말 불편한거같았습니다.
- 저는 OS의 UI에대한 논의이기이전에 개발의 UI를 먼저 말하고싶군요
왜냐면 OS도 개발되는 대상이므로 결국 OS는 포괄적으로 개발에는 UI가 필수적이라고 말씀드리고싶습니다.
때문에 하나의 OS로서 누군가의 기호에맞는 프로그래밍보다는 크게 개발에는 UI가 필수이기때문에
그에따르는 모두에게 맞는 UI를 개발하는쪽이 더적절한거같다는생각이듭니다.
결론인즉 남이 가려울곳을 긁어주는 UI가 아니라 그런곳을 첨부터 만들지않는것이 UI라고 생각합니다.
나름대로 CUI에서 파이프같은 UI가 얼마나 편리한지 저도 좀느껴봤습니다.
그러나 더편리할수있다면 지금보다는 더 좋지않을까요?
개인적으로 저는 지금의 CUI가 완성된 형태의 모습은아니라고 봅니다.
왜냐면 모국어도 100%지원안되는 환경이있으며
인터페이스가 초보자들로하여금 거부감을들게하며
(아무것도없는검은화면에 흰 프롬프트만 깜빡이는..
거의 충격이죠)
또 알수없는 명령어와 에러의 이유도 모르고..
(물론 윈도우라해서 다를건없습니다. 다만 좀심한에러뜨면
에러의 원인을 찾아주려하죠)
오타가 나오면 자동보정같은거도있었음좋겠는데 없는거같고
(윈도우같은데서 쓰는 자동완성기능같은..)
여튼 좀 황당한 요구지만 그런게 가능했음좋겠다는겁니다.
(물론 황당하지만 또 불가능한건아닙니다.)
그리고 좀더 구체적으로 말하자면 저는 GTK같은걸 언급하고자 쓰레드를 연게아닙니다.
구체적으로말하자면
그것을 누구나 UI만 전용으로 개발할수있고
그것을 누구나 HTML 태그같은 형태로 만들수있고
그것을 누구나 편집 가능하고
그것을 누구나 사용하기가 쉬워야하며
그것을 언제든지 사용가능해야하며
( 실제 파이어폭스에서 GUL은 바로 쓸수있게 된거같더라구요)
그것을 어느 OS에서라도 적용가능해야하며
그것을 필요하면 어떤 언어든지 개발때 만들어진 리소스를 적용할수있어야하는..
(플래시에도 적용되고, 자바, vb, html 등에 적용가능해야할껍니다.)
결국 GUL(;파이어폭스용 GUI구현기술, XML태그를 사용하고있음)같은것보다 더욱더 기능이 강화된 그런 기술의 필요성을 말씀드리고자하는겁니다.
만약 이게 발전된다면
이미만들어진 gtk, qt 이외 C, 자바, C++, .NET, 파이선 같은
이런 언어들이 그렇게 난립할가치가없을것이고 하나로 통합되지않을까싶군요.
(C와 자바같은 언어를 같은선상에두는건 어패가있습니다만 다만 여기서 제가하고싶은말은
그것들이 죄다 안만들어져도 될언어였다는것이라는거죠)
기존에 만들어지고있는 GUL이거나 또는 다른뭔가라도 그런사양(스팩, 표준)을 만들어두고
그대로 발전시켜가면서 한쪽에서는 사양에대한 타당성을 검증하고(설계)
한쪽에는 그에준하는개발도구및 적용사례를 만들고(개발)
한쪽에서는 그것을 좀더 멋지게 꾸미는(사용)
그런 형태가 이뤄져야 한다고 생각합니다.
예전에 저는 UI가 단순히 OS에의존적이라고 규정짓고 리눅스만은 좋은 UI를 가져야한다라는
지금보다는 꽤 단순한 논리를 펼쳤습니다.
하지만 지금은 그보다 좀진보된 생각이라고 생각합니다.
MS가 외골수인건알지만 이것이 대중에의해 퍼트려진다면(오픈소스의 잠재능력중에 대중성을 빼놓을수가없죠)
MS도 따라할껍니다.
나름대로 논리를 펼쳐봤습니다만.. 이게 어떤관점에서 어떻게 될지모르겠습니다.
그러나 지금은 UI가 절실히 필요하고 앞으로는 지금보다 덜하거나 같지않을것이란거죠.
PS1::
앞으로는 GUI를 비롯해 GUI이상의 UI에서는 그것을 표현하기위한 도구가 절대적으로 필요할것입니다.
그런관점에서 볼때 GUL같은건 시작에 불과하죠.
PS2::
바람직한 개발이라고 생각한다면
UI가 개발된상태에서 기능이 구현되어야 한다고 생각합니다.
기능이 구현된상태에서 그기능을 UI에 어떻게 접목시킨다면 그것은 상당한 모순이 생길수있습니다.
이렇게 하려면 체계화및 정리가되어있어야합니다.
앞으로 오픈소스에서 개발자와 사용자의 관계가아니라
개념과 이론을 설계자하는 설계자도 포함되어야한다고 생각됩니다.
항상 윈도우나 맥같은것에서 잘나가는 것들을 포팅하거나 모티브로인한 개발은
조금씩 뒤쳐진다는 느낌이 지배적이었죠
하지만 오픈소스에서 개념을 만들고 공유하고 정리한다면
오픈소스가 뒤쳐질이유가없을껍니다.
이렇게함으로서 만들었지만 사용자가 없는 쓸모없는 프로그램이기전에
충분히 개념과 이론을 논하고 조사함으로서 가능성이 있고 또 정리가되었을때
가치있는 SW로서 만들어진다면 좋겠군요
PS3 ::
이건 번외지만
향후 CPU에대한 트랜드는 가상화, 멀티코어로 흘러갈꺼같네요
그거도 준비하는게 좋겠군요
PS4 :: 제가 글써놓고 몇차례 수정중입니다.
적절하지않는표현을 수정하고있는데 좀많네요 ^^;
ps5 ::
한마디로 지금개발중인 차기버전의 gnome이나 kde의 mock-up도
GUL같은걸로 만들면좋겠군요
목업이란..
네이버사전 : http://terms.naver.com/search.naver?query=mock%20up
KLDP : http://bbs.kldp.org/viewtopic.php?t=70397&highlight=
------------------------------------
F/OSS bless you... ^^*