Visual Studio로 완성한 프로그램을 배포하려면 어떻게 해야 하나요?

HDNua의 이미지

안녕하세요.
MonoDevelop 툴, GTK#을 이용하여 조그마한 프로그램 개발을 거의 마친 상태입니다.
제목에 VS에 대한 배포 방법을 여쭌 것은, 그 방법을 알면 자연히 그러한 방법으로
MonoDevelop에서 설정을 맞춰주기만 하면 된다고 생각해서였습니다.

쓸 만한 프로그램으로는 첫 완성작이라, 이런 부분에 대한 지식이 부족합니다.
"프로그램 배포", "릴리스 모드" 등으로 검색해보았는데 제가 원하는 글은 잘 눈에 안 띄더군요.
iPhone App Store에 앱을 올릴 때는 개발자 등록이 되어있으면
바이너리를 만든 다음에 이걸 인터넷에 전달해서 통과되기만 하면 되었는데,
VS에서 이런 걸 할려면 듣기로는 디버그 모드에서 릴리스 모드로 변경을 하고
제가 모르는 뭘 하고 어쩌고 이랬던 것으로 기억합니다.

그리고 막상 올리려니 라이센스 문제도 살짝 걱정이 되네요.
오픈 소스로 올려서 튜토리얼을 제공하고, 조언을 구하거나 버그를 잡고도 싶은데,
(오픈 소스가... 개발자가 자신의 소스를 공개하되 자신이 원하는 수준에서 공개하고
개발자 자신의 권리가 존재한다는 점에서, 개발자가 자신의 소스를 무조건 공개해야 하는
프리 소스와는 다른 진영으로 알고 있는데 맞나요?)
그냥 라이센스는 사용한 프레임워크 등의 라이센스 링크를 걸고
나머지는 개발자 원하는 대로 프로그램이나 포스트에 명시하면 되는 건지?

긴 질문 읽어주셔서 감사합니다.
코드를 짜고 프로젝트를 빌드 하는 방법만 배운 프로그래머는 이런 점이 궁금합니다. ㅠㅠ

klyx의 이미지

iPhone App Store에 앱을 올릴 때는 개발자 등록이 되어있으면
바이너리를 만든 다음에 이걸 인터넷에 전달해서 통과되기만 하면 되었는데,

라고 언급하신걸로 봐서는 '배포 경로'를 여쭤보신거같은데, 그냥 원하시는데로 하시면 됩니다.
뭐 가장 일반적인건 적당히 어딘가에 업로드해서 그 다운로드 주소를 뿌리는 거겠지요.
'적당한 어딘가'라는 것은 스스로 찾으셔야 합니다. 오픈소스라면 오픈소스 개발을 위한 공간을 지원하는 사이트가 많고, 그곳을 통해 배포할 수도 있습니다.
윈도우즈에는 앱스토어같은 특별한 프로그램 배포를 위한 경로는 존재하지 않습니다.(윈8에서는 비슷한게 생겼다는 거 같은데 얼마나 퍼졌는지는 모르겠네요)

프리소스의 정의는 잘 모르겠구요, 본인이 처음부터 끝까지 다 개발한 거라면 라이센스는 원하는대로 책정하면 됩니다.
기본적으로 public domain을 제외하고는 제작자의 권한이 없어지는 일은 없습니다.
일부만 공개하고 싶으면 일부만 공개해도 되구요.(이런걸 일반적으로 오픈소스라고 칭하지는 않습니다)

그냥 라이센스는 사용한 프레임워크 등의 라이센스 링크를 걸고
나머지는 개발자 원하는 대로 프로그램이나 포스트에 명시하면 되는 건지?
->해당 프레임 워크 등의 라이센스가 그것을 허용한다면 그렇게 하면 됩니다.
예를 들어 GPL은 그것을 허용하지 않습니다. 만약 GPL라이센스의 프레임 워크를 사용하였다면 그 결과물도 무조건 GPL로 완전 공개해야합니다.
반대로 MPL이나 MIT라이센스, FreeBSD 라이센스 등은 그것을 허용합니다.

HDNua의 이미지

App Store 부분은 "인터넷에 전달한다"는 부분보다는
"바이너리를 만든다"는 부분을 강조했어야 했는지 모르겠네요.
사실 배포 경로에 대한 질문은 아니었습니다.
빌드 된 프로그램을 찾아서 인터넷에 올려놓기만 하면
바로 다른 분들이 받아서 볼 수 있는 건지, 디버그 모드 빌드와
릴리즈 모드 빌드의 차이라던지 이런 점이 궁금했었거든요.

질문이 하나 더 있는데, Mono에 대해 라이센스를 찾아보니
GPL, LGPL, MIT X11, Microsoft Permissive License의 네 개를 사용하고 있던 모양입니다.
http://www.mono-project.com/FAQ:_Licensing
GPL과 MIT 라이센스가 같이 적용되어있는데, 이러한 경우는 완전 공개해야 하는 걸까요?
다른 네이버 카페에 같은 질문을 올려봤더니, 라이센스 문제는 너무 고민할 건 없고
오픈 소스로 하려면 Git이나 Google Code에 올릴 수도 있다고도 하시네요.
(근데 Google Code에서 프로젝트를 만드려고 보니 또 라이센스를 결정하랍니다.. ㅠ)

제가 해석할 때는 아래 첨부 파일과 같이 했었습니다.
(긴 영어 문서를 볼 땐 항상 이렇게 번역을 한 다음 보게 되더군요..)

다시 한 번 감사드립니다. ㅎㅎ

댓글 첨부 파일: 
첨부파일 크기
PDF icon Mono License.pdf66.71 KB

저는 이렇게 생각했습니다.

익명 사용자의 이미지

소스를 공개하되 상업적인 이용을 허용하지 않으려면(즉 저자와 협의를 하게 만들려면)
BSD류나 GPL로는 안되고
Creative Commons에서 제공하는 라이센스 중에 옵션을 적절히 줘서
저작자표시-비영리-변경금지로 하면 될것 같네요.

http://creativecommons.org/choose/

배포하시는 파일마다 안에다가 license.txt를 첨부하여 무슨 라이센스를 사용하시는지 명시하시고
홈페이지에도 올려놓으면
일단 법적으로는 아무나 허가 없이 가져다 쓰지는 못하지요.
(몰래 소스코드 배끼는건 막을 수 없지만)

GPL이나 BSD는 그게 뭔지 잘 모르시는 상황에서는 쓰지 않으시는걸 권합니다.

HDNua의 이미지

예전 네이버에서 웹툰으로 한참 광고하던 걸 본 적이 있는데,
CCL을 이런 데에도 응용해볼 수 있었네요.

아직 제가 모르는 부분이 많아 여쭤볼 것이 적군요..
다음에 더 떠오르면 다시 찾아보겠습니다.

저는 이렇게 생각했습니다.

익명 사용자의 이미지


Bin/publish 폴더채로 압축하시면됩니다
형식을 갖추고싶다면 NSIS를 이요하세요

HDNua의 이미지

NSIS에 대해 더 찾아보겠습니다.

저는 이렇게 생각했습니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.