Skip to content

Commit

Permalink
update guide in eng
Browse files Browse the repository at this point in the history
  • Loading branch information
haksungjang committed Aug 29, 2023
1 parent e5f4844 commit 7411463
Show file tree
Hide file tree
Showing 18 changed files with 1,428 additions and 81 deletions.
6 changes: 3 additions & 3 deletions content/en/guide/_index.md
Expand Up @@ -13,9 +13,7 @@ aliases:
---

{{% alert title="NOTICE" color="success" %}}
We, SK telecom, which respects the spirit of openness and sharing, has released open source guide documents for internal members so that anyone can use it. (However, some contents such as the website link of the company system are excluded.)

This guide is only available in Korean.
오픈소스의 개방과 공유의 정신에 따라 SK텔레콤은 내부 구성원들을 위한 오픈소스 가이드를 누구나 활용할 수 있도록 공개하였다. (단, 사내 시스템 Link 등 일부 내용은 제외하였다.)
{{% /alert %}}

## 들어가며
Expand All @@ -34,6 +32,8 @@ SK텔레콤 OSPO(Open Source Program Office, 2021년 2월 기준, T3K ESG Tech P

![ospo](./ospo.png)

(이미지 출처 : https://opensource.com/article/20/5/open-source-program-office)

1. [오픈소스 사용하기](/guide/use) (Consume open source projects)
* 외부 오픈소스를 가져와서 SK텔레콤의 제품이나 서비스에 사용하는 방법과 주의해야 할 사항들을 설명한다.
2. [오픈소스 기여하기](/guide/contribute) (Contribute to open source projects)
Expand Down
4 changes: 2 additions & 2 deletions content/en/guide/release/process/_index.md
Expand Up @@ -69,7 +69,7 @@ SK텔레콤은 소프트웨어를 오픈소스로 공개 시 기본적으로 [Ap
참고로, GitHub에서는 오픈소스 공개 시 라이선스 선택에 대한 가이드를 제공하고 있다. : https://choosealicense.com

{{% alert title="문의" color="warning" %}}
만약, 이외의 다른 라이선스를 선택해야 할 상황이라면 OSPO<sub>Open Source Program Office</sub>에 문의하라. : [Support (opensource@sktelecom.com)](https://sktelecom.github.io/about/contact/)
만약, 이외의 다른 라이선스를 선택해야 할 상황이라면 OSPO(<sub>Open Source Program Office</sub>에 문의하라. : [Support (opensource@sktelecom.com)](https://sktelecom.github.io/about/contact/)
{{% /alert %}}

#### CLA 결정
Expand All @@ -96,7 +96,7 @@ SK텔레콤은 첨부의 CLA를 사용하고 있다. SK텔레콤 템플릿
#### 3rd party 코드 정리
프로젝트에 3rd party 코드를 포함해야 하는 경우라면, 즉, SK텔레콤이 저작권을 갖고 있지 않은 코드를 프로젝트에 포함해야 한다면 먼저 SK텔레콤이 재배포할 수 있는 권한이 있는지 확인하라. 이미 오픈소스 라이선스가 적용된 코드라면 라이선스 의무를 준수하는 조건으로 재배포할 수 있다.

* 재배포할 수 있는 권한 확인에 대한 도움이 필요하다면 OSPO<sub>Open Source Program Office</sub>에 문의하라. : [Support (opensource@sktelecom.com)](https://sktelecom.github.io/about/contact/)
* 재배포할 수 있는 권한 확인에 대한 도움이 필요하다면 OSPO(<sub>Open Source Program Office</sub>에 문의하라. : [Support (opensource@sktelecom.com)](https://sktelecom.github.io/about/contact/)

SK텔레콤이 재배포할 수 있는 3rd party 코드인 경우, 기존 코드와는 다른 디렉토리(예: third_party)에 위치시킨다. 이는 라이선스 관점에서 프로젝트의 투명성을 증대시키며, 향후 사용자도 3rd party 코드를 쉽게 찾게 찾게 되어 정확한 라이선스 요구사항을 준수할 수 있게 한다.

Expand Down
4 changes: 2 additions & 2 deletions content/en/guide/use/_index.md
Expand Up @@ -9,7 +9,7 @@ description: >

오픈소스를 사용하지 않고 제품이나 서비스를 개발하는 것은 불가능하다고 할 수 있을 만큼 소프트웨어 개발에 오픈소스는 핵심 요소가 되었다. 오픈소스의 사용으로 소프트웨어 개발 시간을 단축하면서도 서비스 안정성 및 보안 강화를 기대할 수 있다. 하지만, 오픈소스를 사용할 때는 라이선스가 무엇인지 확인하고, 라이선스가 요구하는 의무사항을 준수해야 한다.

여기에서는 SK텔레콤의 개발자와 개발 조직이 소프트웨어를 개발하면서 오픈소스를 올바르게 사용하기 위한 가이드를 제공한다.
여기에서는 외부 오픈소스를 가져와서 SK텔레콤의 제품이나 서비스에 올바르게 사용하는 방법과 주의해야 할 사항들을 설명한다.

## 사용할 오픈소스 선택 시 고려사항

Expand Down Expand Up @@ -49,7 +49,7 @@ SK텔레콤의 제품/서비스에 오픈소스를 포함하여 배포할 경우
{{% alert title="오픈소스 고지문 요청" color="warning" %}}
SK텔레콤 개발조직에서 고지 등 오픈소스 컴플라이언스 활동을 위해서는 개발 프로세스의 분석/설계 완료 단계에서 사용할 오픈소스 확정 후 ITGO를 통하여 점검을 요청한다.

* http://link-removed
* http://link-removed

담당 부서 (준법법무경영 그룹 IPR팀)에서 점검 후 고지를 위한 오픈소스 고지문을 발급한다.

Expand Down
2 changes: 1 addition & 1 deletion content/en/guide/use/license/_index.md
Expand Up @@ -41,7 +41,7 @@ description: >
## 소프트웨어 라이선스
소프트웨어에 대한 독점배타권을 가진 권리자는 다른 사람들이 해당 소프트웨어를 사용하거나 배포하는것을 허락할 수 있다. 간단히 말해 라이선스는 자신의 저작물을 다른 사람이 사용, 복사, 수정, 배포 등을 할 수 있도록 허가하는 것을 말한다.

> 일반적인 상용 소프트웨어는 그 대가로 로열티를 요구한다.
* 일반적인 상용 소프트웨어는 그 대가로 로열티를 요구한다.

## 오픈소스 라이선스
일반 상용소프트웨어와 마찬가지로 오픈소스에도 저작권 등 지식재산권이 있다. 그래서 권리자의 허락 없이 함부로 사용하면 소송을 당할 수 있다.
Expand Down
160 changes: 160 additions & 0 deletions content/en/guide/use/obligation/AGPL-3.0/_index.md
@@ -0,0 +1,160 @@
---
title: "AGPL-3.0 가이드"
linkTitle: "AGPL-3.0"
weight: 10
type: docs
description: "[Free Software Foundation](http://www.fsf.org/)은 2007년 [AGPL-3.0](https://www.gnu.org/licenses/AGPL-3.0.html)을 공개하였다. AGPL-3.0은 GPL-3.0에 네트워크로 상호 작용하는 소프트웨어의 소스 코드도 공개해야 한다는 조항을 추가한 라이선스이다."
---

{{% alert title="의무사항 요약" color="primary" %}}
<div class="-bg-100 p-3">

> - 소스 형태로 재배포
> - 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
> - 수정시 의무사항
> - 추가/수정한 부분에 AGPL-3.0을 적용한다.
> - 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
> - 바이너리 형태로 재배포
> - 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
> - 수정시 의무사항
> - 추가/수정한 부분에 AGPL-3.0을 적용한다.
> - 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)
> - 소스 코드 제공 의무
> - <span class="-text-warning">바이너리에 해당하는 **전체** 소스 코드를 제공한다.</span>
> - AGPL-3.0은 파생저작물에 대해서도 AGPL-3.0을 적용하여 소스 코드를 공개할 것을 요구한다.
> - 바이너리 사용자가 공개된 소스 코드로 동일한 바이너리를 만들 수 있는 <span class="-text-warning">빌드 환경</span>을 제공한다.
> - <b>설치 정보 제공 의무 : 바이너리를 User Product와 배포한다면 설치 정보(Installation Information)을 제공한다.</b>
> - <span class="-text-warning">**원격 네트워크 상호 작용**</span>
> - 원격 사용자가 수정된 버전의 소스 코드를 다운 받을 수 있도록 네트워크 서버를 제공해야 한다.
</div>
{{% /alert %}}

## 소스 코드 내 라이선스 문구
AGPL-3.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.

~~~
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
~~~

## 사용 사례 별 의무 사항
### Case 1. 소스 형태로 재배포
AGPL-3.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.

#### 1-1 고지 의무
* 저작권 고지 제공
* 보증 부인 제공
* 라이선스 사본 제공

즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.

{{% alert title="수정 시 의무 사항" color="success" %}}
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.

1. 추가/수정한 부분에 AGPL-3.0을 적용한다.
2. 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)

{{% /alert %}}

### Case 2. 바이너리 형태로 재배포

AGPL-3.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.

#### 2-1 고지 의무
* 저작권 고지 제공
* 보증 부인 제공
* 라이선스 사본 제공

이상의 내용을 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.

{{% alert title="수정 시 의무 사항" color="success" %}}
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.

1. 추가/수정한 부분에 AGPL-3.0을 적용한다.
2. 수정 사항에 대한 고지를 포함한다. (예: 오픈소스 고지문에 수정일, 수정내용을 포함)

{{% /alert %}}

#### 2-2 소스 코드 제공 의무
바이너리에 해당하는 소스 코드를 제공한다. 이때 다음 사항을 준수한다.

1. AGPL-3.0은 파생저작물에 대해서도 AGPL-3.0을 적용하여 소스 코드를 공개할 것을 요구한다. 아래 내용을 참고하여 AGPL-3.0하의 오픈소스와 파생저작물의 소스 코드를 공개한다.


{{% alert title="AGPL-3.0 파생 저작물의 범위" color="warning" %}}
일반적인 AGPL-3.0의 파생 저작물의 범위는 다음과 같다.

* 수정 코드
* GPL 프로그램과 동일한 프로세스에서 동작하는 Module
* GPL 프로그램과 링크로 연결한 Library
* GPL 프로그램을 상속한 Class

다음의 경우 GPL의 파생 저작물로 보지 않는다.

* CD와 같은 매체에 함께 존재하지만 GPL프로그램과 전혀 연동하지 않는 독립 프로그램 (#[MereAggregation](https://www.gnu.org/licenses/gpl-faq.en.html#MereAggregation))
* GPL 프로그램과는 별도의 프로그램으로써 Pipe, Socket, IPC, Command Line Arguments로 GPL 프로그램과 통신하는 경우


{{% /alert %}}
1. 바이너리 사용자가 공개된 소스 코드로 동일한 바이너리를 만들 수 있는 빌드 환경을 제공한다. 여기에는 다음 사항이 포함된다.
* Tool chain 정보
* 빌드 스크립트
* 빌드 방법 (README)

소스 코드 대신 서면 약정서 (Written Offer)를 제공할 수 있다. 여기에는 다음 진술이 포함되어야 한다.

1. 서면 약정서는 제품 판매 후 3년간 유효하다.
2. 누구에게나 제공한다.
3. 비용 청구를 하지 않는다. (소스 전달을 위해 발생하는 비용 제외)

{{% alert color="warning" %}}
이후 외부로부터 서면 약정서를 근거로 소스 코드 제공을 요청 받을 경우, 위에서 언급한 바이너리에 해당하는 소스 코드를 제공해야 한다. 따라서 회사는 제품 판매 후 최소 3년간 소스 코드를 보관해야 한다.
{{% /alert %}}

#### 2-3 설치 정보 제공 의무
바이너리를 User Product와 배포한다면 설치 정보(Installation Information)을 제공한다.

- User Product : 전자 기기와 같은 Embedded Device
- 설치 정보(Installation Information) : 사용자가 소스 코드를 빌드하여 다시 제품에 설치하기 위해 필요한 모든 정보 및 방법

{{% alert title="사용 제한" color="warning" %}}
대부분의 User Product는 보안상의 이유로 설치 정보를 제공하는 것이 불가능하다. 따라서, User Product로 배포하는 소프트웨어에는 AGPL-3.0의 오픈소스를 사용하지 않아야 한다.
{{% /alert %}}


### Case 3. 원격 네트워크 상호 작용
AGPL-3.0하의 오픈소스를 (1) 수정하고, (2) 수정한 버전이 네트워크를 통해 원격의 사용자와 상호 작용하는 경우,

- 원격 사용자가 통해 수정된 버전의 소스 코드를 다운 받을 수 있도록 네트워크 서버를 제공해야 한다.
- 여기서의 소스 코드는 위의 "2-2. 소스 코드 제공 의무"에서 요구하는 범위와 동일하다.

{{% alert title="사용 제한" color="warning" %}}
따라서, 바이너리를 배포하지 않는 네트워크 서버 개발 시에도 AGPL-3.0하의 오픈소스를 사용할 경우에는 소스 코드 공개가 필요할 수 있기 때문에 가능한 사용하지 않아야 한다.
{{% /alert %}}

## 라이선스 호환성
서로 요구하는 의무사항이 상충되는 오픈소스 라이선스는 하나의 프로그램에 동시에 존재해서는 안된다. 다음은 AGPL-3.0과 충돌하는 라이선스 목록이다. AGPL-3.0 프로그램 내에 다음 라이선스 하의 오픈소스를 포함해서는 안된다. (참고 : https://www.gnu.org/licenses/license-list.html#GPLIncompatibleLicenses)

* Apache-1.1
* BSD-4-Clause
* FTL
* IJG
* OpenSSL
* Python-2.0
* zlib-acknowledgement
* XFree86-1.1

> 참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/AGPL-3.0-only.txt
71 changes: 71 additions & 0 deletions content/en/guide/use/obligation/Apache-2.0/_index.md
@@ -0,0 +1,71 @@
---
title: "Apache-2.0 가이드"
linkTitle: "Apache-2.0"
weight: 10
type: docs
description: "[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)은 [Apache Software Foundation](https://www.apache.org/)에서 만든 오픈소스 라이선스이며, 소스 코드 공개를 요구하지 않는 Permissive 형태의 라이선스이다. "
---

{{% alert title="의무사항 요약" color="primary" %}}
<div class="-bg-100 p-3">

> - 소스 형태로 재배포
> - 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
> - 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)
> - 바이너리 형태로 재배포
> - 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
</div>
{{% /alert %}}

## 소스 코드 내 라이선스 문구

Apache-2.0하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.

~~~
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
~~~

## 사용 사례 별 의무 사항
### Case 1. 소스 형태로 재배포
Apache-2.0하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.

#### 1-1 고지 의무
* 라이선스 사본 제공
* 저작권, 특허, 상표권 등 정보를 유지한다.
* NOTICE 파일이 포함되어 있을 경우 이를 유지한다.

즉, 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.


{{% alert title="수정 시 의무 사항" color="success" %}}
오픈소스의 소스 코드를 일부 추가/수정하였을 경우, 다음 사항을 준수한다.

* 수정 사항에 대한 고지를 포함한다. (예: 수정일, 수정내용을 주석 형태로 포함)

{{% /alert %}}

### Case 2. 바이너리 형태로 재배포

Apache-2.0하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.

#### 2-1 고지 의무
* 라이선스 사본 제공
* 저작권, 특허, 상표권 등 정보를 유지한다.
* NOTICE 파일이 포함되어 있을 경우 이를 유지한다.

이를 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.

> 참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/Apache-2.0.txt
70 changes: 70 additions & 0 deletions content/en/guide/use/obligation/BSD-2-Clause/_index.md
@@ -0,0 +1,70 @@
---
title: "BSD-2-Clause 가이드"
linkTitle: "BSD-2-Clause"
weight: 10
type: docs
description: "[BSD-2-Clause](https://opensource.org/licenses/BSD-3-Clause) 라이선스는 BSD 2-Clause \"Simplified\" License 라고도 불리며 소스 코드 공개를 요구하지는 않는 Permissive한 라이선스이다. BSD-3-Clause보다 간략해졌다."
---

{{% alert title="의무사항 요약" color="primary" %}}
<div class="-bg-100 p-3">

> - 소스 형태로 재배포
> - 고지 의무 : 소스 코드 내 명시된 저작권/라이선스 정보를 그대로 유지한 상태로 재배포한다.
> - 바이너리 형태로 재배포
> - 고지 의무 : 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.
</div>
{{% /alert %}}

## 소스 코드 내 라이선스 문구
BSD-2-Clause하의 오픈소스는 일반적으로 소스 코드 상단에 다음과 같은 문구가 있다.

~~~
Copyright (c) <YEAR>, <OWNER>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. 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.
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.
~~~

## 사용 사례 별 의무 사항
### Case 1. 소스 형태로 재배포
BSD-2-Clause하의 오픈소스를 소스 형태로 재배포 시 다음 사항을 준수한다.

#### 1-1 고지 의무
* 저작권 고지
* 라이선스 사본 제공
* 보증 부인 고지

즉, 소스 코드 내 저작권, 라이선스 등을 그대로 유지한다.

### Case 2. 바이너리 형태로 재배포

BSD-2-Clause하의 오픈소스를 빌드하여 바이너리 형태로만 재배포 시 다음 사항을 준수한다.

#### 2-1 고지 의무
* 저작권 고지
* 라이선스 사본 제공
* 보증 부인 고지

이를 포함하는 오픈소스 고지문을 생성하여 바이너리 재배포 시 동봉한다.

> 참고 : https://www.osadl.org/fileadmin/checklists/unreflicenses/BSD-2-Clause.txt

0 comments on commit 7411463

Please sign in to comment.