오픈 소스 (r20180326판)

문서 조회수 확인중...

1. 개요
2. 오픈 소스 소프트웨어
2.1. 단점
3. 오픈 소스 소프트웨어 라이선스
3.1. 주요 라이선스
4. 소프트웨어 목록
4.1. 개발 및 텍스트 에디터 관련
4.2. 게임 관련
4.3. 그래픽 관련
4.4. 네트워크 관련
4.5. 콘텐츠 매니지먼트(CMS) 관련
4.6. 데스크탑 환경
4.7. 보안 관련
4.8. 시스템 관련
4.9. 업무, 출판 관련
4.10. 운영 체제
4.11. 음악, 동영상 관련
4.12. 파일 관련
4.14. 기타
5. 오픈 소스 하드웨어
5.1. 목록
6. 오픈 소스 데이터
6.1. 목록
6.1.1. 글꼴
7. 관련 문서
8. 관련 링크


1. 개요


Open Source
FOSS(Free and Open-Source Software)
이 'Free'는 공짜가 아니라 자유의 의미로, 이 약자는 대체로 하술된 GPL 라이선스를 갖는 소프트웨어들을 가리킨다. 따라서 그냥 'Open Source Software'보다 조금 더 좁은 의미이다.
어떤 제품을 개발하는 과정에 필요한 소스 코드나 설계도를 누구나 접근해서 열람할 수 있도록 공개하는 것. 보통 소스가 공개된 소프트웨어를 '오픈 소스 소프트웨어'라고 하고, 소프트웨어 말고도 개발 과정이나 설계도가 공개되는 경우 하드웨어에도 오픈 소스 모델이 적용 할 수 있으며, 글꼴과 같은 데이터에도 오픈 소스 개발 모델이 적용되는 경우가 있다.
단순히 소스를 공개만 하는 것이 아니라, 이를 2차 창작하는 것을 허용하기도 하고, 나아가 조건 없이 상업적 용도로까지 사용할 수 있게 하는 경우가 있다. 물론 공개만 하고 2차 창작이 안되는 경우도 있기는 하지만 이 경우는 보통 '오픈 소스'라고 부르지 않는다.

2. 오픈 소스 소프트웨어


소스 코드가 공개(Open)된 프로그램이다. 대부분의 오픈 소스 소프트웨어는 무료로 사용 가능하기 때문에 프리웨어와 헷갈리는 경우가 많지만, 프리웨어는 무료로 사용 가능한 프로그램이고, 오픈 소스는 소스 코드가 공개된 프로그램이기 때문에 엄연히 다른 개념이다(예를 들어, 오픈 소스 소프트웨어를 돈 받고 파는 경우도 있다.). 자유 소프트웨어(Free Software)와 비슷하지만, 오픈 소스 소프트웨어가 자유 소프트웨어보다 조금 더 상위의 개념이다.
일반 사용자 입장에서는 프리웨어나 오픈 소스 소프트웨어나 단순히 공짜로 사용할 수 있다는 점에서는 비슷할 수 있지만, 소스 코드를 보고 이해할 수 있고, 수정할 수 있는 개발자 입장에서는 크게 다르다. 예를 들어, 상용 또는 프리웨어 프로그램을 사용하는 사람들은 버그를 발견했다 하더라도 소스 코드를 모르니 수정할 수 없고, 사용자가 새로운 아이디어가 떠올랐다 해도 그것을 곧바로 프로그램에 적용시킬 수도 없다. 비교적 간단한 프로그램은 리버스 엔지니어링으로 어셈블러 수준에서 뜯어고칠 수는 있으나 소스 코드가 공개된 것보다 몇 백 배는 어렵기도 하고, 저작권 같은 문제가 얽히고 설키기에 하려는 사람은 없다고 보면 된다.
하지만 사용자가 프로그래밍 언어를 아는 경우 소스가 공개되어 있다면 본인이 직접 소프트웨어의 문제를 수정하거나 개선을 할 수 있게 되는 것이다. 또한, 개발하던 프리웨어가 개인적인 사정이나 회사의 사정에 따라 개발이 중지되면 그대로 사장되는 경우가 종종 있는데, 오픈 소스 소프트웨어는 코드가 공개되어 있기 때문에 다른 개발자/개발사에서 이를 이어받아서 새로이 개선해 나가면서 개발하는 것이 된다. 그래서 개발자와 사용자가 일치하는 개발 및 시스템, 네트워크 분야에는 웬만한 클로즈드 소스 상용 소프트웨어는 명함도 못 내밀 정도로 고품질의 오픈 소스 소프트웨어가 넘쳐난다. 그러나 그러지 않는 분야에선 말 그대로 취미 수준에 머물러 있는 경우도 많다.
소스가 공개되어 있고, 이를 마음껏 개조해 사용할 수 있다는 점에서 개발에 필요한 방향으로 최적화가 용이하기 때문에 일반 개인 사용자보다 개발자들 사이에서 강세를 보인다. 서버 운영 체제에서 리눅스가 그 대표적인 예이다.
스페인 바르셀로나에서는 모든 소프트웨어를 우분투 리눅스오픈 소스 소프트웨어로 바꾸기로 결정하였다. 윈도우가 없는 도시를 꿈꾼다 : 스페인 바르셀로나의 오픈소스 전면화 프로젝트 (2018-01-31)

