오픈 소스란 무엇인가요?

오픈 소스는 공개적으로 그 설계에 액세스할 수 있기 때문에 누구나 기술을 수정하고 공유할 수 있는 분산형 프로덕션 모델입니다. 이 용어는 소프트웨어 개발 맥락에서 해당 소프트웨어가 특정 무료 배포 기준을 준수한다는 의미에서 비롯되었습니다. 오늘날 오픈 소스 방식이라는 용어는 무료 정보 교환, 빠른 프로토타입 제작, 협업 개발의 원칙에 기반한 더 광범위한 가치 집합을 나타냅니다. 기술이 유기적으로 발전하도록 누구나 새로운 아이디어를 내고 개선할 수 있습니다.

오픈 소스가 중요한 이유는 무엇인가요?

오픈 소스의 아이디어는 기술 커뮤니티에서 나왔습니다. 기술 혁신이 발전하려면 글로벌 협업이 필요합니다. 예를 들어, 미국의 프로그래밍 팀이 금융 애플리케이션을 위한 새로운 오픈 소스 기술을 개발한다고 가정해 보겠습니다. 호주의 다른 프로그래밍 팀이 의료 부문에 더 적합한 새로운 기능으로 기술을 수정합니다. 그리고 아시아의 또 다른 팀은 원천 기술을 핵심 구성 요소로 사용하는 새로운 오픈 소스 제품을 개발합니다.

이러한 지식 공유와 집단적 혁신은 전체 커뮤니티에 도움이 됩니다. 특허, 저작권과 값비싼 라이선스로 기술을 제한하면 발전이 저해됩니다. 많은 인기 있는 오픈 소스 프로젝트가 지난 수십 년간 전 세계적으로 급속한 기술 발전으로 이어졌습니다.

오픈 소스의 원칙은 무엇인가요?

모든 오픈 소스 프로젝트의 핵심 원칙은 다음과 같습니다.

커뮤니티

오픈 소스 커뮤니티는 공통의 목표를 달성하기 위해 모인 사람들의 모임입니다. 공동의 가치와 목표가 의사 결정과 오픈 소스 프로젝트를 이끕니다.

투명성

오픈 소스 프로젝트를 통해 커뮤니티의 모든 사람이 자신의 최고의 작품을 만드는 데 필요한 정보와 자료에 액세스할 수 있습니다. 팀원들은 보다 큰 그림을 보고 더 효과적인 결정을 내리고 서로의 아이디어와 발견을 바탕으로 구축합니다.

공개 협업

커뮤니티 프로젝트는 공동 작업을 장려하므로 개인이 혼자서는 해결할 수 없는 문제를 그룹이 해결합니다. 예를 들어, 오픈 소스 이니셔티브의 구성원이 다른 사람이 구축한 것을 개선하기 위해 변경 사항을 기고합니다. 또한 다른 사람들이 나중에 필요에 따라 솔루션을 수정할 수 있도록 규칙을 설정할 수 있습니다.

신속한 프로토타입 제작

오픈 소스 프로젝트는 팀원들이 자주 프로토타입을 만들고 공유하는 반복적 접근 방식을 따릅니다. 신속한 프로토타입 제작은 실험 문화를 장려합니다. 효과가 있는 변경 사항을 개선 및 수행하고 그렇지 않은 변경 사항은 폐기할 수 있습니다.

포용적 능력주의

오픈 소스 운동은 다양한 관점과 대화를 장려합니다. 커뮤니티는 합의에 따라 결정을 내리지만 성공을 우선시합니다. 최고의 아이디어는 오픈 소스 커뮤니티로부터 더 많은 지지를 받습니다.

 

오픈 소스 소프트웨어란 무엇인가요?

오픈 소스 소프트웨어는 누구나 검사, 수정 및 개선할 수 있는 소스 코드가 포함된 소프트웨어입니다. 소스 코드는 컴퓨터 프로그래머가 애플리케이션의 기능을 변경하거나 새로운 기능을 추가하기 위해 조작하는 소프트웨어의 일부입니다. 소프트웨어의 소스 코드에 액세스할 수 있는 사람은 누구나 기능을 추가하거나 기존 오류를 해결하여 애플리케이션을 개선하거나 사용자 지정할 수 있습니다. 오픈 소스 소프트웨어는 오늘날 사용하는 대부분의 웹 애플리케이션 및 디바이스에 있습니다. 오픈 소스 소프트웨어의 몇 가지 예로 오픈 소스 운영 체제인 Linux와 오픈 소스 인터넷 브라우저인 Mozilla Firefox가 있습니다.

