프로그램 개발시 공개 라이브러리

superkkt의 이미지

댓글

ydhoney의 이미지

구입하는 사람에게만 공개하는 방법도 있습니다. :-)

hys545의 이미지

superkkt wrote:
저는 프로그래머는 아닌데 갑자기 이 내용이 궁금해서 글을 올립니다. GPL을 아무리봐도 정확히 이해는 안되지만 얼마전에 있었던 엘림넷 사건을 보면 자유 소프트웨어를 사용해서 만든 프로그램은 판매를 하더라도 소스 코드를 공개해야 한다는게 요지인것 같은데요..

만약 어떤 업체에서 프로그램 개발을 하면서 GPL을 따르는 공개 라이브러리를 사용했다면 이 업체는 제품을 판매할때 소스코드를 공개를 해야하는건가요?

흠.. 그렇다면 네트웍 관련 제품을 만드는데 libpcap을 사용하면 간단해 지는걸 위의 문제 때문에 libpcap 기능을 직접 구현해야 된다면 배보다 배꼽이 더 커지는 경우도 있겠네요.


lgpl이라면 공개할 필요없습니다. glibc가 LGPL입니다.
그리고 GPL은 좀 복잡합니다. 링크된 라이브러리가 풀그림의 일부분이라면 GPL에 따라 공개되야하는데..
일부분이 아닌 독립된 부분으로 볼 수도 있기 때문입니다.
그래서 LGPL이 나온겁니다.

즐린

perky의 이미지

superkkt wrote:
흠.. 그렇다면 네트웍 관련 제품을 만드는데 libpcap을 사용하면 간단해 지는걸 위의 문제 때문에 libpcap 기능을 직접 구현해야 된다면 배보다 배꼽이 더 커지는 경우도 있겠네요.

libpcap은 BSD라이선스로 배포되기 때문에, 소스 공개의 의무가 없습니다.
단, 광고조항이 제거되지 않은 옛날 라이선스를 쓰기 때문에, 매뉴얼에 libpcap을 썼다는 말과 libpcap의 저작권자들을 요구에 따라서 표시해 줘야합니다.

You need Python

차리서의 이미지

ydhoney wrote:
구입하는 사람에게만 공개하는 방법도 있습니다. :-)

제가 확실히 알고있지 못해서 여쭤봅니다: 제가 어설프게 이해하고있는 GPL의 요지는,
  • GPL 하에 취득한 것은 임의로 사용, 수정, 복사, (GPL로) 재배포할 수 있음.
  • GPL 하에 취득한 것 자체와 이를 이용해서 만든 2차 제품은 자동적으로 GPL임 (이를 배포할 때 배포자는 어떤 배타적 권리도 행사할 수 없음).
  • GPL 제품을 배포할 때에는 (특히 배포받는 쪽에서 요구할 때에는 반드시) 그 소스 코드를 함께 배포하거나 추후 따로 배포받을 수 있는 확실한 방법을 제공해야 함
정도인데요, 이에 따르면 구매자가 제품 구입시 함께 취득한 소스 코드를 임의의 제3자에게 재배포하려고 하더라도 판매자 입장에서는 이를 막을 수는 없는 것 아니던가요? :roll: 아니면 역시, 제가 뭔가 잘못 이해하고있나요?

너무 무식한 질문이더라도 부디 용서를……. ;)

[/]

--
자본주의, 자유민주주의 사회에서는 결국 자유마저 돈으로 사야하나보다.
사줄테니 제발 팔기나 해다오. 아직 내가 "사겠다"고 말하는 동안에 말이다!

feanor의 이미지

차리서 wrote:
제가 확실히 알고있지 못해서 여쭤봅니다: 제가 어설프게 이해하고있는 GPL의 요지는 (...) 이에 따르면 구매자가 제품 구입시 함께 취득한 소스 코드를 임의의 제3자에게 재배포하려고 하더라도 판매자 입장에서는 이를 막을 수는 없는 것 아니던가요?

맞습니다.

--feanor

superkkt의 이미지

실제로 프로그램 개발해서 판매를 할때 제가 알고있는건 두가지 형태가 있는데요. 하나는 무슨무슨 솔루션이라고해서 패키지 형태로 만들어서 판매를 하는 방식이고 또 하나는 고객이 원하는 프로그램을 제작을 해주는 형태입니다.

후자의 경우에는 고객이 패키지 판매 형태보다는 더 많은 비용을 투자해서 고객에게 최적화된 프로그램을 만드는 경우이니 소스코드도 고객의 소유라고 생각이 됩니다. 이렇게 하는지 안하는지는 안봐서 잘 모르겠지만.. 이런 경우라면 어차피 소스를 넘겨줘야 하기 때문에 공개 라이브러리를 사용해도 상관이 없을텐데요..

전자의 경우는 불특정 다수의 고객에게 프로그램을 판매를 하는데 이 경우는 소스 코드 공개를 안하는게 일반적이지 않습니까? 그렇다면 필요한 기능이 공개 라이브러리로 아주 잘되어 있는데도 불구하고 소스 공개 문제 때문에 그런 기능을 전부다 구현을 해야된다는 얘긴인데요..

제가 궁금한건 바로 위 전자의 경우가 되었을때 뭔가 다른 방법이 없는지가 궁금합니다. 예를들어 라이브러리의 원 저작자에게 비용을 지불한다던지 기타 방법을 사용해서 소스를 공개하지 않고도 사용할 수 있는 그런 방법이 있나요?

-P.S-

흠.. 열심히 글을 쓰고나니 저도 이게 왜 궁금한지 모르겠네요.. :oops:

======================
BLOG : http://superkkt.com

perky의 이미지

superkkt wrote:
제가 궁금한건 바로 위 전자의 경우가 되었을때 뭔가 다른 방법이 없는지가 궁금합니다. 예를들어 라이브러리의 원 저작자에게 비용을 지불한다던지 기타 방법을 사용해서 소스를 공개하지 않고도 사용할 수 있는 그런 방법이 있나요?

당연히 저작권자에게 직접 라이선싱을 다시 받으면 얼마든지 가능합니다. 대표적으로 Qt 같은 경우가 그런 경우가 되겠죠.
그렇지만, 대형 오픈소스 프로젝트들은 대체로 그런 것이 아예 현실적으로 불가능한 경우가 많습니다. 보통 패치나 모듈마다 저작권 소유자가 달라서 저작권 소유자만 수백명이거나 (FreeBSD의 경우), 아니면 오픈소스 재단을 세워서 그쪽에서 일괄적으로 저작권을 행사하기 때문에 (Python의 경우), 두 경우 모두 다른 조건으로 재 라이선싱을 받는다는게 거의 불가능하다고 볼 수 있겠습니다.

그래서, 소스를 공개할 수 없는 환경의 경우에 가장 좋은 해결책은 GPL소프트웨어를 안 쓰는 것이라고 할 수 있겠습니다. 실제로, 오픈소스 개발자 중 많은 수가 GPL보다 자유로운 라이선스를 선호하기 때문에, GPL에 의존하지 않고도 할 수 있는 일이 제법 많습니다.

You need Python

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.