2009년 5월 20일 수요일

오픈 소스의 정의와 오픈 소스를 해야하는 이유

UIzard를 통해 저도 이제 오픈 소스 프로젝트의 소유자가 되었습니다. 하지만 여전히 어떻게 진행해야할지 막막해서오픈 소스의 정의부터 그 진행방법까지 알아보면서 포스팅을 시작하기로 마음먹었습니다. 오늘은 오픈 소스의 정의에 대해 알아보면서 오픈 소스를 해야하는 이유에 대해서 정리해보았습니다.

먼저, 위키피디아에서 오픈소스의 정의에 대해서 알아보았습니다.
오픈 소스(open source)는 소프트웨어 혹은 하드웨어의 제작자의 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어 혹은 오픈 소스 라이선스에 준하는 모든 통칭을 일컫는다. 어원에 대해서는 History of the OSI 자료에 따르면, 1998년 2월 3일에 넷스케이프 브라우저의 원시 코드에 대해 어떠한 형태로 공개할까하는 전략회의에서 붙여진 새로운 용어라고 설명되어 있다.
소스 코드를 공개한다고 해서 모두 오픈 소스인 것은 아니다. 예를 들어, 마이크로소프트는 전체 비율로 보았을 때 극소수의 고객(주로 정부나 거대 다국적 기업 또는 대학교 및 연구소)들에게 마이크로소프트 윈도의 소스를 공개했다. 오로지 보안 유지를 위해서만 소스를 직접 수정할 수 있으며, 그 수정본을 재배포하는 것은 금지되어 있다. 이것은 오픈 소스의 의의에 어긋나므로 이러한 경우는 오픈 소스라 부르지 않는다.
위의 정의를 보기좋게 요약해보면,

- 오픈 소스는 오픈 소스 라이선스에 준하는 모든 통칭이다.
- 오픈 소스에서 원시코드는 특정 계층이 아닌 누구나 열람할 수 있다.
- 오픈 소스에서 제작자의 권리는 유지된다.
- 오픈 소스는 라이센스에 따라 재배포가 가능하다.

요약해놓고 보니 편합니다. 뭐, 평범한 정의이고, 평소에 생각하던 개념과 크게 다르지 않습니다만, 새삼 곱씹어 보면, "원시 코드는 특정 계층이 아닌 누구나 열람할 수 있다."라는 문장이 재미있습니다. 특히, 위의 마이크로소프트 윈도의 예와 함께 생각해본다면 말이죠.

우선, 특정 계층이 아닌 누구나 열람할 수 있도록 해놓더라도, 프로그래밍 언어라는 장벽이 있는 이상 일반인이 아닌 개발자라는 범주의 사람들만이 열람하게 될 것입니다. 그리고 그 중에서도 해당 오픈 소스를 필요로 하는 사람만이 열람하게 될 것입니다.

결국, 소스를 필요로 하는 특정 계층이 형성되는 것이죠. 물론 재배포 가능 여부와 보안 유지 등에 있어서는 마이크로소프트 윈도 예에서의 그것과는 차이가 있습니다만, 양쪽 특정 계층 모두가 소스코드를 수정하여 자신의 필요와 의도에 맞게 변형하여 사용하고 싶어한다는 점은 같다고 볼 수 있을 것 같습니다.

즉, 오픈을 하더라도 "내가 공들여 만든 프로그램을 남에게 뺏기게 되는 것이 아닐까?" 또는 "괜히 공개했다가 나만 완전히 개털리는 건 아닐까?"라는 생각은 조금은 어리석은 생각이라는 거죠. 오픈 소스를 시작하더라도, 소스에 접근하는 사람들은 대부분 해당 소프트웨어나 하드웨어를 자신의 입맛에 바꾸어 사용해보고 싶거나, 버그 수정을 직접하고 싶은 사람들일 가능성이 큽니다. 마이크로소프트 윈도의 예에서 윈도우를 자신의 연구나 회사 사정에 맞게 수정하고 싶어하는 특정 계층과 크게 다르지 않죠. 또 라이센스가 법적 분쟁의 가능성을 최소화해주고 있는 이상, 완전히 똑같은 복제품으로 누군가가 자신과 똑같은 권리를 주장할 수도 없기 때문에 공개라는 것이 불리한 것만은 아닙니다.

