[CS study] 오픈소스

_sqrlkoo·2022년 8월 6일
0

프로그래머 작성한 모든 코드 = 소스코드

소스 코드(고수준 언어 : C+, JAVA, JS 등)를 컴파일 한 것 오브젝트 코드 (저수준 언어 : 기계적 신호)

컴파일 = 인간이 이해하는 고수준언어 코드를 cpu가 이해하도록 저수준언어로 변환하는 작업

오픈소스 = 소스코드를 자유롭게 사용하는 것

과거에는 소프트웨어를 회사에서 개발되었고 대부분 소스 코드는 개발한 회사의 영업 비밀이라서 입수할 수 없었습니다.

리처드 스톨만은 자신이 사용하는 프로그램의 소스코드가 회사가 독점한 것이라 접근할 수 없어서 프로그램을 고치거나 개선할 수 없다는 점에 불만을 가져 GNU프로젝트를 시작했습니다.

GNU프로젝트는 운영체제와 프로그래밍 언어용 컴파일러 같은 소프트웨어 시스템을 무료로 공개 버전을 만드는 것이였습니다.

이는 GNU GPL이라는 기발한 저작권 라이선스에 따라 구현을 배포하는 방식으로 이루어졌습니다. GPL은 라이선스가 적용된 소프트웨어를 사용할 수 있다고 명시하지만 다른 누군가에게 배포할 때는 어떤 용도로도 자유로운 라이선스를 적용해 소스코드를 사용할 수 있게 해야됩니다.

만약 위반시 법적 절차를 밟거나 혹은 코드를 강제로 배포하게 한 바가 있습니다.

현재는 프로그래밍 언어와 지원도구는 거의 항상 오픈소스로 만들어집니다.

많은 사람들이 궁금해 하는것 처럼 왜 돈을 받고 소스를 팔지 않고 무료로 소프트 웨어를 나눠줄까? 왜 프로그래머들은 자발적으로 오픈소스 프로젝트에 자발적으로 기여할까? 라는 생각을 저도 해본적 있습니다.

하지만 그 질문에 대한 대답은 점점 명확해 지고 있는데, 그 이유는

소스코드를 판매하지 않고 기술지원,교육 품질보증, 기타 서비스 등의 이용에 요금을 청구함으로써 수익을 얻거나,

구글 마이크로 소프트 웨어의 오픈소스 프로젝트는 기업의 프로그램 발전에 기여하고 다른사람들이 버그를 수정하고 코드를 개선하도록 허용함으로써 이득을 얻는다고 합니다!

0개의 댓글