소스 비영리 코드를 열지 않는 이유는 무엇입니까? [닫은]


34

저는 오픈 소스 코드를 좋아합니다. 오픈 소스로가는 것의 장점을 대부분 이해한다고 생각합니다. 저는 과학 학생 연구원이며 오픈 소스가 아닌 (독점이거나 공개되지 않은) 상당히 많은 양의 소프트웨어 및 코드로 작업해야합니다. 나는 이것에 대한 정당한 이유를 알 수 없으며, 코드와 코드를 사용하는 사람들은 더 많은 공개로부터 이익을 얻을 수 있음을 알 수 있습니다. 다른 사람들이 귀하의 코드에 액세스 할 수없는 경우 훨씬 더 어렵습니다).

: 내가 나가서 개종을 시작하기 전에, 내가 알고 싶은 에 대한 좋은 인수가 없는 OSI가 호환 라이센스로 공개 비영리 코드를 공개, 그리고?

( 주변에 비슷한 몇 가지 질문이 있지만 코드가 주로 돈을 버는 데 사용되는 상황에 중점을두고 답변에별로 관련이 없었습니다.)

설명 : "비영리"를 통해 모회사 브랜드 인지도 및 투자자 이익 기대치와 같은 다운 스트림 이익 동기를 포함시킵니다. 다시 말해, 문제는 소프트웨어와 관련된 이익 동기가없는 소프트웨어에만 관련이 있습니다.


내가 흥미로운 질문을 발견하면 +1합니다. 그러나 이것이 이것이 올바른지 궁금합니다. PM.SE 사이트와 같은 다른 SE 사이트와는 다른 관점을 가질 수 있습니다. 그냥 제안입니다.
haylem

@ haylem, PM.SE를 보지 못했지만 프로젝트 관리의 기술적 측면에 대한 것 같습니까?
naught101 2016 년

나중에 프로젝트를 적극적으로 유지 하시겠습니까? 아니면 코드 묘지입니까? 다시 말해, 프로젝트의 미래는 무엇입니까?

@ ThorbjørnRavnAndersen : 예, 적극적인 유지 관리, 개발 및 코드 사용을 가정합니다.
naught101

답변:


28

코드를 공개 소싱하려면 추가 노력이 필요할 수 있다는 점을 고려해야합니다.

예를 들어,이 블로그 항목에서 Sun / Oracle 엔지니어는 공개 소스 또는 더티 세탁?

우리가 오픈 소스 세계로 뛰어들 준비가되면서, 많은 활동 중 하나가 오픈 소스가되기위한 코드를 준비하는 것입니다. 수행해야 할 몇 가지 명백한 사항이 있습니다. 예를 들어 소스 코드에는 우리가 작성한 코드와 다른 사람들로부터 라이센스를받은 코드가 혼합되어 있습니다. 우리는 후자를 분리하고 적절한 소스 코드 만 공개해야합니다.

또 다른 준비 활동은 독점 정보의 코드, 특정 고객, 개발자, 기술 등을 언급하는 것입니다. 이것은 조금 덜 분명하지만 다음 예제를 고려하십시오.

/\*
 \* HACK - insert a time delay here because the stupid Intertrode
 \* Technologies framebuffer driver will hang the system if we
 \* don't. Those guys over there must really be idiots.
 \*/

위의 모든 내용이 사실 일 수도 있지만, Intertrode Tech와 어떤 관계가있을 수 있으며 코드에 이와 같은 주석이 있으면 비즈니스에 문제가 생길 수 있으므로 제거해야합니다. 틀림없이 그것은 처음에 거기에 없었을 것이지만 지금은 그것을 꺼내야 할 때입니다.

"스크러빙"활동의 또 다른 부분은 욕설과 다른 "바람직하지 않은"단어를 제거하는 것입니다.

그것은 순수하게 - 모든 위의 변경이 폐쇄 소스로 완벽하게 OK 고려 된 코드를 만들 수 있었다 참고 여분의 노력을 말하자면.


2
글쎄, 이것은 기존 코드베이스를 가진 대기업에 적용되며 처음부터 오픈 소스로 작성된 코드에는 훨씬 적습니다.
Konrad Rudolph