오픈 소스 소프트웨어의 기능은 무엇인가요?

모든 오픈 소스 소프트웨어의 기능은 오픈 소스 운동의 가치와 부합합니다.

오픈 소스

다음과 같은 특정 배포 기준을 충족하는 오픈 소스 라이선스에 따라 오픈 소스 소프트웨어를 릴리스해야 합니다.

  • 통합 소프트웨어 배포의 구성 요소로 소프트웨어를 판매하거나 양도하는 것에 대한 제한은 없습니다.
  • 소스 코드를 포함하고 배포를 허용해야 합니다.
  • 수정본과 파생 저작물을 허용해야 합니다.
  • 프로그램에 부여된 권리는 차별 없이 모든 사람에게 적용되어야 합니다.

공개 설계

공개 설계는 소프트웨어 설계 및 계획을 위한 투명하고 공개된 프로세스를 보장합니다. 이는 커뮤니티가 소프트웨어의 설계 및 기능 로드맵을 주도하도록 하는 것입니다. 커뮤니티의 동의를 얻는 데 많은 시간이 소요될 수 있기 때문에 공개 설계가 어려울 수 있습니다. 그러나 커뮤니티에서 동의하는 설계는 사용자의 요구를 보다 효과적으로 충족하는 더 나은 제품으로 이어집니다.

공개 개발

공개 개발은 모든 사람이 평등하게 참여할 수 있도록 하는 포괄적이고 투명한 개발 프로세스를 채택하는 것입니다. 공개적으로 액세스 가능한 서비스는 개발 활동에 대한 가시성을 제공합니다. 예를 들어, 오픈 소스 프로젝트는 일반적으로 기여도를 평가할 기준을 명확하게 명시하는 일련의 표준을 채택합니다. 이를 통해 해당 업데이트가 최초 기여자의 것인지, 선임 개발자의 것인지에 관계없이 모든 소프트웨어 업데이트가 동등하게 고려됩니다.

오픈 커뮤니티

오픈 커뮤니티는 소프트웨어 개발 커뮤니티가 모든 목소리를 들을 수 있고 누구나 리더십 위치에 오를 수 있는 포괄적인 환경임을 보장합니다. 공통 목표를 설정하고 강력한 연결을 구축하여 개발자와 사용자 모두의 요구 사항을 균형 있게 유지합니다.

오픈 소스 소프트웨어와 다른 유형의 소프트웨어의 차이점은 무엇인가요?

소프트웨어를 만드는 조직이나 사람들이 상업적인 이유로 소프트웨어를 통제하는 것을 선호하는 경우가 가끔 있습니다. 그들은 소스 코드에 대한 독점적인 소유권을 유지합니다. 즉, 그들만이 오류 수정 및 새로운 기능 추가를 위해 코드를 수정할 수 있습니다. 이러한 소프트웨어를 독점 소프트웨어 또는 클로즈드 소스 소프트웨어라고 합니다. Adobe Photoshop 및 Norton AntiVirus 제품이 독점 소프트웨어의 예입니다.

오픈 소스 소프트웨어와 클로즈드 소스 소프트웨어 비교

오픈 소스 소프트웨어와 클로즈드 소스 또는 독점 소프트웨어의 세 가지 주요 차이점은 다음과 같습니다.

신뢰성

독점 소프트웨어는 코드를 제어하는 단일 조직 또는 개발자를 통해 코드를 업데이트하고 오류를 방지하며 작동 상태를 유지합니다. 이와 반대로 오픈 소스 소프트웨어는 더 넓은 커뮤니티에서 유지 관리됩니다. 주요 오픈 소스 프로젝트 중 일부는 전 세계에서 수천 명의 기고자가 이전 코드와 새로운 변경 사항을 세밀하게 테스트합니다. 그렇기 때문에 오픈 소스 코드는 신뢰성이 더 높은 경우가 많습니다.