물론, 돈이라는 측면에서 본다면 차이가 있습니다. 오픈 소스를 통해서는 수입을 기대하기 어렵습니다. 그에 반해, 마이크로소프트는 윈도의 소스를 특정 계층에게 공개하고 그 특정 계층로부터 엄청난 수익을 올릴 것입니다. 하지만 윈도만큼의 큰 규모에 견줄만한 오픈 소스는 얼마 존재하지 않습니다. 만약, 어느 한 개발자 또는 개발자 그룹이 윈도에 필적할만한 프로그램을 만들었다면 오픈 소스보다는 클로즈드 소스로 창업을 하는 것이 합리적인 방법일 수도 있을 것입니다.

하지만, 중소규모의 프로젝트라면, 오픈 소스로 진행하는 것이 좋다고 봅니다. 형성된 특정 계층이 프로젝트에 새로운 기능을 추가해주고 버그를 찾아줄 것이며, 나아가서는 그것을 고쳐줄 지도 모릅니다. 이것은 클로즈드 소스로 프로젝트를 진행하였을 때 기대할 수 있는 수익보다 그 가치가 훨씬 클 수도 있습니다. 또한 프로젝트에 대한 자신의 권리는 유지되면서 프로젝트는 계속해서 진화할 것입니다. 프로젝트가 올바른 방향으로 잘 이끌어지고 유지된다면, 개발자는 소프트웨어로서 세계에 이바지할 수 있을 것이고, 돈도 많이 벌 수 있을 것입니다.

사람들 각자는 서로 다른 생각을 갖고 있고, 자신이 해야할 일이 있기 때문에 소스를 복제하여 재배포하거나 모방하는 일이 발생한 가능성은 낮습니다. 오히려, 소스를 공개하게 되면 넓은 범위의 사람들이 특정 계층을 형성할 것이고 그것은 프로젝트를 조금씩 성장시켜줄 것입니다. 특히 개인 개발자들에게는 자신이 만든 프로젝트를 검증 받고 그 우수성에 대해 알릴 수 있으며, 다양한 피드백을 기대할 수 있는, 그리고 명예를 얻을 수 있는 좋은 기회이자 방법이 될 것입니다.

마지막으로, UIzard의 오픈 소스 프로젝트를 응원해주시기 위해 Luke Kenneth Casson Leighton 씨가 보내주신 이메일을 소개하면서 글을 마치겠습니다. 지난 일주일간 혼란스러웠던 저에게 큰 힘이 된 글입니다. 번역이 좀 건방지지만, 오픈 소스 프로젝트를 시작하는 데 있어 저에게 용기와 동기를 주는 내용입니다. 오픈 소스 프로젝트한다고 해서 마냥 가난한 것만은 아니라 다행입니다!

ryu, congratulations on writing something

that people find useful and exciting.

don't let it go to your head - it's just code,

and they're just people.

i had to deal with what seemed like fame, too,

when i was working on samba, ten years ago.
there are lots of ways to make your life easier

when you "properly" embrace free software ethics

and principles, and lots and lots of resources and people

who will help and make this a big and successful,
and useful project.

if you try to "control" everything yourself, it will get messy.
you may also get offers from companies to buy your code.

please don't take them.

there are enough proprietary tools out there,

and you can make enough money and help far more people

with free software.
take the developer of Ruby on Rails as an example:

look him up.  he makes his money from consultancy

and on giving talks, world-wide.
whatever you decide, good luck,

and i hope to be in touch perhaps when things calm down :)

if you keep this as a free software project,

and you need any help from me, you only have to ask.

 

류야 사람들이 쓸모있다고 느끼고 즐거워할만할걸 써낸거 ㅊㅋ
니 머리로 흘러들어가게 두지마 그냥 코드니까

그리고 걔네도 그냥 인간이니까
나도 십년전에 삼바(Samba) 만들때 유명세처럼 보이는 것을

대처해야했었거덩
니가 "적절하게" 공짜 소프트웨어 윤리와 규칙을 포용한다면

니 삶을 더 쉽게 만들 방법도 많아
그리고 이걸 더 크고 성공적으로 쓸모있는 프로젝트로 만들게

도와줄 사람들과 자원들도 많아