2.1. 단점


물론 오픈 소스에도 단점이 있다. 강제 소스 공개와 전염성 조항이 있는 GPL 라이선스에 해당되는 것인데, 유료 소프트웨어에 사용하기 어렵다는 점이다. 다만 소프트웨어 시장 대부분이 SI인데, GPL 라이선스의 경우 사용자에게만 소스를 공개하면 되고 SI 소프트웨어를 제3자에게 제공하는 경우도 없기 때문에 의뢰인(甲)에게 소스를 제공하는 게 업계 관행인 SI의 특성상 이러한 GPL의 전염성이 거의 문제시되지 않는다. GPL 소프트웨어를 수정해서 유료로 판매하는 것은 이론상으로 가능하나 유료로 판매한 GPL 소프트웨어를 구매한 사용자가 다시 이를 수정해서 무료로 배포하는 것을 막을 수 없기 때문에, 유료 소프트웨어가 이러한 오픈 소스를 채택하는 경우는 드물다.
위의 유료화의 한계는 오픈 소스 소프트웨어의 발전에 장애가 되는데, 유료화가 제한적이며 이는 개발 자금 부족으로 이어지는 경우가 많다. 부족한 자금 덕분에 실력있는 핵심적인 개발자를 영입하기 어렵고 외부 기술의 라이선스 취득에서도 약점이 된다. 고급 상용화 소프트웨어들이 모든 기능을 자체적으로 개발하는 경우는 매우 드물며, 외부에서 라이선스를 사와 여기에 기능을 덧붙여서 구현하는 경우가 많다. 모든 기능 개발에 집중할 필요가 없으면서도 외부에서 전문적으로 개발한 고급 기술을 사용할 수 있으니 개발 효율이 높아지게 된다. 말 그대로 돈으로 해결하는 것. 실력 있는 개발자가 자발적으로 참여해 적은 자금으로 개발하고 외부 라이선스 취득을 해결했다고 해도 점유율을 높이기 위해 마케팅을 할 역량은 없다. 이런 한계들로 인해 그 목적, 기능, 사용 난이도 등에서 서로 대응점에 있는 소프트웨어인 GIMP포토샵, 블렌더맥스/마야, 리브레오피스MS 오피스 등 유명한 오픈 소스 소프트웨어들과 클로즈드 소스 상용 소프트웨어들을 비교하면 오픈 소스 소프트웨어가 항상 콩라인인 것은 우연이 아니다. 대기업인 구글이 거대 자본을 들여 사실상 도맡아 발전시키고 있는 리눅스 기반 안드로이드는 오픈 소스 소프트웨어임에도 스마트폰 OS 중 가장 높은 점유율을 차지하는 것을 보면 자본의 중요성을 알 수 있다. 결국 오픈 소스 생태계를 확대하려면 유료화 문제의 해결은 필수적이다.
게다가 오픈 소스에는 원칙적으로 사후 지원의 제공 의무가 없다. 이것은 소스 코드를 제공하니 문제가 발생하면 사용자가 직접 고쳐 쓰라는 의미이다. 오픈 소스 프로그램인데도 빨리 고쳐달라고 제작자 게시판에 욕을 해대는 사람들이 있는데, 그러지 말자. 오픈 소스는 그렇게 해 줄 의무 자체가 없다. 다만 오픈 소스 프로그램들이 사용자들의 클레임이나 요구사항을 항상 무시한다는 것은 아니다. 물론 일반적인 용도로 많이 사용되는 오픈 소스 소프트웨어에 이런 사후지원이 없으면 일반 사용자는 쓰기 힘겨우니 사후 지원을 따로 계약하는 경우도 많고, 이러한 사후 지원은 비용을 받는 것이 일반적이다. 예를 들면, 레드햇 엔터프라이즈 리눅스는 상용으로 판매하는데, 소스를 따로 공개해놓고 상용 버전에는 1년 기술 지원을 포함해 놓고 있다. 이 소스를 가져다가 레드햇 상표만 들어내고 그대로 만든 것이 센트OS인데, 이처럼 제3자가 다시 만들어 배포해도 라이선스(리눅스의 경우 GPL)만 지키면 기술 지원만 못 받는 것일 뿐, 불법복제가 아니다.