보안

모든 소스 코드에는 사이버 공격에 취약하게 만드는 보안 결함이 있을 수 있습니다. 그러나 오픈 소스 소프트웨어는 수정이 더 빠르다는 장점이 있습니다. 커뮤니티 구성원이 보안 취약점을 보고하면 오픈 소스 프로젝트에서 하루나 이틀 내에 코드 업데이트를 릴리스합니다. 상업 회사가 오픈 소스 소프트웨어를 개발하면 높은 가시성으로 인해 긴급하게 문제가 해결되며 이는 더 나은 원본 소프트웨어로 이어질 수도 있습니다.

반면에 독점 소프트웨어는 다음과 같은 이유로 업데이트 주기가 더 깁니다.

  • 지정된 프로젝트의 공급업체 작업자가 더 적을 수 있습니다.
  • 공급업체가 보안 결함보다 재정적 고려 사항을 우선시할 수 있습니다.
  • 공급업체가 여러 변경 사항을 번들로 묶어 한 번에 릴리스하는 것을 선호하여 보안 업데이트 릴리스가 지연될 수 있습니다.

라이선스

회사는 일반적으로 법적으로 허용된 소프트웨어 사용을 설명하는 독점 라이선스에 따라 클로즈드 소스 소프트웨어를 판매합니다. 누구도 허가 없이 독점 코드를 보거나 편집하거나 수정할 수 없습니다. 예를 들어 독점 라이선스에서 개인 또는 비즈니스 사용을 허용하지만 재판매는 허용하지 않을 수 있습니다. 또한 고정된 기간 동안 공급업체별 계약을 체결할 수도 있습니다.
 
반면에 오픈 소스 소프트웨어는 오픈 소스 라이선스에 따라 사용할 수 있으므로 사용, 수정 및 재배포가 자유롭습니다. 공급업체 종속 계약은 존재하지 않거나 매우 유연합니다. 개발자는 공개 웹 사이트에서 소프트웨어를 다운로드하고 컴퓨터에서 모든 오픈 소스 코드를 볼 수 있습니다. 또한 오픈 소스 라이선스는 다음을 허용합니다.
 
  • 개인 프로젝트의 소스 코드 수정
  • 사용자가 다른 사용자가 변경 사항을 볼 수 있도록 계속 허용하는 경우 수정된 코드 재배포

오픈 소스 소프트웨어 라이선스 유형에는 무엇이 있나요?

오픈 소스 라이선스는 독점 라이선스보다 덜 제한적이지만 권한의 수준과 범위는 유형에 따라 다릅니다. 다음은 몇 가지 일반적인 오픈 소스 라이선스 유형입니다.

퍼블릭 도메인 라이선스

퍼블릭 도메인 라이선스는 누구나 제한 없이 소프트웨어를 수정, 사용 또는 상업화할 수 있음을 나타냅니다. 대부분의 경우 퍼블릭 도메인 오픈 소스 소프트웨어 제작자는 소프트웨어에 저작권을 부여하지 않기로 의도적이거나 자발적인 결정을 내렸습니다.

허용적 라이선스

허용적 오픈 소스 라이선스에는 소프트웨어를 수정하거나 배포하는 방법에 대한 최소한의 요구 사항이 포함되어 있습니다. 이 라이선스 유형의 몇 가지 예로 Apache 라이선스와 BSD(Berkeley Source Distribution) 라이선스가 있습니다. 원본 소프트웨어는 저작권이 있고 오픈 소스이지만 사용자는 수정된 버전을 상업화하고 재배포할 수 있습니다.

약소 일반 퍼블릭 라이선스

약소 일반 퍼블릭 라이선스(LGPL)로 오픈 소스 구성 요소를 무제한으로 사용할 수 있습니다. 이러한 구성 요소는 코드에 연결하여 사용할 수 있는 라이브러리라는 코드 모듈로 액세스할 수 있는 경우가 많습니다. 애플리케이션에서 LGPL 소스 코드를 사용하면 애플리케이션을 상용화할 수 있습니다. 단, 기존 LGPL 코드를 수정하는 경우 동일한 라이선스로 재배포해야 합니다.

