자유소프트웨어

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS
FreeSoftware. 수행, 연구, 수정, 재배포, 판올림 등의 작업이 자유로운 소프트웨어. 비슷한 용어로 OpenSource가 있다.


1. 자유소프트웨어란

{{|자유 소프트웨어는 사용자에게 일정한 자유가 있음을 의미한다. 여기에는 어떤 목적으로든 소프트웨어를 수행할 수 있는 자유, 프로그램이 하는 일을 연구할 수 있는 자유, 필요에 의해 프로그램을 수정하거나 용역을 맡길 수 있는 자유, 소프트웨어 재배포의 자유, 그리고 향상된 버전을 발표하고 재배포함으로써 당신의 공헌이 남들을 도울 수 있도록 하는 자유가 포함된다.

요리사들은 위에 열거한 자유에 익숙해져 있다. 이런 자유가 없는 세상 (재료를 볼 수 없고 요리법을 바꿀 수 없는 세상)을 상상한다면 요리법대로 요리하거나 요리를 먹지 말아야 한다. 친구들을 위해 요리법을 베껴올 경우 해적이라고 손가락질 받으며 감옥에 넣겠다는 위협을 받게 된다. 이는 가상의 세계지만 독점 소프트웨어 업계에서는 현실로 벌어지고 있다. 자유 소프트웨어 운동은 이런 세계는 '노' 라고 주장한다.


이 대목은 영상물, Revolution OS의 도입부에도 나온다.

2. 독점 소프트웨어와 자유소프트웨어

자유소프트웨어 형태로 스팩을 만든다 하더라도 MicroSoft처럼 무차별적으로 환경 자체를 바꿀수 있느냐? 무료라는 이점과 하나의 거대한 회사의 무차별적인 도입의 대결이라고 볼수도 있지만. 결국 원론적으로 품질의 문제로 회귀되어야 하지 않는지..

서로 어떤 장단점이 있는지 궁금하군요. 전 이런 자유소프트웨어의 개념으로 만들어진 어플리케션을 이용하여 상업적인 사이트를 운영할수 있나가 궁금하군요.

2.1. 독점 소프트웨어

장점
  • (업체에 따라) 한글 지원이 비교적 잘 된다.(너무 광범위해서..'비교적' :) )
  • (업체에 따라) 일관적인 UI를 정책적으로 유지한다.
단점
  • 업체의 규모에 따라서 사후지원과 관련한 위험이 따른다.
  • 개발자 지원을 사측에서 전략적으로 추진한다. 지루하다.
  • 개발자급 유저가 S/W를 속속들이 들여다 볼 수 없어 답답하다.
  • 독점 개발사가 악의적으로 행동해도 제재하기가 힘들다.
미분류
  • 비용이 많이 든다. 하지만 과열 경쟁보다는 현명한 독점이 효율적일 수 있다.
  • 솔루션 제공 업체의 규모(또는 노하우?)에 따라서 기술지원의 규모도 차이가 난다(?)

2.2. 자유소프트웨어

장점
  • 사용 비용이 적게 든다.
  • 소스가 공개되어 있어 자유도가 높다.
  • 능력만 갖추면 모든 부분을 들여다 볼 수 있다.
  • 쉽게 구하기 쉬운 경우가 많다.
단점
  • 인력과 시간적인 면을 생각했을 때, 차라리 비효율적이기도 하다. (비슷한 소프트웨어가 많다)
  • 시스템 구축시 개발자 또는 관리자가 수행할 역할의 비중이 상대적으로 높다.
  • 한글 환경이 갖추어지지 않은 경우가 많다. (한글 설명서 및 한글 메뉴)
  • CUI의 경우 man, info가 없으면 사용하기 힘들다. man info가 있어도 사용하기 힘든 경우도 있다.
미분류
  • 사용중인 어떤 솔루션에 대해 즉각적인 답변을 기대하기 힘든 경우가 많다. 인기있는 소프트웨어처럼 그 반대인 경우도 있다.
  • 개발자 지원은 개발자의 역량(?)에 맡기는 편이다. 그래서 즐겁다. (괴롭기도 하다.)
  • 개발자들마다 취향에 맞게 UI를 설계하는 경우가 많아 새로운 프로그램에 적응하는 데 시간이 다소 소요된다.

2.3. 토론

{{|
  • 독점소프트웨어 : 비용이 많이 든다. 하지만 과열 경쟁보다는 현명한 독점이 효율적일 수 있다.
|}}
AnswerMe 그 현명한 독점의 예를 들자면 ?
현명한 군주는 강력한 힘으로 나라를 올바르게 이끌기도 하지요. 물론 폭군이 될 경우에 문제가 심각하지만요. 유약한 정권은 많은 잡음을 일으키고 이루는 것이 없습니다. 하지만, 민주주의는 '대체로' 바른 쪽에 '적당한' 힘을 실어 주어 '큰 무리 없는' 성과를 이루어 내죠. -
see [http]웹브라우저 업데이트 소홀한 MS. MicroSoft도 배가 불렀군요. 독점은 이게 문제란 겁니다. --최종욱

비용이 많이 든다는 것은 사용자 입장이고, 현명한 독점이 효율적이라는 의미는 개발자의 입장입니다. 개발자의 입장에서 아무리 효율적이라고 해도, 비싸다면 사용자는 안쓰게 되겠지요. (물론 소프트웨어가 그것밖에 없어서 울며 겨자먹기로 살 수 밖에 없는 경우도 있지만) 결국 비용이 많이 든다는 것은 사용자입장에서의 단점이고, 독점이 효율적이라는 것은 개발사 입장에서의 장점이겠습니다. --무신

현명한 독점이 효율적이라는 말은, 품질경영 같은데서 흔히 등장하곤 합니다. 경쟁을 통해 싸고 좋은 제품을 만드는 것 같아도, 경쟁이 과열될 경우 경쟁으로 인한 비효율(좋은 제품을 만드는 데 쓰일 재원을 가격 경쟁이나 마케팅에 쏟게 되는 등)을 어떤 형태로든 소비자에게 부과하게 된다는 점을 들고 있습니다. 한 예로 커피 판매를 들 수 있는데, 수십년간 미국의 커피 판매상들은 커피 판매를 신장시키기 위해 애를 써왔답니다. 그러던 중 어느 판매상이 '질 나쁜 커피를 아주 약간 섞어도 소비자들은 맛을 구분 못하더라. 그러면 커피 원가를 줄일 수 있으므로 가격 경쟁에서 승리하겠다'는 사실을 발견하고 실행에 옮겼습니다. 다른 판매상들도 이를 따라하기 시작했는데, 사실 소비자들은 정말로 이를 깨닫지 못한 채 적응되어 갔다고 합니다. 그래서 계속 질 나쁜 커피 양이 늘어갔고.. 그러나 물론 부작용이 있었죠. 오랜 시간이 흐른 뒤에 보니 전체 커피 소비량 자체가 줄었다고 하더군요. 어느 새 모든 사람들이 '커피는 원래(?) 맛이 없는 것'이라고 느끼고 있었던 겁니다. 이는 아주 단편적인 예이지만, 이 외에도 경쟁이 반드시 좋은 것만은 아니라는 예들을 품질경영에 관한 책에서 여럿 볼 수 있습니다. --zazagang


{{|
  • 자유소프트웨어 : 인력과 시간적인 면을 생각했을 때, 비효율적이기도 하다. (비슷한 소프트웨어가 많다)
|}}
자유소프트웨어의 경우 코드의 재 사용이 항상 장려되지만 그렇지 않은 경우도 있어서 비슷한 류의 프로그램이나 프로젝트가 매우 많습니다. (예. KDE vs. Gnome) 그러나 각각의 프로그램이나 프로젝트는 경쟁을 유발하거나 서로에게 영향을 주어 결국 사용자에게는 좋은 품질의 제품을 공짜로 즐길 수 있도록 하는 장치이기도 하죠 (See 성당과시장) 개발 측면에서는 비효율적일지도 모르겠으나 사용자 입장에서는 장점입니다. --무신

선택가능항이 많다는 것이 꼭 사용자 입장에서 장점만 되는 것은 아닙니다. (장점에서오는단점) 날마다 업데이트되는 수많은 기능들에서, 사용자는 어떤 버전을 받아들이고 어떤 버전을 지켜봐야 하는지 결정하는 데에 많은 비용을 사용해야 합니다. 실제로 최신 버전으로의 업데이트가 언제나 '향상'을 가져오는 것은 아니며, 수많은 모듈들의 수많은 버전으로 인해 모든 사용자가 사용하는 소프트웨어가 다 다르다는 것은 분명히 비효율적인 면이 있습니다. 위의 현명한 독점의 장점과도 통하는 부분인데, 사용자 입장에서도, 다소 비싸더라도 어떤 버전을 선택할지 결정하는 데에 비용과 시간을 지불하지 않고 바로 소프트웨어를 사용할 수 있다면 (MicrosoftWindowsWindowsUpdate서비스가 그러한 면을 반영하지요) 더 효율적인 소프트웨어가 될 수 있을 것입니다.

업데이트및 패키지 유지보수에 관해서만 말씀하시는 것이라면, 그러한 이유로 배포판이라는 것이 존재하는 것이고, RedHat과 같은 곳에서는 업데이트에 관련된 서비스를 up2date라는 것으로 제공하고 Debian에서는 apt-get같은 저자동고유연성의 관리 패키지가 존재합니다. 그리고, 엔드유저가 사용하는 패키지로서, 실제로 날마다 업데이트 되거나 할 정도의 패키지는 그다지 없습니다. 위에서 언급하신 면은 사용자의 측면이기 보다는 배포판 관리자, 패키지 개발자 혹은 최신이즘에 빠진 리눅서의 불평이지 최종사용자가 고민하는 문제는 아닙니다. --무신

3. 라이센스

자유소프트웨어는 그 고유한 라이센스를 제공한다. 자유소프트웨어 진영의 대표적인 두가지 라이센스와 각각의 고유한 특징은 다음과 같다.

3.1. GNU Public License (GPL)

  • 전염성을 가진다: 최초 만들어진 프로그램이 GPL이라면 그것을 기반으로 파생된 프로그램도 GPL이다. 전염성은 GPL의 가장 큰 특징이다.
  • 상업적 목적으로 판매할 수 있다. 그러나, 소스를 모두 공개하기 때문에 이와 비슷한 목적 가진 다른 회사에서 또 다른 방식의 이윤을 추구할 수 있다. 따라서 가격은 합리적인 가격이 책정될 것이고 사용자는 합리적인 가격으로 제품을 구입할 수 있게 된다.
  • [http]GPL원문

3.2. BSD License

  • 거의 제한이 없는 라이센스이다. 이 라이센스를 가진 프로그램을 뜯어 고쳐도 공개하지 않아도 된다. 따라서, 이 라이센스로 배포된 프로그램은 상업적인 목적으로 고친 후에 공개하지 않은 채 팔 수 있게 된다.

BSD에서 GNU 라이센스로 전환할 수 있나요 ?
자신이 원 저작자라면, 그렇게 원한다면야 언제든지 그렇게 바꿀 수 있겠죠. wine같은 것은 BSD라이센스에서 LGPL로 라이센스를 바꿀 때 각 저작자들의 허락을 얻은 후에 LGPL로 모두 바꾸었다고 알고 있습니다. 어떤 개발자가 다른 BSD라이센스의 소스의 저작권을 BSD였던 부분을 GPL로 바꾸면 그것을 BSD로 만들었던 원래의 취지를 변질시킬 수 있으므로, 원래 BSD라이센스였던 것은 BSD라이센스를 따르는 것이 관례겠지요. --무신

3.3. 관련(호환가능한) 라이센스

  • PublicDomain: 공공재화와 같다. 누구나 써도 상관하지 않는다. 이 자체는 누구도 독점할 수 없다. 그러나, 이를 변경한 후에 자신이 원하는 대로 써도 문제되지 않는다.
  • MPL(Mozilla의 라이센스)
  • QPL(Qt의 라이센스)
  • RPSL(리얼 미디어의 산물에 붙는 라이센스. OSI가 검토해서 자유소프트웨어 개발자가 리얼의 산물을 써도 괜찮다고 승인했다)

4. 한국에서 자유소프트웨어 활동이 미미한 이유


능력되는 프로그래머들이 하루하루 살아가기에도 빠듯한 사회 환경이 문제가 아닐런지... 다른 여가 시간에 프로그래밍을 하느니 차라리 쉬겠다 싶을 정도의 업무량..;; --아무개
능력 안되는 프로그래머들은 왜 안할까요? --장모
능력이 안 되는 만큼 업무능력을 갈고 닦아야 할테니까 별도의 시간을 마련하기가 어렵지 않을까요? --맑은 2007.05.31(목)
업무능력을 향상시키기에 오픈소스 프로젝트에 참여하는 것이 도움이 되지 않을까요? 특히 학생이라면 교과서 위주의 지식을 실제로 적용해보고, 실제 사용자를 갖는 프로그램을 만들어 본다는 경험은 더 없이 좋은 공부가 될 텐데 말이죠. --장모
물론, 오픈소스 프로젝트에 참여하는 것이 큰 도움이 될 것이라고 봅니다. --맑은

물론, 오픈소스 프로젝트에 참여하는 것이 큰 도움이 될 것이라고 봅니다. 다만, 현장이란 곳이 근본적으로는 학교일테니만 현실적으로는 공장일 뿐이기 때문에 배우는 학생보다는 실력 발휘하는 프로를 원하는 곳이 아니던가요. 학생티를 내면 별로 안 좋아 하죠. 오늘의 학생이 내일의 프로가 될 것이고 그 시간을 고귀하게 여기는 현장이었다면, 훌륭한프로그래머의딜레마는 있지도 않았을 겁니다. 왜냐면, 훌륭한 프로그래머가 되려면 배울 줄 아는 사람이어야겠지만, 우리가 아는 프로그래머들은 대부분 모르는 프로그래머가 아니라 아는 프로그래머가 되어야 했기에 얼마쯤 더 가면 배울 것이 없는 프로그래머가 될 수 밖에 없고, 더 나아가 세월이 베이면 모르는 것도 없고 배울 것도 없고 아는 것도 없는 프로그래머가 될 수 밖에 없는 현실, 이 현실은 결코 훌륭한 프로그래머를 양산할 수 있는 토양이 될 수가 없다고 생각합니다. 한 때 훌륭한 프로그래머였던 이들은 그 현실에 기가 꺽이고 꺽여 더 이상 꺽일 기가 없는 상태로 놓여 버리지나 않았을까요.

배움의 기회를 가치롭게 다루지 못하는 현실은 '능력 있는 프로그래머들'뿐만 아니라 '자질 있는 프로그래머' 혹은 '능력이 안 되는 프로그래머'들의 진까지도 모조리 다 빼 버렸다는 것, 때문에 그들 역시도 더 많은 배움의 길로 나서기 보다는 쉬고 싶어 한다는 것, 따라서 (누구의 말을 인용하자면) 저평가 우량주인 한국프로그래머들은 한국의 현실에서라면 기가 막히도록 탈진해서 OpenSource 프로젝트에 참여할 기력일랑 할 톨도 남아 있지 않을 것이라는 것, 뜻이 없다기보다는 진이 다 빠진 것이라고, 참여의 뜻이 있는지 없는지를 생각해 낼 여지도 없이 기진 맥진 탈진해 버린 것이라고, 한국소프트웨어 토양이 비옥해 질 수 있도록 거름을 주어야 한다고, 맑은이는 생각합니다.

맑은이가 앞 서 말했던 그 비옥한 토양이란 "능력있는 프로그래머를 우대하기 보다는 배우려는 프로그래머를 우대하는 토양". 실력이라는 현재만의 평가에 머물지 말고 자질이라는 미래를 더욱 소중히 평가해 주자는 것"을 말했던 것입니다. 또 달리 말하자면 "문화가 바뀌어야 한다"는 주장입니다. 이런 문화가 뿌리내려야만 비로소 훌륭한 프로그래머는 가능한 한 오래도록 배움의 끈을 놓지 않고 끝까지 훌륭한 프로그래머로 남을 수 있다고 생각합니다.

앞에서 말한 것이 근본적인 원이라고 생각됩니다. 부차적인 이유로는 "OpenSource 프로젝트에서는 결과물에 대한 독점력을 인정받기 힘들다"는 것도 고려 대상일 겁니다. 어떤 하나의 기업이나 조직만의 성과로 보기 힘들기 때문에 법적으로는 어떨지 몰라도 사회적으로는 결코 독점력을 인정받을 수 없을 것이라고 생각합니다. OpenSource 프로젝트에 참여하여 좋은 성과를 만들었을 때, 만약 아마추어가 그것을 만들었다면 그를 스카웃하겠다고 생난리가 날 것이나, 만약 조직에 소속된 프로가 그랬다면 또 그것이 현재의 프로젝트와 크게 연관이 없다면 "아싸, 다 만들었다!"라며 기뻐하며 보고 평가 좀 해 달라고 하면 이런 대답이 나오고도 남겠지요? "하라는 짓은 안 하고 왜 헛 짓만 일삼아?" 입 밖으로 튀어 나오지 않으면 입 안에서 굴려서 꿀꺽 삼키기라도 하겠지요?

(결과물을 독점할 수 없는 것들에 대한 조직의 반응에 대해 어떤 대처를 할 수 있는지에 관해서 말을 꺼내자면 오랜 시간이 필요합니다. 생각을 보태 주실분은 보태 주세요.)

그런데, 기업 문화를 바꾼다는 것, 상식을 바꾼다는 것, 사회풍토를 조성한다는 것, 이런 거 다 누가 만들어야 하며 누가 만들 수 있을까요? 바로 당신! 그리고 나! 선배도 아니고 후배도 아닙니다. 나를 부리는 사람은 더더욱 아니겠지요. 군대에 사회의 바람이 불어 들어갈 수 있었던 것은 바로 그 정신 때문이었다고, 들어서 알고 있습니다. 그 정신의 실체는 희생정신이더군요. 제가 말을 잘못했습니다. 이건 희생이 아니에요. "지금까지 나는 비록 선배들에게 맞아왔지만, 지금부터 나는 결코 후배들을 때리지 않으리!"라는 마음 가짐. 그건 분명 희생이 아니네요. 처음부터 상생의 노력이었습니다. 분명히 한 세대는 샌드위치가 되어야 할 것인데, 그 세대를 라고 생각하는 겁니다. 나의 세대를 지나가면 대부분의 프로그래머들은 쉬고 싶지 않을 겁니다. 대신에 그들은 놀고 싶겠지요? '컴퓨터와 함께 춤을' 추면서 말입니다.

--맑은 2007.06.04(월)

장문의 답글을 달아주셨는데 죄송하게도 이해가 잘 안가네요. 오픈소스 프로젝트에 참여하지 않는 이유가 실질적인 실력보다는 형식적인 실력을 중요시하는 사회 구조 때문이라는 말씀이신가요? --장모
이해를 못하셨다면 그건 맑은이의 글재주가 모자라 그런 것이니 죄송할 사람은 접니다. 말씀하신 것과 비슷하긴 한데 조금은 다르지 않을까 싶어요. 그런 구도에 맞추어 말하자면 이렇게 되겠지요. "잠재적 실력보다 현재적 실력만을 더 중요시 하는 사회풍토" 잠재성과 현재성을 말 할 때 맑은이의 생각은 둘 다 실절적인 실력으로 봅니다. 실력을 말할 때는 형식적인 것은 의미가 없다고 생각하거든요. 대답이 되었을까요? --맑은2007.06.05(화)

  • GPL이 '한국'에서는 사법적으로 법적 구속력이 없다는 판례 : GPL 라이센스로 개선된 프로그램이라 해도, 기업의 프로젝트에서 발생한 기능 개선이었다면 기업의 영업비밀로 인정되므로, 간단히 GPL에 따라 공개해 버린다면 큰 코 다친다는 것. [http]http://bbs.kldp.org/viewtopic.php?t=61351&start=120, [http]판결문 2005년 9월 8일 선고



  • "; if (isset($options[timer])) print $menu.$banner."
    ".$options[timer]->Write()."
    "; else print $menu.$banner."
    ".$timer; ?> # # ?>