오픈 소스
개요
오픈 쏠쓰(Open source)는 설계도에 해당하는 쏠쓰 코드(source code)를 공개한 것을 말한다. 현재 들어선 꼭 프로그램에만 적용되는 것은 아니다. 프로그램 외에서의 오픈 쏠쓰라는 것은 만드는 법이 공개되었다는 의미로, DIY를 추구한다. 여기에 따른 것은 아두이노, 3D 프린터, 바퀴벌레 조종 키트(...), 인공위성 등이 있다. 여기서 기본적으로 지향하는 바는 발명가가 개인 기업가가 되는 것, 즉 한 개인으로만 돌아가는 소형 기업이 대기업을 압도하는 문화이다. 처음에는 대부분 오픈 쏠쓰였다. 빌 게이츠가 오픈 쏠쓰를 까기 전까지는 오픈 쏠쓰가 대세였다.
자세히 알자면 메이커즈라는 책을 보자.
소프트웨어
쏠쓰 코드가 공개(open)된 프로그램이다. 현재 이런 형태의 오픈 쏠쓰 소프트웨어는 점점 늘어나고 있다. 프리웨어랑은 조금 다르다. [* 자유 소프트웨어 항목을 참조. 참고로 자유 소프트웨어는 오픈소스 소프트웨어로도 불린다]
상용, 혹은 프리웨어 프로그램을 사용하는 사람들은 버그를 발견했다 하더라도 소스 코드를 모르니 수정할 수 없다. 또, 사용자가 새로운 아이디어가 떠올랐다 해도 그것을 곧바로 프로그램에 적용시킬 수도 없다. 비교적 간단한 프로그램일 경우 리버스엔지니어링으로 어셈블러 수준에서 뜯어고칠수는 있으나 코드가 공개된 것보다 몇십배는 어렵기도 하고, 저작권 등의 문제가 얽히고설키기에 할려는 사람은 없다고 보면 된다.
[wiki:"드라군 놀이" 하지만 소스 코드가 공개되어 있다면 어떨까? ]
사용자가 프로그래밍 언어를 안다는 전제 하에, 문제가 있어도 자기가 수정할 수 있다. 또한 인터넷의 발달로 전 세계의 Geek들이 소스에 관여하여 프로그램이 비약적으로 성장한다.
또한 프리웨어는 여러가지 사정으로 자주 프로젝트가 폭파되는데 비해 오픈 소스는 이에 대하여 안정적이다. 예를 들어, 프리웨어는 개발자가 개인 사정으로 개발을 그만두게 되면 그걸로 끗! 그러나 오픈 소스는 그럴 염려가 없다. 첫 개발자 수준의 거물급 개발자가 그만둔다면야 개발이 약간 지지부진해지긴 하겠지만, 그래도 소스는 풀려있으니 누군가가 손을 대기만 하면 조금이라도 앞으로 갈 수 있을 것이다. 설사 프로젝트가 폭파되더라도 소스가 남아있기 때문에 그 부산물로써 새로운 파생 작업들이 나타날 수가 있다.
물론 오픈 소스에도 단점은 있다.
특히 GPL 류의 오픈 소스에 해당되는 것인데, 가장 치명적인 단점이 상용화가 어렵다는 점이다(추구하는 방향이 상용화가 아니기도 하고) . 현재 소프트웨어 시장의 사업모델인 '프로그램 구입에 비용 부과'가 불가능하다. 소스가 공개되어 있으므로 다른 사람들은 소스 구해서 컴파일해서 쓰면 그만이기 때문. 물론, GPL이 아닌 친기업적인 오픈 소스 라이센스도 존재한다. 예를들어, BSD 라이센스같은 경우 원 저자의 이름만 제대로 표기해주면 마음대로 고쳐서 클로즈드 소스로 상용화시켜도 문제가 없다.
오픈 소스 프로그램이 무료여야 할 의무는 없지만, 이런 GPL 라이센스의 현실적 문제 때문에 대부분의 오픈 소스 프로그램들은 무료로 배포된다. 수익은 다른 방법으로 얻는데, 사후 지원 계약을 유료로 하는 방법이나, 광고를 달아서 애드웨어로 만들거나, 오픈 소스에 우호적인 단체나 기업으로부터 후원을 받거나, 사용자들에게 기부를 받는 등의 방법을 사용한다.
또다른 단점으로, 소스를 도용당할 수도 있다. 개발자들이 선의로 배포한 소스 코드를 상용 소프트웨어 제작사들이 도용해서 유료 프로그램을 제작해 버리는 것이다. 가끔은 그냥 조용히 소스 코드만 쓰는 것에 그치지 않고 아예 그 소스가 자신들이 제작한 것으로 잡아떼는 사태도 벌어진다. ~~그게 바로 [티맥스 소프트]의 [티맥스 윈도우]와 거기에 내장한 [wiki:"오픈오피스" 오피스 프로그램]이다.~~ GPL에 전염과 소스 코드 공개 강제 조항이 있는 것은 이런 상황을 막기 위해서이다.
또한 오픈 소스에는 원칙적으로 사후 지원, 즉 AS 제공 의무가 없다. 이것은 소스코드를 제공하니 문제가 발생하면 사용자가 직접 고쳐쓰라는 의미이다. 오픈 소스 프로그램인데도 불구하고 빨리 고쳐달라고 제작자 게시판에 욕을 해대는 사람들이 있는데, 그러지 말자. 오픈 소스는 그렇게 해 줄 의무 자체가 없다.
물론 일반적인 용도로 많이 사용되는 오픈 소스 소프트웨어의 경우 이런 사후지원이 없으면 일반 사용자는 쓰기 힘드니 사후 지원은 따로 계약하는 경우도 많다. 당연히 이런 사후지원은 비용을 받는 것이 일반적이다. 예를 들면 레드햇 엔터프라이즈 리눅스의 경우 상용으로 판매하는데, 소스를 따로 공개해놓고 상용 버전에는 1년 기술지원을 포함해 놓고 있다. 이 소스를 가져다가 레드햇 상표만 들어내고 그대로 만든 것이 센트OS인데, 이렇게 제 3자가 다시 만들어 배포해도 라이선스(리눅스의 경우 GPL)만 지킨다면 불법복제가 아니다. 기술지원만 못 받는 것일 뿐이다.
흔히 오픈 소스에는 저작권이 없을 것이라고 오해하는 경우가 있는데 독점적인 권리가 없을 뿐이지 저작권은 존재한다. 예로써, 오픈 소스 프로그램은 보통 일정한 라이선스로 배포한다. 이 중 가장 강제성이 강한 것이 GPL인데, GPL은 오픈 소스인 만큼 소스 코드를 자유롭게 수정하고 배포할 수 있는 권리를 보장하지만, 재귀적 전염성 조항이라는 특이적인 성질이 부여된다. 이는 GPL 소스로부터 파생된 프로그램도 소스가 공개되어야 하고, 파생된 프로그램 또한 강제로 GPL 라이센스(또는 그것보다 더 엄격한 라이센스)로 배포되어야 한다는 뜻이다.
그래서 개념없는 개발자가 생각없이 GPL 라이센스를 따르는 오픈소스 코드를 집어넣어서 프로그램을 만들면, 그 프로그램 전체의 코드가 강제공개당하게 된다. 투하트 2, 스카이프 등등이 소스를 강제공개 형벌을 당한 바 있으며[* 물론 소스만 공개되고 리소스는 빠졌으므로 그것만 가지고 똑같이 만들 수는 없다. 컴파일이 제대로 되더라도 아마 검은 화면만 나올 듯.] ICO는 영구 판매중지 되었다[* 훗날 플레이스테이션 3용 게임으로 재발매되었는데, 재발매본에서는 GPL 소스를 전부 들어냈다.]. 소니는 GPL 위반사항 때문에 DVD 4천만장을 리콜한 적도 있다. 컴파일된 프로그램인데 GPL위반을 어떻게 아느냐고? GPL 코드를 사용했는지 안했는지 매의 눈으로 감시하는 단체가 있다(...). 자유 소프트웨어 재단 등의 단체에서 이런 일을 한다.
마이크로소프트에서는 이러한 강제규정이 산업발전에 악영향을 끼친다며 암세포에 비유하고 깠다. 천문학적인 시간과 돈을 들여 개발한 프로그램인데 일찍 퇴근하고픈 하청업체 개발자가 어디선가 따와서 스윽 집어넣은 코드 몇줄 때문에 공짜가 된다니? 이런 뒷목 잡는 시나리오도 충분히 가능한 것이다. 물론 오픈 소스 진영에서는 니네가 그런 소리할 자격이 있냐며 마이크로소프트를 깐다(...) 사실 기업 입장에선 GPL이 좀 극단적인 것도 사실이긴 사실이지만(물론, GPL이 너무하다는 기업들은 사실 소스 빌려쓰는 입장이니, 왈가왈부 할 처지가 못되긴 하지만), 마이크로소프트 역시 자신들의 독점적 지위를 유지하기 위하여 오픈 소스 진영에서 먼저 열심히 만들어 놓으면 뒤늦게 그거 보고서 그에 대응되지만 호환은 안되는 것을 떡하니 윈도우에 박아서 오픈 소스 진영 것을 무효화시키려는 뻘짓을 자주 했던 관계로 그런 말 할 자격은 없다. 또한 오픈소스 원 개발자와 직접 협의해서 정당한 대가를 지불하고 별도의 라이센스를 적용할 수도 있다. GPL도 이것까지는 막지 않기 때문이다.
가끔 오픈 소스 프로젝트로 하드웨어 디바이스를 제어하기 위한 라이브러리를 만들거나 차트(그래프)UI 컴포넌트 등을 만드는 팀들을 볼수 있다. 이런 프로젝트 그룹이 만들어 놓은 결과물을 쓰면 비싼 라이브러리를 쓰지 않아도 된다는 장점이 있으나... 가끔 중요한 API를 껍데기만 만들고 방치하는 경우도 종종 만나게 된다.~~그리고 당연히 개발자는 멘탈붕괴~~
GPL 규약은 사실 리눅스 운영체제나 과거 유닉스 프록그램 등의 상당히 GEEK한 소프트웨어들을 목적으로 만들어져서 위에 나온 빡빡한 정책을 고집하고 있는데, 이것을 약간 완화시킨 것이 LGPL 라이센스이며, 아예 소스 재공개를 하지 않아도 되거나, 라이센스의 전염성 조항이 없는 MIT/ZLIB 라이센스도 있다.
이것보다 더 개방적으로 모든 소스가 공개됨은 물론 가격도 무료인것을 일반적으로 프리소스라고 한다. 그리고 아예 라이센스 없이 저작권 자체를 포기해버린 경우는 퍼블릭 도메인(Public Domain)이라고 한다.
소프트웨어 목록
※ 가나다순으로 나열하며 우선순위는 한글-알파벳-숫자순으로 작성해 주세요. (기타 제외)
개발 및 텍스트 에디터 관련
* [wiki:"루비(프로그래밍 언어)" 루비] * 맨틀 * [wiki:"부스트#s-4" 부스트] * 지니 * 파이썬 * wiki:"펄(프로그래밍 언어)" 펄 * Emacs * Git * node.js * PHP * [wiki:"QT" Qt] * vi (vim)
게임 관련
* 렌파이 * 스텝매니아 * 헷지워즈 * 웨스노스 전쟁 * DeSmuME * Dolphin (2008년부터 오픈 소스로 전환) * freeciv * MAME * NetHack * OpenTTD * PPSSPP * Simutrans * SlashEM
그래픽 관련
* Blender * GIMP * Greenfish Icon Editor Pro * Inkscape * Krita * MyPaint * Scribus * Synfig Studio[* 오픈소스 에니메이팅 도구(!!!)] * Pencil Animation[* 위와동일.하지만 0.4.4b를 마지막으로 지원이 중단된것같다.] * 디지캠(digiKam): 이미지 뷰어
네트워크 관련
* 모질라 파이어폭스 * 모질라 썬더버드 * 미도리 * 실피드 * wiki:"아파치#s-5" 아파치 HTTP 서버 * 웹키트 * 자테온 * wiki:"체로키#s-3" 체로키 * 크로미엄 - 구글 크롬의 모태 [* 크로뮴 또는 크로미움이라고도 부른다.] * 토르 * 파일질라 * MySQL * Nginx * PostgreSQL * Privoxy
콘텐츠 메니지먼트(CMS) 관련
* 그누보드 * 도쿠위키 * 드루팔 * 모니위키 * 미디어위키 * 워드프레스 * 줌라 * 텍스트큐브 * XpressEngine - 국산 웹 게시판 프로그램 제로보드의 후속작.
데스크탑 환경
* GNOME * KDE * Xfce
시스템 관련
* 레인미터 * wiki:"와인(소프트웨어)" 와인 * DOSBox
업무, 출판 관련
* 리브레오피스 * 오픈오피스 * 디아 * LaTeX * [wiki:"LYX" LyX]
운영체제
* 리눅스 * [wiki:"안드로이드(OS)" 안드로이드] * 하이쿠 * FreeBSD * ReactOS
음악, 동영상 관련
* 밴시 * wiki:"송버드#s-2" 송버드 - 2번 항목 * wiki:"클레멘타인#s-2" 클레멘타인 - 2번 항목 * Audacity - 사운드 트랙 편집기 * FFmpeg * LAVFilters * Media Player Classic * MPlayer * OGG * Ogg Vorbis * [wiki:"RAmen#s-2" Ramen] * [wiki:"TAK#s-2" TAK] * 븨엘씨(VLC): 동영상 플레이어
파일 관련
* 노틸러스 * 7-짚(7-Zip): 압축 유틸리티
기타
* 은글꼴 * 클램 안티바이러스 * Stellarium - 별자리 관측 프로그렘