3. 오픈 소스 소프트웨어 라이선스


다양한 오픈 소스 라이선스를 정리한 표 : #
오픈 소스 라이선스 가이드 : #
[ No.2854738 ] 이미지 등록됨

2010년 1월과 2017년 1월의 라이선스 사용률 비교
흔히 오픈 소스에는 저작권이 없을 것이라고 오해하는 경우가 있는데 독점적인 권리가 없을 뿐이지, 저작권은 존재한다. 예로써, 오픈 소스 프로그램은 보통 일정한 라이선스로 배포한다. 이 중 가장 강제성이 강한 것이 GPL인데, GPL은 오픈 소스인 만큼 소스 코드를 자유롭게 수정하고 배포할 수 있는 권리를 보장하지만, 재귀적 전염성 조항이라는 특이적인 성질이 부여된다. 이는 GPL 소스로부터 파생된 프로그램도 소스가 공개되어야 하고, 파생된 프로그램 또한 강제로 GPL 라이선스로 배포되어야 한다는 뜻이다.
그래서 개념 없는 개발자가 생각 없이 GPL 라이선스를 따르는 오픈 소스 코드를 집어넣어서 프로그램을 만들면 그 프로그램 전체의 코드가 강제 공개 당한다. 투하트 2, 스카이프 등등이 소스 코드를 강제 공개 형벌을 받은 바 있고[1], 이코는 영구 판매중지되었다. 뒷날에 플레이스테이션 3용 게임으로 재발매 되었는데, 재발매 본에서는 GPL 소스를 전부 들어냈다. 소니에서는 GPL 위반사항 때문에 DVD 4천만 장리콜한 적이 있다. 컴파일된 프로그램인데 GPL 위반을 어떻게 아는가는 GPL 코드를 사용했는지 안 했는지 매의 눈으로 감시하는 단체가 있기 때문이다.(...) 자유 소프트웨어 재단 같은 단체에서 이 일을 한다.
한때 마이크로소프트에서는 이러한 강제 규정이 산업 발전에 악영향을 끼친다고 암세포에 비유하며 깠다. 천문학적인 시간과 돈을 들여 개발한 프로그램인데 일찍 퇴근하고픈 하청업체 개발자가 어디선가 따와서 스윽 집어넣은 코드 몇 줄 때문에 공짜가 된다니? 이런 뒷목 잡는 시나리오도 충분히 가능한 것이다. 물론 자신들의 독점적 지위를 유지하기 위하여 오픈 소스 진영에서 먼저 열심히 만들어 놓으면, 뒤늦게 그걸 참고해서 그에 대응되지만 호환은 안 되는 것을 떡 하니 윈도우에 박아서 오픈 소스 진영의 것을 무효화시키려고 하던 마이크로소프트에서 할 말은 아니다.
이처럼 발머 시절, "자유 소프트웨어를 방해하는 악의 축" 취급을 받던 MS지만, 최근 들어서는 오픈 소스에 호의적이다. .NET과 차크라코어[2]를 공개 개발로 전환한 덕에 프로그램 개발과 회사 이미지 개선에 도움이 꽤나 크게 되었다고 한다. 이후에 C\#을 완전 오픈 소스로 풀거나, Windows 10 레드스톤에 우분투 기반 서브시스템과 Bash 셸을 탑재한 등 오픈 소스를 적극 활용하는 모습을 보이고 있다. 오라클 보고 있나?
가끔 오픈 소스 프로젝트로 하드웨어 디바이스를 제어하기 위한 라이브러리를 만들거나 차트(그래프) UI 컴포넌트 등을 만드는 팀들을 볼 수 있다. 이런 프로젝트 그룹이 만들어 놓은 결과물을 쓰면 비싼 라이브러리를 쓰지 않아도 된다는 장점이 있으나...가끔 중요한 API를 껍데기만 만들고 방치하는 경우도 종종 만난다. 그리고 당연히 개발자는 멘탈붕괴
GPL 규약은 사실 리눅스 운영체제나 과거 유닉스 프로그램 등의 상당히 GEEK한 소프트웨어들을 목적으로 만들어져서 위에 나온 빡빡한 정책을 고집하는데, 이것을 약간 완화시킨 것이 LGPL 라이선스이고[3], 소스 재공개를 아예 하지 않아도 되거나, 라이선스의 전염성 조항이 없는 MIT/ZLIB 라이선스도 있다. 위의 통계 자료에서 보이듯 최근에는 GPL을 기피하고 MIT 허가서를 사용하는 빈도가 급증하였다. 그리고 라이선스 없이 저작권 자체를 아예 포기해 버린 경우는 퍼블릭 도메인(Public Domain)이라고 한다. 본질적으로 퍼블릭 도메인과 같지만 이런 법적 문제에 넌덜머리가 난 한 데비안 개발자는 니 X대로 해라라는 뜻의 WTFPL을 배포했다. WTF는 많은 이들이 아는 그것맞다.
유명한 소프트웨어 회사들과 소프트웨어 재단 등에서는 각자의 개발 철학에 맞는 소프트웨어 라이선스를 배포한다. 마이크로소프트, 애플, IBM 등의 회사도 각자의 오픈 소프트웨어 라이선스를 가지고 있다. 다만, 뼈대는 기존 라이선스에서 따오는 경우가 대부분이고 GPL보다는 MIT 허가서, 아파치 라이선스를 참고하는 경우가 많다.