카피레프트 라이선스

카피레프트 라이선스는 가장 일반적인 오픈 소스 라이선스이며 일반 퍼블릭 라이선스가 대표적인 예입니다. 카피레프트 라이선스 조건은 상업화를 제한하려고 합니다:
 
  • 카피레프트 오픈 소스 구성 요소를 수정하는 경우 애플리케이션과 함께 모든 새 소스 코드를 릴리스해야 합니다. 그러나 애플리케이션을 내부에서만 사용하고 일반에 공개하지 않는 경우에는 그럴 필요가 없습니다.
  • GPL 수정본을 판매할 수 있지만 구매자가 원하는 경우 추가로 재배포할 수 있습니다.
  • 새 코드의 저작권 설명에 모든 과거 코드 작성자의 기여한 바를 밝혀야 합니다.

누가 오픈 소스 소프트웨어를 규제하나요?

Open Source Initiative(OSI)는 모든 유형의 오픈 소스 소프트웨어에 대해 교육하고 지지하는 글로벌 비영리 조직입니다. 표준 기관으로서 소프트웨어를 오픈 소스로 만드는 조건을 법적으로 정의하는 문서인 오픈 소스 정의를 유지 관리합니다.

Open Source Initiative의 오픈 소스 정의를 따르면 OSI 승인 라이선스 상표를 받을 수 있습니다. 상표는 신뢰를 구축하고 다른 사람들이 귀하와 함께 기여하고 협업하도록 장려합니다. OSI는 승인된 라이선스 목록을 유지 관리하고 오픈 소스 커뮤니티에서 새 라이선스를 승인합니다. 또한 소프트웨어에 대한 공개 표준 요구 사항을 규제합니다.

공개 표준이란 무엇인가요?

공개 표준은 기술의 균일성과 상호 운용성을 지원하는 소프트웨어 개발 규칙으로 구현, 채택 및 업데이트를 위해 무료로 사용할 수 있습니다. 결과적으로 일상 생활의 여러 측면을 더 편안하고 편리하게 만듭니다.

예를 들어 표준은 모든 유형의 머신이 모든 유형의 무선 라우터에 연결할 수 있도록 합니다. 사용하는 라우터에 관계없이 집과 좋아하는 카페에서 노트북을 사용하여 인터넷에 연결할 수 있습니다. 표준이 없다면 노트북과 호환되는 라우터가 있는 카페를 찾아 헤매야 할 것입니다.

오픈 소스와 공개 표준 비교

표준은 코드 자체가 아니라 특정 유형의 소스 코드를 작성하기 위한 규칙, 지침 및 사양입니다. 소프트웨어 표준은 오픈 소스로 분류되기 위해 특정 규칙을 따라야 합니다. 예를 들어 특정 표준을 구현하기 위해 독점 기술이 필요한 경우 해당 표준은 오픈 소스가 아닙니다.

오픈 소스 소프트웨어의 상용 버전이 존재하는 이유는 무엇인가요?

제작자와 기타 회사는 더 큰 기업의 흥미를 끄는 분석 또는 보안과 같은 추가 기능을 판매하여 많은 오픈 소스 프로젝트에서 수익을 창출했습니다. 민간 기업은 애플리케이션 코드에 이러한 오픈 소스 프로그램을 포함하여 퍼블릭 도메인의 모든 소프트웨어를 상용화할 수 있습니다. 또한 다른 라이선스로 동일한 소프트웨어의 다른 버전을 릴리스할 수 있습니다.

예를 들어, 어떤 회사가 일반 퍼블릭 라이선스와 독점 라이선스 모두에 따라 데이터베이스 관리 시스템을 릴리스한다고 가정해 보겠습니다. 새로운 코드를 오픈 소스로 만들면 누구나 GPL 버전을 소프트웨어 개발에 사용할 수 있습니다. 반면에 독점 버전은 다음과 같은 추가 소프트웨어 서비스를 제공합니다.

  • 완전관리형 데이터베이스 서비스
  • 엔터프라이즈급 데이터 백업 서비스
  • 추가 보안 암호화
 
내부 사용을 위해 상용 소프트웨어를 구입하거나 제품 및 서비스에서 사용하기 위해 더 많은 비용을 지불할 수 있습니다.