1
@KonradRudolph OP는 내가 일해야한다고 언급 했다 ... 오픈 소스가 아닌 코드 (독점적이거나 공개되지 않은 코드)
gnat

DOOM 3에서도 같은 일이 발생하지 않았습니까? 특허 문제 지연 운명 3 소스 코드 출시
user16764

11

보안.

예를 들어, 웹 프레임 워크를 작성하고 직접 사용한다고 가정하십시오.

비영리 프로젝트로서 한 번의 공격 또는 다른 공격에 대한 취약성에 대해 모든 코드를 검사하는 데 전념 할 시간이 없었습니다.

  • CSRF
  • XSS
  • SQL 주입
  • 세션 고정
  • 버그가있는 타사 라이브러리 또는 언어 사용

이제 프로젝트를 오픈 소스로 만들면 친근한 눈이 기여할 수 있지만 악의적 인 눈으로 작업에 대한 통찰력을 얻을 수 있으며 코드를 실행하는 서버를 발견하면 숨길 수있는 기능이 제거됩니다 모호한 결함.

물론 이것은 작업중인 소프트웨어 유형에는 적용되지 않을 수 있습니다. 그리고 항상 모호함은 안전의 게으름에 대한 변명이 아닙니다.

그러나 Stripe에서 플래그 수준 게임을 통해 얻은 몇 가지 수준에서 찾은 것처럼 코드가 취약점을 찾는 가장 쉬운 방법 중 하나라는 것을 알고 있습니다 (때로는 유일한 방법 일 수도 있음).


7
이 토론은 오랜 세월 동안 진행되어 왔으며 공개 소스가 보안을 위해 더 좋지만 프로젝트가 상당히 인기가있는 경우에만 (적어도 개발자들 사이에서) 인상을 받았습니다. '어쨌든 내가 찾을 수있는'네트의 어느 곳에서나 인수가 실제로 잘 정리되지 않은 것이 이상합니다.
naught101 2016 년

1
naught101과 함께 사용하면 많은 의미가 있습니다. 사람들이 소스를 걱정하지 않고 프로덕션 환경에서 사용하는 경우 누군가 "악"이 소스를 검사하여 사용자를 대신하여 사용할 가능성이 매우 높습니다.
schlingel

1
모호함을 통한 보안?
Danubian Sailor

3
@lechlukasz 전체 게시물을 읽었습니까?
Nicole

1
@Oleksi 감사 합니다만, 알고 있습니다. "불안 정도는 안전의 게으름에 대한 변명의 여지가 없습니다." 이 질문은 공개 대 폐쇄에 관한 것이 아니라 이전에 폐쇄 된 시스템을 여는 것에 관한 것 입니다. 게시 한 링크에 완전히 동의하지만 개발자는 완벽하지 않으며 시스템을 오픈 소스로 사용할 때 버그를 발견 한 첫 눈이 버그를 해결하는 대신 악용 할 가능성이 있습니다.
Nicole

10

오픈 소스를 사용하지 않는 좋은 이유는 일부 소스에 저작권이있을 수 있기 때문입니다. 문제에 대한 빠른 해결책을 찾기 위해 웹을 얼마나 자주 검색하지 않고 찾은 코드 조각 만 가져가십니까?

글쎄, 그것들은 저작권이있을 수 있으며 저자가 다른 라이센스로 라이센스가 부여 된 코드를 찾고 싶은지 모르겠습니다.


1
저작권이있는 경우 +1 특허도 추가하고 싶었습니다. 오픈 소스 프로젝트가 "corps"가 거주하는 수천 개에 달하는 수천 개의 소프트웨어 특허를 침해하고 있음을 알 수 있습니다. 스트리밍 비디오? 특허. 클릭당 지불 광고? 특허. 몇 가지 예만 있습니다. 그러나 경쟁자가 아닌 한 "군단"은 신경 쓰지 않을 가능성이 있습니다.
Amadeus Hein 2016 년

1
헤헤 그것은 실제로 오픈 소스에 대한 논쟁이 아니라 불법 복제에 대한 논쟁입니다. 그러나 당신 말이 맞습니다. 많은 큰 개인 코드에서 문제가 될 것입니다.
naught101 2016 년

