최근 스플의 "네이버가 다음의 소스코드를 무단복제한 것으로 의심됩니다"로 블로고스피어가 한동안 코드 복사 문제로 시끄러웠습니다. 그런 관심을 반영하듯 원문에는 읽어 보면 엄청난 수의 댓글과 트랙백이 달려 있습니다. 이로 인해서 요즘 소스 코드 라이센스 표기에 관한 관심이 늘고 있는 것 같습니다. 이후 스플에 포스팅된 글도 저작권 표기의 중요성을 강조하는 글들이죠.
저작권 표기는 매우 중요한 문제임에도 국내에서는 잘 다뤄지지 않는 문제이기도 합니다. 그래서 저작권 표기를 하자. 요이땅. 이렇게 해도 어떻게, 어디에, 무엇을 써야 하는지 알고 있는 개발자가 잘 없습니다. 저도 마찬가지 입니다. 그래서 실용적이 관점에서 저작권 표기를 어떻게 해야 하는지 살펴 보도록 합시다.
Copyright 2007, YoungJin Shin
저작권 표기에 흔히 등장하는 Copyright 문구 입니다. 저 문구는 표기된 저작물의 권리가 YoungJin Shin이라는 사람에게 있다는 것을 의미합니다. 그 다음 숫자는 무엇일까요? 창작 년도입니다. 2007년에 만들어 졌다는 것을 나타내죠. 종종 아래와 같이 표기된 것들도 만날 수 있습니다. 이것은 2004년에서 2007년에 걸쳐 개발됐다는 것을 의미합니다.
Copyright 2004-2007, YoungJin Shin
다음으로 우리가 생각해야 하는 것은 라이센스입니다. 라이센스란 자신이 만든 창작물을 사람들이 어떻게 얼만큼 사용할 수 있게 할 것이냐를 결정하는 문제입니다. 상용 프로그램이라면 별도의 라이센스가 존재할 것입니다. 여기서는 자신의 창작물을 공개하는 경우의 라이센스만을 살펴 보도록 하겠습니다. 이럴때 사용할 수 있는 라이센스로는 정말 수많은 라이센스가 있습니다. http://www.opensource.org/licenses/ 에 흔히 사용되는 라이센스 목록이 있습니다. 정말 많죠? 하나라도 클릭해서 읽어보면 그 내용에 주눅들 겁니다. 아래는 그 중 자주 사용되는 라이센스 다섯 개를 비교해둔 것 입니다. http://www.petefreitag.com/item/533.cfm 에서 발췌한 것 입니다. 보다 자세한 라이센스 설명은 http://meye.pe.kr/wp/archives/287 참고 하세요.
Apache | GPL | LGPL | BSD | MIT | |
책임 부인 | X | X | X | X | X |
저작권 문구 보존 | X | X | X | X | X |
상업적 사용 | X | - | * | X | X |
서브라이센스 | * | - | - | * | X |
파생물에 저작자 이름 표기 | X | X | X | X | - |
X: 가능, -: 불가능, *:조건하 가능
너무도 복잡하죠. 정말 이해하기 힘드실 겁니다. 우리가 바라는 건 이게 아니죠? 우라랑 같은 생각을 하는 사람들이 지구상에는 무척 많습니다. 그들이 간편한 라이센스를 만들었습니다. 궁금하신가요? 바로 Creative Commons 라이센스 입니다. 요즘 블로그는 대부분 이 라이센스가 표기되어 있죠. 소스 코드에도 당연히 사용할 수 있습니다. Creative Commons 홈페이지에서 간단하게 자신의 목적에 부합하는 라이센스를 생성할 수 있습니다.
라이센스까지 결정했다면 이제는 실행에 옮길 시간입니다. 어디다 표기하는 것이 좋을까요? 일반적으로는 소스 코드 상단에 표기합니다. main 소스 코드에만 표기해도 되고 모든 파일의 상단에 표기해도 됩니다. 이미 개발한 내용이 방대하다구요? 그렇다면 license.txt로 만들어서 같은 폴더에 넣어 두어도 됩니다. 하지만 되도록 소스를 보는 사람에 한눈에 라이센스를 파악할 수 있게 하는 것이 중요합니다. 표기하는 목적이 그것이니까요.
LGPL 라이센스를 쓰기로 결정하셨나요? 그럼 코드엔 뭐라고 표기하면 될까요? 위의 오픈소스 라이센스 사이트에 나와있는대로 템플릿만 복사해서 붙여넣기 하면 됩니다.
[js]/*--
라이브러리 이름
Copyright 창작 년도, 저작자 이름
이메일 정도 넣어 주면 좋겠죠?
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or (at
your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--*/[/js]
BSD 라이센스도 마찬가지 입니다. 템플릿만 복사하면 됩니다.
[js]/*--
제목하고 이메일 넣어주면 좋아요. ㅎ
Copyright 창작 연도, 저작자 이름
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--*/[/js]
복잡한게 싫어서 Creative Commons 라이센스를 사용하고 싶으신 분들도 있을 겁니다. 하지만 템플릿이 없죠. ㅠㅠ 그냥 다음과 같이 해당 파일이나 프로젝트가 Creative Commons 라이센스를 따른다고 명시해 주시면 됩니다. 자신이 사용하는 라이센스 설명 페이지 링크를 달아주는게 핵심입니다.
[js]/*--
Copyright 창작 연도, 저작자 이름
This file is licenced under a Creative Commons license:
http://creativecommons.org/licenses/by/2.5/
--*/[/js]
이제 앞으로 만드는 소스 코드에는 반드시 저작권 관련 문항을 넣도록 합시다. 그것이 자신의 권리를 보호하는 동시에 상대방에 대한 배려입니다. 상대가 소스를 봤을때 저작권 표기가 없다면 합법적으로 가져다 쓸 수 있는건지, 수정 배포가 가능한 것인지 알 방법이 없습니다.