728x90
1. OSS의 정의
- 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈소스 라이선스를 만족하는 소프트웨어 => 통상 강략하게 오픈소스라고 말함
- 소프트웨어의 내용인 소스코드가 공개되어 특정 라이선스 방식을 통해 배포되고, 수정, 복제, 사용, 재배포가 자유로운 소프트웨어를 지칭
2. 최근 많이 사용되고 있는 오픈소스 SW
- Mozilla Firefox
- LibreOffice
- GIMP
- VLC Media Player
- Linux
- Blender
- GNU Compiler Collection
- Python
- PHP
- Shotcut
3. 오픈소스SW의 장점
- 낮은 개발비용
- 빠른 기술지원과 유연한 개발
- 최신기술 정보 및 문제점과 해결책을 공유하는 형태로 자유롭게 운영되기 때문에 독점 프로그램에 비해 기술 발전속도가 빠름
- 오픈 포맷과 프로토콜
- 표준화된 포멧과 프로토콜을 사용하기 때문에 서로 다른 SW간 연동성이 보장됨.
- 신뢰성과 안정성
- 전세계 우수한 개발자들이 개발과 디버깅 과정에 참여하기 때문
- 강력한 네트워킹 지원
- 아파치의 경우 전세계 웹서비스의 절반 이상을 차지하고 있음.
- 대부분 상용 프로그램과 호환되기 때문에 상품화해도 잘 활용될 수 있음
4. 오픈소스SW의 단점
- 빈약한 문서
- 상용프로그램에 비해 체계적인 문서를 갖고 있지 않은 경우가 많음.
- 개발지연을 초래할 수 있어서 미리 문서화 정도를 확인할 필요가 있음.
- 불확실한 개발 로드맵
- 영리를 목적으로 운영되는 것이 아니므로 상용프로그램 수준의 로드맵을 기대하기 어려움.
- 지적재산권
- 기업이 보유한 특허 및 소스코드가 오픈소스SW에 포함되는 경우 오픈소스SW 라이선스에서는 일반적으로 특허에 대한 사용료 없이 배포할 것을 요구하고 있기 때문에 오픈SW를 이용하여 특허를 구현하거나 기존 소스코드를 포함하고자 하는 경우 반드시 특허 사용료에 대한 입장을 명확히 해야 함.
5. 오픈 소프트웨어에 대한 우리의 생각은 어떨까?
- 공짜 소프트웨어..? (X)
- 소스코드를 자유롭게 쓰도록 공개하는 것 (O)
- 유용한 기술을 공유함으로써 전세계 누구나 자유롭게 SW 개발, 개량에 참여할 수 있고, 이것이 우수한 SW를 만드는데 도움이 된다는 생각에 바탕을 두고 있음.
- OSS의 행정적인 부분이 더 궁금하다면 https://www.oss.kr/ 에서 정보를 얻을 수 있음.
6. OSS 라이센스 & 의무사항 비교 & 위반 사례
- Copyleft(저좌권) : 저작권에 기반을 둔 사용 제한이 아니라 저작권을 기반으로 한 정보의 공유를 위한 조치이다. 즉, 저작권 소유자가 자신의 창작물을 무료로 사용하도록 허용한다.(정보를 사용할 권리를 2차 저작물의 저작자에게 전달하며, 또 이러한 권리의 전달을 막지 않는 것이 중요 조건이다.)
- Permissive Copyleft : 배포시 소스코드 제공의무 X, 라이센스와 저작권 관련 명시만 지켜주면 무료로 사용 가능하다.
- Weakness Copyleft : 기존 오픈소스 라이선스가 명시한 허가 및 의무사항을 삭제 또는 변경하지 않는 범위에서 새로운 내용을 추가하거나, 다른 라이센스로 전환할 수 있다.
- Strong Copyleft : 배포시 소스코드 제공의무 O. 기존 오픈소스 라이센스를 문자 그대로 유지할 것을 요구하는 라이센스로, 다른 라이센스로 전환할 수 없다. 해당 라이센스가 적용된 오픈소스 또는 SW 결과물을 공개해야 한다.(회사에게 불리한 방향으로 작용)
- copyright(저작권) : 만든이(저작자)가 자기 저작물에 대해 가지는 배타적인 법적 권리 (만들이의 권리를 보호하여 문화를 발전시키는 것을 목적으로 한다.) Copyleft의 반대 개념
라이센스 위반사례 : Skype
7. 소스코드 공개방법
- 제품 판매시 제품과 함께 소스코드를 제공하면 된다.
- 제품과 함께 저작권 정보를 제공하고, 소스코드에 대한 정보와 실제 소스코드는 웹사이트를 통해 공개할 수 있다.
효율적으로 라이센스를 위해 웹사이트를 운영하는 것도 좋은 방법이다.
8. OSS License
- 소프트웨어의 사용을 장려하기 위한 문서
- 참여자들의 (경제적 또는 비경제적) 이익이 최대가 되는 합의
- 코드 자산, 특허, 상표권
- 공유와 헌신에 대한 예의
- Reputation, 원본 소스의 존중
- 저작자의 오픈 소스에 관한 철학의 존중
- 파생물의 공개 조건
9. 오픈소스SW 개발 단계별 관리 프로세스
- 기획 : 사용될 오픈소스SW를 선정, 어떤 라이선스에 속하는지 파악
- 구현 : 사용하고자 하는 오픈소스SW를 쉽게 검색 (sourceForge, Freshmeat, 구글코드서치)
- 검증 : 위반사항이 있는지 특정 소스코드가 포함하고 있는 오픈SW를 검출하는 검증 시스템을 사용하는 방법이 있음
- 제품화 : 사용된 오픈소스SW를 라이센스별로 분류하고, 각 라이센스에서 준수해야 할 사항을 제품에 반영
10. Open Source Software, new
- 78%의 회사가 Open Source 기반으로 운영된다.
- 3%의 이하만 Open Source를 사용하지 않는다.
- 소프트웨어가 필요할 때, 66% 이상의 회사가 Open Source가 있는지 먼저 확인한다.
- 자사 엔지니어의 반 이상이 Open Source 관련된 일을 하고 있는 회사가 50% 이상이다.
- 39%의 회사가 Open Source 프로젝트를 계획 중이다.
- 47%의 회사가 자사의 툴과 프로젝트를 Open Source로 공개한다.
- 55%가 Open Source가 보안상 확실히 안전하다고 응답한다.
11. Why? Open Source?
- OSS 자체적인 Business 모델로서의 가치
- 이미 성공적인 큰 OSS 프로젝트, 커뮤니티에만 해당
- 핵심 역량을 발휘할 수 있는 부분에 집중
- 다른 참여자/커뮤니티와 함께 역할 분담, 동반 성장
- 세상의 모든 OSS는 내 친구, 내 자산
- 나의 개발 역량 향상을 위한 발판
- 나 스스로 또는 외부에 대한 긍정적인 메시지
- 좋은 사람들과의 협력 가능성
- 내 역량을 세계 만방에 알리는 방법
- 새로운 도전과 사업의 기회
- 인력 양성 / 리쿠르팅의 기회
- 선수들이 인정한 선수들이 커뮤니티에 있음.
- 취업 전에 역량을 인정받을 거의 유일한 방법
12. 이런 조직이 바로 오픈 소스 소프트웨어 조직!
- 무언가가 땡길 때, 오픈 소스를 먼저 생각한다.
- 개발자들이 커뮤니티에 나가 우리 기술과 로드맵을 설명한다.
- 우리 개발자들을 기다리는 커뮤니티가 있다.
- 초보 커뮤니티 개발자들의 참여를 위해 노력한다.
- 커뮤니티 개발자들의 기여를 언제나 존중한다.
- 오픈소스 소프트웨어 저작권을 존중한다.
- 진짜 오픈을 한다.
13. 기여하는 방법
- 관심 있는 (자주 쓰는) 프로젝트를 선정
- 열심히 써본다.
- 메뉴얼, 사용 팁을 만든다.
- 크고 작은 문제를 발견하고 보고한다.
- 해당 부분 소스를 수정하여 고친다.
- 새로운 기능을 추가한다.
- 발전 가능성이 있는 프로젝트를 선정
- 한글을 지원한다.
- 다른 프로젝트와 엮어본다.
- 새로운 기능을 제안하고 추가한다.
- 마구잡이로 선정( 큰 프로젝트를 선정)
- Document, Comment에 집중한다.
- Spelling, 비문, ... 수정한다.
'Computer Science > Open Source' 카테고리의 다른 글
git 공부 내용 & 명령어 정리 (0) | 2024.06.13 |
---|---|
Git : 1장 깃과 버전 관리 (0) | 2024.06.09 |