니 혼자서 다 컨트롤하려고 하지마 그럼 힘들어질꺼니까
니 코드를 살려고 회사에서 너한테 제의할지도 몰라

받아들이지마
세상에는 유료 툴들도 충분히 많이있고

게다가 넌 공짜 소프트웨어로도 돈을 많이 벌면서

중생을 도울수 있느니라
Ruby on Rails 개발자를 예로 들어보자

걔는 상담해주고 연설해주는데서 돈을 벌어, 세계적으로
니가 뭘 선택하든 굳럭

그리고 상황이 좀 진정되면 너랑 연락하고 싶네
만약에 니가 이걸 공짜 소프트웨어 프로젝트로 놔둘꺼고

나한테 도움이 필요하다면 나한테 묻기만 하면되


(장수민(24세)이라는 신제품 번역기의 번역 결과입니다.)


프로필 및 경력

이름 : 류성태

생년월일 : 1986년 07년 18일

신장 : 180cm

체중 : 78kg

학부전공 : 전자전기공학

대학원전공 : 전자전기컴퓨터공학

관심분야 : 모바일, 웹, 디자인, UX



수상 경력 및 경험


2005 킹고 디지털 콘테스트 홈페이지 금상

2005 킹고 디지털 콘테스트 PDA배경화면 은상

2005 성균관대학교내 관련 홈페이지 제작 다수

2006 스키마(skima) 2기 팀장

2006 성균관대학교내 관련 홈페이지 제작 다수
2007
킹고 디지털 콘테스트 홈페이지 은상

2007 성균관대학교내 관련 홈페이지 제작 다수

2007 NDSL용 게임 개발 (임베디드시스템설계특론 프로젝트)

2007 8086 보드 제작 및 8086 Assembly SW 개발 경험

2008 삼성전자 휴대폰 아이디어 경진대회 성균관대학교 대상 입상, 본선 입선 입상

2008 블루투스 무인주행 RC(Atmega128) 개발 경험

2008 성균관대학교 정보통신공학부 전자전기공학사 심화과정 조기졸업

2008 한국전자통신연구원(ETRI) 하계 연구연수생 2개월

2008 한국전자통신연구원(ETRI) 연구연수생 : iPhone SW 개발

2008 성균관대학교 일반대학원 전자전기컴퓨터공학전공 입학/휴학

2008 한국 CISSP협회 홈페이지 디자인

2008 3 SW저작권 보호 아이디어 경진대회 은상 입상

2008 다음, 구글 위젯=가젯 경진대회 2위, 우수상 입상

2008 한국 마이크로소프트 비스타 리뷰 공모전 대상 입상

2009 대한민국 매쉬업 경진대회 우수상 입상

2009 SKT-MS T옴니아 소프트웨어 개발 경진대회 은상 입상

2009 UIzard 오픈소스프로젝트 Owner

2009 컴투스 : 삼성전자 앱스토어용 어플리케이션 개발

2009 위자드웍스 : SKT TSTORE용 iSuitUp 개발

2009 2학기 성균관대학교 소프트웨어공학 연구실 복학




 

활동 단체

 

- 마이크로소프트 윈도우프론티어 2기 (활동중)

- 성균관대학교 정보통신공학부 시스템 컨설턴트 (활동중)

- 성균관대학교 정보통신처 지원 웹제작팀 스키마 (활동종료)

- 성균관대학교 봉사 동아리 로타랙트 (활동종료)

- 성균관대학교 정보통신공학부 축구동아리 파이어볼스 (활동종료)

- 대학생 창업/웹제작팀 npTeam (활동종료)

2009년 5월 18일 월요일

[2008년 1학기 임베디드시스템설계] 블루투스 무인 주행/주차 RC카

토요일 기차에서 노트북에 외장하드를 꼽고 영화를 보다가 기차가 덜컹거리는 바람에 외장하드 전원이 빠지면서 고장이 나고 말았습니다. 중요한 자료가 많은 관계로 급히 용산에 가서  데이터 복구센터에 AS를 맡겨놨는데, 혹시나 못살릴까 싶어서 컴퓨터에서 자료를 찾던 중에 작년 이맘 때쯤 전공 수업 프로젝트로 만들었던 블루투스 무인 주행/주차 RC카와 관련된 자료를 찾았습니다.

 


