
“오픈소스“라는 단어는 사물이 공개적으로 접근할 수 있도록 계획되어 사람들이 수정하고 공유할 수 있음을 의미합니다.
이 단어는 원래 소프트웨어 개발에서 시작되었으며, 소프트웨어를 개발하는 특별한 형태를 의미했습니다. 하지만 오늘날 “오픈소스”는 이미 우리가 “오픈소스 방식“이라고 부르는 일련의 개념을 지칭합니다. 이러한 개념에는 오픈소스 프로젝트, 제품, 또는 자발적으로 오픈 변화, 협업 참여, 빠른 프로토타이핑, 공개 투명성, 능력주의, 커뮤니티 지향 개발 원칙을 환영하는 것들이 포함됩니다.
오픈소스 소프트웨어란 무엇인가?
오픈소스 소프트웨어의 소스 코드는 누구나 검토, 수정, 개선할 수 있습니다.
“소스 코드“는 소프트웨어에서 대부분의 컴퓨터 사용자가 본 적이 없는 부분으로, 프로그래머가 코드를 수정하여 소프트웨어(“프로그램” 또는 “앱”)의 작동 방식을 변경할 수 있습니다. 프로그래머가 컴퓨터 프로그램의 소스 코드에 접근할 수 있으면 기능을 추가하거나 문제를 수정하여 소프트웨어를 개선할 수 있습니다.
오픈소스 소프트웨어와 다른 유형의 소프트웨어의 차이점은 무엇인가?
일부 소프트웨어는 그것을 만든 사람, 팀, 조직만이 수정할 수 있으며 유지 관리를 통제합니다. 사람들은 이러한 소프트웨어를 “전용” 또는 “폐쇄 소스” 소프트웨어라고 부릅니다.
전용 소프트웨어는 원저자만이 합법적으로 소프트웨어를 복사, 검토, 수정할 수 있습니다. 전용 소프트웨어를 사용하기 위해 컴퓨터 사용자는 (보통 소프트웨어를 처음 실행할 때 표시되는 라이선스에 서명하여) 소프트웨어 저자가 명시적으로 허용하지 않은 일을 소프트웨어에 하지 않을 것에 동의해야 합니다. 마이크로소프트 Office와 Adobe Photoshop은 전용 소프트웨어의 예입니다.
오픈소스 소프트웨어는 다릅니다. 그 저자는 소스 코드를 다른 사람에게 제공하여, 필요한 사람이 누구나 코드를 보고, 복사하고, 배우고, 수정하거나 공유할 수 있게 합니다. LibreOffice와 GIMP는 오픈소스 소프트웨어의 예입니다.
전용 소프트웨어처럼, 사용자는 오픈소스 소프트웨어를 사용할 때 라이선스 조항에 동의해야 합니다 —— 하지만 오픈소스 라이선스의 법적 조항은 전용 소프트웨어의 라이선스와 완전히 다릅니다.
오픈소스 라이선스는 사람들이 사용, 학습, 수정 및 배포하는 방식에 영향을 미칩니다. 전반적으로, 오픈소스 라이선스는 컴퓨터 사용자에게 원하는 목적에 따라 오픈소스 소프트웨어를 사용할 수 있는 허가를 부여합니다. 일부 오픈소스 라이선스(사람들은 이를 카피레프트라고 부름)는 수정된 오픈소스 소프트웨어를 배포하는 모든 사람이 동시에 그 소스 코드도 함께 배포해야 한다고 규정합니다. 또한, 다른 오픈소스 라이선스는 프로그램을 수정하고 다른 사람에게 공유하는 모든 사람이 그 프로그램의 소스 코드를 공유해야 하며 라이선스 비용을 청구할 수 없다고 규정합니다.
오픈소스 소프트웨어 라이선스는 다른 사람이 코드를 수정하고 그 변경 사항을 자신의 프로젝트에 포함할 수 있게 허용하여 의도적으로 협업과 공유를 촉진합니다. 오픈소스 라이선스는 개발자가 성과를 공유할 때 다른 사람들도 동일한 일을 할 수 있게 허용한다는 전제 하에 언제든지 오픈소스 소프트웨어에 접근, 보기, 수정을 장려합니다.
오픈소스 소프트웨어는 개발자에게만 중요한가?
아니요. 오픈소스 기술과 오픈소스 사고방식은 개발자와 비개발자 모두에게 이익이 됩니다.
초기 창조자들이 Linux 운영체제와 Apache 웹 서버 애플리케이션 같은 오픈소스 기술을 기반으로 인터넷 자체의 대부분을 구축했기 때문에, 오늘날 인터넷을 사용하는 모든 사람이 오픈소스 소프트웨어의 혜택을 받고 있습니다.
컴퓨터 사용자가 웹을 탐색하고, 이메일을 확인하고, 친구와 채팅하고, 온라인에서 스트리밍 음악을 듣고, 멀티플레이어 게임을 할 때마다, 그들의 컴퓨터, 휴대폰 또는 게임 콘솔은 전 세계적인 컴퓨터 네트워크에 연결되어 오픈소스 소프트웨어를 사용하여 데이터를 라우팅하고 “로컬” 장치로 전송합니다. 이러한 중요한 작업을 수행하는 컴퓨터는 보통 멀리 있으며, 사용자는 실제로 보거나 물리적으로 접촉하지 않습니다 —— 그래서 일부 사람들은 이를 “원격 컴퓨터”라고 부릅니다.
점점 더 많은 사람들이 로컬에서 완료할 수 있는 작업을 온라인에서 완료하기 위해 원격 컴퓨터에 의존하기 시작합니다. 예를 들어, 사람들은 온라인 워드 프로세싱, 이메일 관리, 사진 편집 도구를 사용할 수 있으며, 로컬 개인 컴퓨터에는 해당 소프트웨어가 설치되어 있지 않습니다. 사람들은 브라우저나 휴대폰 앱을 사용하여 이러한 프로그램에 쉽게 접근합니다. 그들이 이렇게 할 때, 그들은 “원격 컴퓨팅”에 참여하는 것입니다.
일부 사람들은 원격 컴퓨팅을 “클라우드 컴퓨팅”이라고 부릅니다. 왜냐하면 그것이 포함하는 활동(파일 저장, 사진 공유, 비디오 시청 등)이 로컬 장치뿐만 아니라 주변을 감싸는 대기와 같은 원격 컴퓨터의 전 세계 네트워크도 포함하기 때문입니다.
클라우드 컴퓨팅은 인터넷에 연결된 장치 없이는 살 수 없는 일상생활에서 점점 더 중요한 개념이 되고 있습니다. 일부 클라우드 컴퓨팅 애플리케이션, 예를 들어 Google 앱은 전용입니다. 다른 것들, 예를 들어 OwnCloud와 NextCloud는 오픈소스입니다.
클라우드 컴퓨팅 애플리케이션은 그것들이 원활하고 효율적으로 작동하도록 돕는 추가 소프트웨어 “위”에서 실행되므로, 사람들은 종종 그 소프트웨어가 클라우드 컴퓨팅 애플리케이션 “아래”에서 실행되며 그 애플리케이션을 위해 “플랫폼” 역할을 한다고 말합니다. 클라우드 컴퓨팅 플랫폼은 오픈소스 또는 폐쇄 소스일 수 있습니다. OpenStack은 오픈소스 클라우드 컴퓨팅 플랫폼의 예입니다.
왜 사람들은 오픈소스 소프트웨어를 더 선호하는가?
사람들이 전용 소프트웨어보다 오픈소스 소프트웨어를 선호하는 데는 많은 이유가 있습니다:
통제. 많은 사람들이 다른 유형의 소프트웨어에 비해 더 많은 통제를 가질 수 있어 오픈소스 소프트웨어를 선호합니다. 그들은 코드를 검사하여 원하지 않는 일을 하지 않는지 확인할 수 있고, 마음에 들지 않는 부분을 변경할 수 있습니다. 개발자가 아닌 사용자도 오픈소스 소프트웨어의 혜택을 받을 수 있습니다. 왜냐하면 그들은 어떤 목적으로든 소프트웨어를 사용할 수 있기 때문입니다 —— 단지 어떤 사람들이 그들이 가져야 한다고 생각하는 목적만이 아닙니다.
훈련. 다른 사람들은 오픈소스 소프트웨어가 그들이 더 나은 개발자가 되는 데 도움이 되기 때문에 좋아합니다. 오픈소스 코드는 공개적으로 접근할 수 있으므로, 학생들은 더 나은 소프트웨어를 만드는 법을 배울 때 쉽게 그것으로부터 배울 수 있습니다. 학생들은 또한 기술을 향상시킬 때 그들의 성과를 다른 사람과 공유하여 평가와 비판을 받을 수 있습니다. 사람들이 프로그램 소스 코드에서 오류를 발견하면, 그 오류를 다른 사람과 공유하여 같은 실수를 저지르는 것을 도울 수 있습니다.
보안. 일부 사람들은 오픈소스 소프트웨어가 전용 소프트웨어보다 더 안전하고 안정적이라고 생각하여 선호합니다. 누구나 오픈소스 소프트웨어를 보고 수정할 수 있으므로, 원저자가 놓친 오류나 실수를 누군가가 발견하고 수정할 수 있습니다. 그리고 너무 많은 개발자가 원저자의 승인을 미리 받지 않고도 동일한 오픈소스 소프트웨어에서 작업할 수 있으므로, 전용 소프트웨어에 비해 오픈소스 소프트웨어를 더 빠르게 수정, 업데이트, 업그레이드할 수 있습니다.
안정성. 많은 사용자가 중요하고 장기적인 프로젝트에서 전용 소프트웨어보다 오픈소스 소프트웨어를 더 선호합니다. 개발자가 오픈소스 소프트웨어의 소스 코드를 공개적으로 배포하므로, 초기 개발자가 개발을 중단하더라도 그 소프트웨어에 의존하는 핵심 업무 사용자는 그들의 도구가 사라지거나 수정할 수 없는 상태가 되지 않을 것이라고 확신할 수 있습니다. 또한, 오픈소스 소프트웨어는 개방 표준을 포함하고 그에 따라 작동하는 경향이 있습니다.
“오픈소스”는 단지 어떤 것이 무료라는 것을 의미하지 않는가?
아니요. 이것은 “오픈소스” 실천에서의 일반적인 오해이며, “오픈소스” 개념의 의미는 경제적 측면만을 지칭하지 않습니다.
오픈소스 소프트웨어 개발자는 그들이 만들거나 기여한 오픈소스 소프트웨어에 대해 비용을 청구할 수 있습니다. 하지만 일부 경우, 오픈소스 라이선스가 소프트웨어를 다른 사람에게 판매할 때 소스 코드를 배포하도록 요구할 수 있으므로, 일부 개발자는 소프트웨어 자체가 아닌 소프트웨어 서비스와 지원에 대해 사용자에게 비용을 청구하는 것이 더 수지타산이 맞는다는 것을 발견했습니다. 이런 방식으로, 그들의 소프트웨어는 여전히 무료로 유지되며, 그들은 다른 사람을 돕는 것에서 설치, 사용, 문제 해결로 돈을 법니다.
일부 오픈소스 소프트웨어가 무료일 수 있지만, 오픈소스 소프트웨어의 프로그래밍과 문제 해결 기술은 매우 가치 있을 수 있습니다. 많은 고용주가 특히 오픈소스 소프트웨어에 대한 업무 경험이 있는 개발자를 고용하려고 합니다.
“소프트웨어 외부”의 오픈소스란 무엇인가?
Opensource.com에서 우리는 오픈소스 가치와 원칙이 소프트웨어 외부 영역에 적용되는 방식에 관심이 있다고 말하고 싶습니다. 우리는 오픈소스를 컴퓨터 소프트웨어를 개발하고 라이선스하는 방식으로만 보지 않고, 하나의 태도로도 보고 싶습니다.
“오픈소스 방식“을 삶의 모든 측면에서 실현하는 것은 공유의 의지를 표현하고, 투명한 방식으로 다른 사람과 협업하며(다른 사람도 주시하고 참여할 수 있도록), 실패를 개선의 수단으로 포용하고, 모든 사람이 그렇게 할 수 있기를 기대(심지어 격려)하는 것을 의미합니다.
이것은 또한 세상을 더 좋게 만드는 과정에서 적극적인 역할을 하는 것을 의미하며, 이것은 모든 사람이 세상을 계획하는 방법에 접근할 수 있을 때만 가능합니다.
이 세상은 “소스 코드”로 가득 차 있습니다 —— 청사진, 요리법, 규칙 —— 이것들은 우리가 생각하고 행동하는 방식을 인도하고 형성합니다. 우리는 이러한 깊은 코드(어떤 형태이든)가 열려 있고, 접근 가능하며, 공유되어야 한다고 믿습니다 —— 그래야 사람들이 참여하고 그것을 더 좋게 만들 수 있습니다.
여기서 우리는 오픈소스 가치가 삶의 모든 영역에 미치는 영향에 대한 이야기를 합니다 —— 과학, 교육, 정부, 산업, 건강, 법, 그리고 조직 역학. 우리는 커뮤니티로서 오픈소스 방식이 최선의 방법이 되는 이유를 다른 사람들에게 말합니다. 왜냐하면 오픈소스에 대한 사랑은 다른 것과 마찬가지로: 그것이 공유될 때 더 좋아지기 때문입니다.
오픈소스에 대한 더 많은 정보는 어디에서 얻을 수 있나요?
우리는 오픈소스에 대해 더 많이 배우는 데 도움이 되는 몇 가지 자료를 편집했습니다. 우리의 오픈소스 Q&A, 가이드, 튜토리얼을 읽는 것부터 시작할 것을 권장합니다.
전재请注明:개발자 관계 »