오픈소스
오픈 소스(open source)란 소프트웨어의 소스 코드를 누구나 열람하고 수정할 수 있도록 공개한 것을 말한다. 대체로 무료로 배포된다. 오픈 소스 소프트웨어(Open Source Software, OSS)라고도 한다.
오픈 소스 소프트웨어의 경우 소스 코드가 공개되어 있고, 통째로 복사하는 것이 허용되는 라이선스를 따르기 때문에, 원저작자의 허가 없이 포크(fork)를 통한 새로운 소프트웨어 개발이 가능하다.
종류
오픈 소스 기반의 운영체제(OS), 웹서버, DBMS, 플러그인, 프레임워크, 개발 툴, 웹 브라우저, 테스트 툴 등 다양한 오픈 소스 소프트웨어가 있다.
운영체제
- 유닉스(UNIX) : 1969년 미국 AT&T의 벨 연구소에 근무하던 켄 톰슨과 데니스 리치가 개발한 오픈 소스 기반의 운영체제이다. 유닉스를 기반으로 리눅스, AIX, BSD, 솔라리스, 안드로이드, iOS 등 다양한 운영체제가 개발되었다.
- GNU : 미국 리차드 스톨만이 유닉스 운영체제의 상용화에 반대하면서 만든 오픈 소스 기반의 무료 공개 운영체제이다. GNU 운영체제를 기반으로 GPL, LGPL, GFDL 등 다양한 저작권 유형을 만들었다.
- 안드로이드(Android) : 2003년 앤디 루빈이 만든 오픈 소스 운영체제이다. 2005년 구글이 인수하여 전 세계에 무료로 보급하였다. 삼성전자, LG, 화웨이, 샤오미 등 전 세계 스마트폰의 운영체제로 사용되고 있다.
- 타이젠(Tizen) : 삼성전자와 인텔 등이 주도하여 구글의 안드로이드와 애플의 iOS에 대항하기 위해 만든 오픈 소스 기반의 운영체제이다. 리눅스를 기반으로 개발했고, 삼성전자의 스마트폰, 스마트 카메라, 스마트워치, 스마트 TV 등에 사용되고 있다.
- 리눅스(Linux) : 기존의 유닉스(Unix) 운영체제를 소형화하여 PC와 서버컴퓨터 등에서 사용하기 위해 만든 운영체제이다. 오픈 소스 기반의 무료 소프트웨어이다.
- 페도라(Fedora) : 오픈 소스 기반의 리눅스 운영체제이다. 페도라를 기반으로 레드햇 리눅스가 개발되었다.
- 레드햇 리눅스(RHEL) : 미국 레드햇이 만든 기업용 리눅스 운영체제이다. 무료 오픈 소스이지만 기술지원은 유료로 제공되고 있다.
- 센트오에스(CentOS) : 레드햇 리눅스(RHEL)와 호환되는 오픈 소스 기반의 무료 운영체제이다. '센토스'라고 읽기도 한다. 레드햇 리눅스를 포크하여 Red Hat 상표만 삭제하고 다시 컴파일하여 만든 리눅스 제품으로서, 레드햇 리눅스와 사실상 동일하게 작동한다. 다만 미국 레드햇 회사의 유료 기술지원을 받을 수 없다.
- 데비안(Debian) : 이안 머독이 개발한 오픈 소스 기반의 리눅스 운영체제이다. 데비안을 기반으로 우분투가 개발되었다.
- 우분투(Ubuntu) : 남아프리카공화국 출신의 영국인인 마크 셔틀워스가 개발한 오픈 소스 기반의 리눅스 운영체제이다. 우분투는 남아프리카의 반투어로 "다른 사람에 대한 인간적 배려"라는 뜻이다. 기존의 데비안을 포크하여 개발했다.
- BSD : 1977년 미국 버클리 대학교의 빌 조이가 주도하여 개발한 오픈 소스 기반의 운영체제이다. 유닉스를 기반으로 개발했다.
- FreeBSD : 미국 버클리 대학교에서 개발한 BSD 계열의 오픈 소스 운영체제이다.
웹서버
웹 애플리케이션 서버
- 톰캣(Tomcat) : 오픈 소스 기반의 웹 애플리케이션 서버(WAS) 소프트웨어이다. 아파치재단이 관리하고 있다. 영어로 'tomcat'이란 수고양이를 의미한다.
- 제이보스(JBoss) : 자바를 기반으로 하는 오픈 소스 웹 애플리케이션 서버(WAS) 소프트웨어이다. 미국 레드햇이 관리하고 있다. 2014년 11월 와일드플라이(WildFly)로 이름을 변경했다.
- 레진(Resin) : 미국 카우초(Caucho) 회사가 개발한 윈도용 오픈 소스 웹 애플리케이션 서버(WAS) 소프트웨어이다.
데이터베이스 관리 시스템
- 마이에스큐엘(MySQL) : 오픈 소스 기반의 관계형 데이터베이스 관리 시스템(RDBMS)이다. 1995년 몬티 와이드니어스가 개발했다. 'My'는 그의 큰 딸 이름이다.
- 마리아디비(MariaDB) : 기존의 MySQL 5 버전을 [[포크]하여 만든, 오픈 소스 기반의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL을 개발했던 몬티 와이드니어스가 개발했다. 'Maria'는 그의 어린 딸 이름이다.
- 큐브리드(Cubrid) : 한국의 큐브리드사가 개발한 오픈 소스 기반의 관계형 데이터베이스 관리 시스템(RDBMS)이다. 2006년 (주)큐브리드가 개발했고, 2008년 네이버(주)의 계열사로 편입되었다. 2010년 (주)큐브리드가 분사하여 기술지원을 맡고 있다.
- 포스트그레스큐엘(PostgreSQL) : 오픈 소스 기반의 객체-관계형 데이터베이스 관리 시스템(RDBMS)이다. 포스트그레 에스큐엘이라고도 한다. 1982년 미국 버클리대학교 학생들이 개발한 인그레스(Ingres)를 개선한 제품이다.
- 파이어버드(Firebird) : 인터베이스(Interbase)를 기반으로 만들어진 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)이다. 파이어버드의 로고는 '불새'이다.
- 몽고디비(MongoDB) : 빅데이터와 같은 비정형 데이터를 분석하기 위해 사용하는 오픈 소스 기반의 데이터베이스 관리 시스템(DBMS)이다.
- 에이치베이스(HBase) : 하둡(Hadoop) 플랫폼을 위한 비관계형 분산 데이터베이스 관리 시스템(DBMS)이다. 구글의 빅테이블을 참고하여 자바로 개발했다. 아파치재단이 관리하고 있다.
- 카산드라(Cassandra) : 빅데이터 등 비정형 데이터를 처리하기 위한 비관계형 분산 데이터베이스 관리 시스템(DBMS)이다. 페이스북이 처음 개발했고, 아파치재단에서 관리하고 있다.
DB 관리 툴
오픈 소스 DB 관리 툴에는 phpMyAdmin 등이 있고, 오픈 소스 DB 통합 솔루션에는 Talend 등이 있다.
개발 툴
오픈 소스 라이브러리 또는 플러그인에는 Bootstrap, Emmet(=Zen Coding), Lucene 등이 있다.
오픈 소스 표준 프레임워크에는 Spring, Struts, eGovFrame(전자정부 표준 프레임워크), iBatis, MyBatis, Hibernate, ASP.NET, node.js, AngularJS, Hadoop, Spark 등이 있고, 오픈 소스 플랫폼에는 Arduino 등이 있다.
오픈 소스 개발 툴에는 Eclipse 등이 있고, 오픈 소스 CMS에는 WordPress, Drupal, Joomla, Zeroboard XE 등이 있고, 오픈 소스 LMS에는 Moodle 등이 있고, 오픈 소스 웹 브라우저에는 FireFox 등이 있고, 오픈 소스 인공지능(AI) 소프트웨어는 TensorFlow 등이 있고, 오픈 소스 기반의 클라우드 서비스에는 OpenStack 등이 있고, 오픈 소스 테스트 툴에는 JMeter, Bugzilla, SonarQube, nGrinder 등이 있고, 오픈 소스 웹 취약점 점검 툴에는 ZAP, Yasca, FindBugs, PMD 등이 있고, 오픈 소스 공유 사이트에는 GitHub 등이 있다.