오픈 소스 소프트웨어는 자유 소프트웨어와 동일하나요?

자유 소프트웨어라는 용어는 자유 소프트웨어 운동이라고도 하는 사회 운동을 말하며, 소프트웨어 사용자의 특정 자유를 확보하고 보장하는 것을 목표로 합니다. 자유 소프트웨어는 사용자가 다음을 수행할 수 있는 자유를 보장하기 위한 운동입니다.

  • 소프트웨어 실행
  • 소프트웨어 연구
  • 소프트웨어 수정
  • 소프트웨어 사본 공유
 
오픈 소스 운동은 1980년대 초에 시작된 자유 소프트웨어 운동에 뿌리를 두고 있습니다. 일부 그룹은 기술의 실제 적용에 집중하고자 했으며, 자유 소프트웨어라는 용어가 불분명하다고 느끼고 비즈니스 채택을 중지시켰습니다. 그들은 오픈 소스라는 용어를 제안했고 결국 Open Source Initiative를 설립하여 대중화하고 표준화했습니다.

오픈 소스 소프트웨어와 자유 소프트웨어 비교

오늘날 자유 소프트웨어는 퍼블릭 도메인의 오픈 소스 라이선스를 의미합니다. 오픈 소스 소프트웨어는 이제 더 많은 유형의 라이선스를 포함하며 자유 소프트웨어 운동과 달리 사용자에게 몇 가지 제한을 부과할 수 있습니다. 프리웨어와 자유 소프트웨어라는 용어는 같은 의미로 사용되기 때문에 자유 소프트웨어를 퍼블릭 도메인 소프트웨어라고 하는 것이 더 좋습니다.

오픈 소스 소프트웨어와 프리웨어 비교

프리웨어라는 용어는 단순히 제한된 시간 동안 무료로 제공되는 상용 제품을 의미합니다. 프리웨어는 또한 구독료가 필요한 제품의 무료 평가판 또는 제한된 기능 버전일 수도 있습니다. 프리웨어에 대한 액세스 권한을 얻더라도 어떤 방식으로든 이를 재판매, 공유 또는 수정할 수 있는 권한은 없습니다.

AWS는 오픈 소스 소프트웨어에 어떻게 기여하나요?

AWS는 오픈 소스가 모든 사람에게 유익하다고 믿습니다. 이에 따라 오픈 소스의 가치를 고객에게 제공하고 AWS의 운영 우수성을 오픈 소스 커뮤니티에 제공하기 위해 최선을 다하고 있습니다. AWS 엔지니어는 정기적으로 오픈 소스 소프트웨어를 개발하고 GitHub, Apache, Linux Foundation 등에서 수천 개의 오픈 소스 커뮤니티에 기여합니다. 또한 AWS는 다음과 같이 오픈 소스를 지원합니다.

  • AWS는 고객이 클라우드에서 선호하는 오픈 소스 소프트웨어를 배포하고 운영할 수 있도록 노력했습니다. AWS는 다른 클라우드 제공업체보다 광범위한 오픈 소스 기술을 지원합니다.
  • 오픈 소스 커뮤니티에서 여러 장기 프로젝트를 진행하고 있습니다. 이러한 프로젝트에 버그 수정, 보안, 확장성, 성능 및 기능 개선 사항을 지속적으로 제공합니다.
  • HashiCorp에서 MongoDB, Confluent, Red Hat에 이르는 선도적인 오픈 소스 회사와 긴밀하게 협력하고 이들이 고객의 기대치를 넘도록 돕습니다.

AWS의 오픈 소스에서 오픈 소스 프로젝트에 대해 자세히 알아보거나 GitHub에서 1200여 개의 Amazon 주도 오픈 소스 프로젝트를 검토하세요.

지금 무료 계정을 만들어 AWS에서 오픈 소스를 시작하세요.

AWS의 다음 단계

제품 관련 추가 리소스 확인
오픈 소스에 대해 자세히 알아보기 
프리 티어 AWS 서비스

프리 티어 AWS 서비스 보기

무료 서비스 보기 
콘솔에서 구축 시작

AWS 관리 콘솔에서 AWS로 구축을 시작하세요.

로그인