1
@ naught101 동의합니다. 오픈 소스는 문제를 드러냅니다. 이 경우 비공개 소유권은 잡히지 않는 문제입니다.)
Andres F.

소스를 폐쇄해야하는 한 가지 이유는 일시적인 저작권 위반을 숨길 수 있다는 것입니다. 이것이 비 윤리적 인 이유라고 생각하지 않습니까?
Mark Booth

1
비 윤리적 ... ... 아마도 오픈 소스를 사용하지 않는 매우 좋은 이유입니다.
Pieter B

6

잠재적 책임 문제를 피하기 위해 라이센스를 선택하는 방법에주의해야합니다.

변호사는 이에 대해 이야기하는 것이 더 좋은 사람 일 수 있지만, 일반적인 아이디어는 누군가가 응용 프로그램을 사용 (또는 오용)하고 어떤 피해를 입히면 어떻게됩니까? 당신은 책임이 있습니까? 분명히 이것은 어떤 유형 의 소프트웨어를 작성 하느냐에 달려 있지만 라이센스에 대한 책임에 대해서는 항상주의해야합니다. 이것은 까다로울 수 있으므로 소스 코드를 공개하지 않는 것이 더 쉬울 수 있습니다.


1
그렇습니다. 좋은 지적입니다. 대부분의 OS 라이센스에는 대개 어딘가에 텍스트가 포함되어 있습니다. "책임이 허용되지 않는"유형의 라이센스를 가정 한 것 같습니다.
naught101 2016 년

4

경고 : 저는 변호사가 아닙니다 .

만약 그것이 비영리적이지 않고 지적 재산이 소프트웨어의 코드와 밀접한 관련이 있다면, 일부는 소프트웨어의 상업적인 재사용 또는 악용을 통해 소프트웨어의 탄소 복사본을 생성하는 것을 막고 싶을 수도 있습니다.

아마도 첫 번째 이유에 뿌리를 둔 다른 이유는 귀하의 경우 많은 고급 연구가 민간 자금으로 이루어지며 일반적으로 투자자가 ROI를보고 싶어하기 때문입니다. 그리고 지금까지 소프트웨어 산업 (혹은 이민자)의 모든 행위자가 오픈 소스 모델의 실행 가능성에 대해 완전히 설득 된 적이 없습니다 (라이선스에 대한 지식과 이해가 부족하거나 라이센스가 악의적 인 것을 막지 못할 것이라는 단순한 두려움에 의해) 사용 및 복사).

또한,이 회사들은 이익을 창출하려고 시도한 회사들에 의해 고소 당하지 않기를 원하며, 라이센싱은 정당한 이유와 상관없이 이와 관련하여 보호 수단으로 간주됩니다.

그렇게 보이지 않을 수도 있지만 비영리 단체가 창립자 또는 투자자에게 이익이 될 수 있습니다. 이점은 직접적이지 않습니다. 그래서 그들은 NFP가 강해지고 계속 경쟁자들에 의해 구속되지 않는 데 큰 관심을 가지고 있습니다 (비영리 시장에서 "경쟁자"를 종종 생각하지는 않지만). IP를 사용하면 코드를 검토하여 문제를 찾고 조기에 개선하기 위해 더 많은 무료 안구를 얻지 않아도됩니다.

또한 저작권법은 국가마다 다릅니다. 예를 들어 많은 유럽 국가에서는 미국 저작권법과 미국 특허 시스템이 다소 어리석은 것으로 간주하므로 문화적 배경과 무게가 흔들 리기 어렵습니다.

주제에 대해 내 2 센트를 줄입니다.

(나는 대학에서 많은 일을 해왔으며 최근에는 생물 정보학 및 건강 관리 분야에서 일해 왔습니다. 그것은 저와 제 동료들에게 반복되는 질문입니다.)