자동 주행하는 모습



신호등 인식하는 모습

 


곡률이 큰 코스를 주행하는 모습

 


자동 주차하는 모습

 

 

첫번째 동영상에서는 RC카가 턴을 완수하지 못하고 코스를 벗어나버리는데요, 이건 적외선 센서를 사용하다보니 주행 보드 밖의 카페트가 어두운 색이다 보니 도로로 인식해서 그런 것이었습니다. ㄷㄷ

 

정말 오래전에 만들었던 거 같은데, 돌이켜 보니 아직 1년도 채 안됐네요. 저 동영상을 촬영한 때가 6월 말이었으니 말이죠. 저 동영상을 촬영한 날 수업이 제 대학교 마지막 수업이라 그런지 감회가 새롭네요. 아래는 만들면서 찍은 사진들 ㄷㄷ


2009년 5월 16일 토요일

OpenHack 2009와 Ajaxian.com에 소개된 UIzard!!

지난 수요일 저녁에 갑자기 야후코리아의 이태우님으로부터 전화가 왔습니다.
uizard.org가 서버가 트래픽 초과로 접속이 안된다는 연락이었죠... 깜짝놀라서 무슨 일인가 했더니... 야후코리아의 정진호님이 OpenHack2009이 열리는 런던으로 출장을 가셔서 UIzard를 소개해주셨던 겁니다!! 이후에는 ajaxian.com에도 소개되고 3일 사이에 4000명에 가까운 전세계 분들이 왔다가셨습니다. ㄷㄷㄷ


덕분에 이메일 문의도 폭주하고, 무료로 서버 호스팅을 해주시겠다는 외국분들도 여럿 계셨습니다. 너무 감사드리고 싶고, 앞으로 그 기대에 부응하기 위해 노력해야겠습니다. 사실 오픈소스 프로젝트로서 어떻게 진행해야할 지, (늘 그렇게 말해왔지만...) 답답한 면이 있었습니다만, 이번 일로 인해 탄력을 좀 받을 거 같습니다.

조만간 구글코드를 통해 프로젝트 진행을 시작할 거 같구요, 몇몇 프로젝트 멤버도 모이고 있는 중입니다. 외국분들도 많은 참여의사를 보여주셧는데, 당분간은 국내 개발자위주로 진행을 하다가 어느 정도 시스템이 갖춰지면 외국분들도 함께해서 더 강력한 툴
로 거듭나도록 해야겠습니다.

트위터에서 본 재미있는 반응인데요, 저로선 좀 쑥스러운 반응입니다. "Korean developers scare me." 라고 적어주셨는데, 개노가다의 결과인 UIzard를 보시고 여러명에서 만드셨다고 생각하시나 봅니다ㄷㄷ
소스코드 공개를 하면 들통날 제 허접한 실력으로 인해 한국 개발자들이 같이 욕먹기 전에 외국개발자들을 정말 Scare하게 만들 UIzard Open Source Project에 참여하시고 싶으신 분은 xenoz0718@gmail.com으로 연락주세요!! 함께 멋진 툴을 만들어 보아요!!

마지막으로 아직 많이 부족 UIzard를 소개해주신 정진호님과 늦은 시간에도 급히 미러링 사이트를 구축해주신 이태우님께 정말 감사드립니다!


택스트큐브에서도 Syntax Highlighter를 쓰자!

Tistory에서 Textcube로 이사를 오고나서 가장 먼저 한 게 Syntax Highlighter를 적용하는 것이었는데요... Tistory에서 하던 데로 하니 바로 되지는 않더군요ㅋ
몇 가지 꼼수를 써야 Textcube에서도 Syntax Highlighter를 사용할 수 있습니다.


먼저, 스킨편집으로 갑니다.
skin.html에 아래 태그를 추가해줍니다. 여기서 주의할 점은 <body>태그가 없으면 스킨 적용이 안되므로 <body> 태그는 중복해서 사용해주어야 합니다. (택큐에서 스킨을 적용할 때 "<body>"가 존재하는 지 확인합니다.)

오른쪽 위에 있는 버튼 중에서 가장 왼쪽의 버튼을 누르시고 Plain Text를 복사해서 쓰세요!