3.1. 주요 라이선스



4. 소프트웨어 목록


  • 목록은 "한글(가나다순) -> 알파벳(ABC순) -> 숫자(123순)" 순서로 작성해 주세요.

4.1. 개발 및 텍스트 에디터 관련



4.2. 게임 관련


보통 인기를 끌었다고 생각되는 게임들은 리메이크를 하거나 재구현을 통해 오픈 소스화하여 현재에 맞게 구성되는 경우가 많다. 그리고 에뮬레이터는 특히나 오픈 소스를 찾아보기 쉽다. 아무래도 개발자가 개발자이다 보니 에뮬레이터 만드는 게 수월한 모양. 아래에 후술 하는 게임 밖에도 다양한 게임이 오픈 소스로 제작되거나 이미 제작되었다. 더 많은 목록은 링크에서 참고할 것.

4.3. 그래픽 관련


  • Blender: 3D 애니메이션 제작
  • GIMP: 비트맵 그래픽 프로그램
  • Greenfish Icon Editor Pro
  • Inkscape: 벡터 그래픽 프로그램
  • Krita
  • MyPaint
  • Scribus
  • Synfig Studio: 오픈 소스 에니메이팅 도구(!!!)
  • Pencil Animation: 위와 동일하지만 0.4.4b를 마지막으로 지원이 중단되었다가 pencil2d라는 이름으로 부활했다. Synfig와 가장 다른 점이라면 비교적 비트맵 애니메이팅에 더 특화된 편이라는 것.

4.4. 네트워크 관련



4.5. 콘텐츠 매니지먼트(CMS) 관련



4.6. 데스크탑 환경


전부 리눅스 용이다. 아무레도 리눅스 자체가 오픈 소스이다 보니 많은 듯.
  • GNOME - 리눅스를 대표하는 데스크톱 환경
  • KDE
  • Xfce
  • LXDE - 매우 가벼운 데스크톱 환경으로, 64비트 프로그램인데도 램을 약 20MiB밖에 안쓴다.
나머지 항목의 설명은 추가바람

4.7. 보안 관련



4.8. 시스템 관련



4.9. 업무, 출판 관련



4.10. 운영 체제



4.11. 음악, 동영상 관련



4.12. 파일 관련



4.13. 암호화폐 관련



4.14. 기타



5. 오픈 소스 하드웨어



5.1. 목록


  • Arduino: 설계도가 오픈 소스로 공개되어 누구나 동일 제품을 생산하거나 수정된 버전을 만들 수 있다.

6. 오픈 소스 데이터



6.1. 목록



6.1.1. 글꼴



7. 관련 문서



8. 관련 링크



[1] 물론 소스 코드만 공개되고 리소스는 빠졌으므로 그것만 가지고 똑같이 만들 수는 없다. 컴파일이 제대로 되더라도 아마 검은 화면만 나올 듯.[2] 인터넷 익스플로러 11 및 엣지의 자바스크립트 엔진[3] 물론 정적 링크 시 오브젝트 코드는 공개해야 한다.