Hrm .. 나는 질문에 코드와 IP를 함께 고려하고 있었다. 어쩌면 내가 더 명확하게 만들어야했을 것입니다. ROI 및 브랜딩 고려 사항을 이익 동기로 생각할 수 있습니다 ... ( "과학"은 다소 모호하며 많은 과학이 수익성이 있음을 알고 있습니다. 내 분야 (지구 시스템 과학은 그렇지 않습니다)
naught101

질문을 명확하게했다. 번거롭게해서 죄송합니다.
naught101 2016 년

나는 당신의 분야가 수익성이 있다고 생각합니다. 시장이 넓지는 않지만 수익성이 없다는 것을 의미하지는 않습니다. fqct에서는 상당히 큰 돈이 관련된 것으로 생각합니다. 왜 다르게 느껴 집니까?
haylem 2016 년

저는 기후 모델링을하고 있습니다. 기후 모델에 대해서는 아무도 지불하지 않습니다. 기후 모델을 사용하는 사람은 아무도 없습니다. 소프트웨어를 사용하여 얻을 수있는 이익은 없습니다. 사람들은 이러한 모델을 사용하여 연구비를 지불하고 (종종 모델 작성이 포함됨) 컴퓨팅 시간이 때때로 지불되지만, 두 가지 모두 코드를 공유하면 비용이 저렴 해집니다 (코드를 작성하는 대신 연구에 더 많은 시간을 투자 할 수 있음) HPC 시설에 낭비되는 시간이 줄어 듭니다). 소프트웨어가 수익성과 어떤 관련이 있는지 잘 모르겠습니다.
naught101 2016 년

1
@ psr : naught101의 요점은 모델의 사용 결과에 수익성있는 결과가 있지만 모델을 구현하는 소프트웨어를 판매하는 데 많은 돈이 필요한 것은 아니라는 것입니다. 나를 놀라게하지만 아주 잘 할 수 있습니다.
haylem

1

최소한 두 가지 종류의 오픈 소스가 있습니다.

당신의 태도가 "여기에 유용한 것이 있다면, 그것으로 끝났습니다"(그리고 그것이 정확한 것으로 판명된다면), 단점은 거의 없습니다.

다른 한편으로, 당신의 태도가 "정말 흥분하고 일부 실제 사용자가 미래의 발전을 이끌 수 있기를 바랍니다"라면 매우 신중하게 생각하십시오. 많은 사람들이 실마리가없는 사용자를 지원하는 데 시간을 소비해야합니다. 기능 및 개선 사항에 대한 충돌 요청을 고려해야합니다. 이전 버전과의 호환성을 유지하기 위해 변경하는 것이 점점 어려워지고 있습니다.


3
코드를 공개하면 누군가가 지원을 제공 해야하는 방법을 실제로 알지 못합니까? 그리고 과학에서 최소한, 대부분의 사용자는 최소한 코드 자체가 아니라면 적어도 프로세스에 대해 거의 익숙하지 않습니다.
naught101 2016 년

1
@ naught101 : 의무화 아니,하지만 사람이 코드를 사용하는 경우, 당신은 수 전자 메일, 질문, 제안 ... 것이다 당신은 단순히 그들을 무시하도록 선택하지 않는 한, 손잡이에 약간의 노력을. 과학 이외의 많은 사용자는 너무 많은 수고를 겪지 않으므로 코드를 공개했기 때문에 기본 설정 문제 등을 겪는 사람들을 도울 수 있습니다. 나는 적어도 그것을 경험했습니다. "있는 그대로"제공되는 BSD 스타일의 면책 조항조차도 사람들이 도움을 요청하는 것을 막지 않아야합니다 .
Joonas Pulakka 2016 년

1
이 답변은 다른 많은 사람들보다 실제로 적용 할 수 없기 때문에 찬성했습니다. @JoonasPulakka : 물론 사람들이 도움을 요청하는 것을 막아서는 안됩니다. 그러나 대답을 기대하지 않아야합니다. 또한 실제 소프트웨어를 공개적으로 공개 한 경우 아마도 EULA에 따라 공개 코드 여부에 관계없이 사용자에게 동일한 책임이있을 수 있습니다 . 코드를 릴리스하면 개발자 로부터 더 많은 쿼리를 받아야 할 수도 있지만 대부분은 약간의 단서가있을 것이며 패치에 대한 조언을 갚을 수도 있다고 생각하는 것이 좋을 것입니다.
naught101
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.