Syntax Highlighter를 다운받고 안에 있는 파일들을 업로드해서 사용하는 게 좋을텐데... 택큐에서는 js파일이 업로드가 안되는 관계로, 그냥 Syntax Highlighter 공식 사이트에서 js와 css파일을 가지고 오는 방법을 택하였습니다. 개인적으로 사용하고 있는 웹서버가 있으면 거기에 파일을 업로드하고 사용하시는 것도 좋은 방법일 거 같습니다.

UIzard와 관련해서 Opensource Release Feed와 인터뷰

주위에 영어 잘하는 사람이 많아서 행복합니다

 

 

Welccome Ryu and thank you for joining me for this quick chat. To get things started please give us some background on yourself.
 
Hello, My name is Ryu and I'm from Korea.
I had majored Electrical and Electronics Engineering in Sung Kyung Kwan university and graduated last summer.
Right after graduation, I entered the graduation school that summer and I've been taken time off for one year.
Currently, I am on the master course and a member of SKKU Automation Laboratory Mobile Team.
(Our team is currently working on the researches regarding Android and mobile UI)
My major is about mobile devices but I am also very interested in Web Development.
However, I do believe that the boundaries of various IT areas will be removed due to rapid evolving technologies and the Web will be the major platform thus I keep my interest in both fields.
 
 
There is a lot of interest regarding UIzard around the web and after yesterdays post on Ajaxian it seems the UIzard website was crashed. What exactly is UIzard and what can developers accomplish using this tool.
 
Yesterday, UIzard.org got so much interest from people around the world all of sudden.
So my cheap hosting stopped instantly.
I added traffic with my personal expenses but still it is not so satisfying.
I am really grateful to receive so many e-mails from people around the world suggesting the support of hosting.
However, I have not expected such, so I am kind of confused.
I don't know which one to choose among those suggestions or how to reply.
 
UIzard(User Interface Wizard) is the tool that helps the users to make UI easily. Basically, the user can make UI page based on YUI,
and develop an application by writing the function according to specific event(click or drag) for each UI object. (like the Visual Studio or XCode...)
The result is generated on the basis of HTML and JS.
Uizard has a goal to be general web-based development tool like google docs or spreadsheet, the web-based office tool.
However, it's just a beta-version at the experimenting level, so I hope to keep your interest and look forward its future.
 
 
UIzard was developed using YUI, any particular reason you chose this over say, Dojo?
 
There is no specific reason for using YUI in UIzard. The reason I used YUI was that the hosts of 2009 MASHUPKOREA that I have taken part were NHN, DAUM, YAHOO Korea and Microsoft Korea
and I had to use one of APIs provided by those companies and only YAHOO provided API related to UI. Also, the license was BSD.
But, I am planning to support UI components, provided by the library such as jQuery or Dojo. Furthermore, I would like to upgrade so that the users can consturct Toolbox in a way they want to.

 


The other exciting news is that UIzard is open source, is this the case? If so, where can developers get access to the code and under which license is it released?
 
Yes, UIzard is an open-source. Developers can download the source code from uizard.org.
However, it is closed for a moment and I'm planning to open after version-up.
As I did not take the major in the computer engineering, any special course regarding web-development and did developed all by myself, the source is not quite neat.
Because of mass in source code, I guess it will take some time to be settled as the open-source.

About the license, UIzard follows GPL v2.
Though UIzard is composed with several open souruce libraries, I thought GPL v2 is approriate to spread among more users and become better tool because
if I used license such as BSD, there could be too much versions.
 
This is a reason why I made UIzard as an open-source. Though it is 0.8 beta-version, I hope this tool to be a good, free developing tool regardless of developing language, platform when the tool is upgraded to version 5.0 or 6.0 in the future.
I am willing to open the application UI library under BSD license after a few years.
This would be the library, which may provide the form of current UIzard appearance(that would be just like the common computer application)
In my opinion,
first of all, there was a share in a way of OPEN SOURCE for the development communities.
After that, there was a share in a way of OPEN API for the individual developers
and now, I think, there will be a share in a way of OPEN SERVICE for the user.
May be, this OPEN SERVICE is actualizing in a way of Gadget/Widget.
Thus, with my support of the basic structure of UIzard in a form of library and the user will be able to construct the user-application using opened OPEN SERVICE.
(Please, do not mind my short English.. this sounds like iGoogle;; Difficult to express my ideas in English...)
 


With UIzard being open source there is sure to be a lot of community involvement in the future direction of the app but for the moment, ow do you see UIzard evolving?


Though the developers in Korea have showed a lot of interest in UIzard after 2009 MASHUPKOREA, the open-source is not settled in Korea so there is not much support.
Thus, I am really grateful to contact with open-source communities in overseas.
On the other hand, I am kind of worried of UIzard being noticed all of sudden.
As it's still at the experimental level, I hope the developers to be not disappointed after activating this incompleted version.
 
At this moment, UIzard is "ajax development tool".
But, I do believe that this can be a general developing tool if the technology prospers more and more and the concept of cloud computing becomes more realistic.
With help from excellent developers around the world, UIzard can be the development tool covering all C/C++/C#/JAVA/JSP/PHP.
If the hard-disk is removed from the computer, the smart-phone becomes useful as much as the computer and the network is involved in our lives more than ever,
the web envrionment will have a huge impact not only on the normal users, but also on the developers and UIzard will be a good tool for the developers to practice and make their ideas real in anywhere the internet is avaliable.
 
I have much more ideas to make web-environment more rich than the results I have actually implemented apart from UIzard.
However It is so hard to do those things all by my self because I've never carried out or even joined Open Source Project.
I know nothing about it and I don't know how to make it work.
 
I keep my eyes and ears open all the time.
I am only 24 years and still have so much things to learn.
I still need to improve my ability.
I've more ideas than I can acutally work out.
Thus, I need passion of developers younger or as young as me
and also need expert developers who can share their knowledge, know-how and technique.
I am grateful to everyone around the world who showed the interest to my work.
This is unforgettable and fruitful time of my life.
Thanks again for your interview request and suggestion of free hosting support.
 (I will get in touch about the usage of hosting after consultation with others as soon as I organize the community with the developers of Korea and around the world who are willing to participate in UIzard project)
I will do my best to make it up to your interest.

2009년 5월 11일 월요일

[UIzard 0.8.2 릴리즈!!] Color Picker 기능과 Object Copy&Paste 기능이 추가되었습니다!!

안녕하세요!!
UIzard가 오랜만에 버젼업을 했습니다!!! 다음과 같은 부분이 더 발전했습니다!!

바로 가서 실행해보기!!

- 몇 가지 자잘한 버그들이 수정되었습니다. (개발자만 알고 있을 만한... 버그들이지만, 일단 빠짐없이 모두 수정했습니다!!)
- Properties에서 색상과 관련된 속성 클릭 시 ColorPicker가 떠서 색상 선택이 편리해졌습니다.
- Object Copy & Paste 가 가능해졌습니다!!
- Object라는 메인메뉴가 추가되었습니다.


 요즘 다시 UIzard개발에 시간을 투자하고 있는데요, SVN도 구글 코드로 옮겼고, 약간의 정책적인 문제 때문에 공개를 보류하고 있습니다만 조만간 오픈할 거 같습니다.

 다음에는 메뉴얼과 튜토리얼 동영상을 포스팅해볼까 합니다. 그 후에는 다시 한 번 버젼업이 있을 예정이구요, 자잘한 버그와 미작동 기능의 완성을 주목표로 개발을 진행할 예정입니다. 기대해주세요~!



텍스트 큐브에서 이벤트를 하고 있습니다!!!

구글 우수 블로거 지원 프로그램

thinksquare.pe.kr이라는 도메인은 그대로 유지할 거구요~
블로그 시작한 지 얼마 안 된 저에게는 동기부여가 될 수 있는 좋은 이벤트인 거 같습니다!!
관심있으신 분들 모두 함께 선의의 경쟁을 펼쳐 보아요ㅋ!!

저는 새로운 주제로 블로그를 열지... 아니면 주체성 없는 지금의 블로그를 텍스트큐브로 이사할 지 고민중입니다만 이벤트에는 확실히 참가할 거 같습니다!! 물론 할 일이 태산 같아서... 수상은 힘들지도 모르겠습니다만...

뭐든 열심히 해보자는 게 제 평소 마음가짐이기 때문에!!! 이번 이벤트 때문에 하루에 5~6개씩 포스팅하는 열혈 블로거가 될지도 모르겠습니다ㅋㅋ