SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
오픈소스를
사용하고, 준비하는
개발자를 위한 가이드
황은경(violet.blue)
kakao corp.(OSA)
“
FOSS
(Free and Open Source Software)
저작권자가 소스코드를 공개하여 누구나 자유롭게
사용, 수정, 재배포 할 수 있는 자유로운 소프트웨어
“ If I have seen further it is by standing
on the shoulders of Giants ”
- Isaac Newton
/*
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. 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 Oracle or the names of its
* 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.
*/
/** The HelloWorldApp class implements an application that simply prints "Hello World!" to
standard output. */

class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
“코드를 사용하면서 출처를 밝히는 것은
개발자의 의무사항”
License, copyright 유지
기본적인 의무사항
Open Source License 구분
Public Domain
free for all
MIT / X11
BSD-New
Apache 2.0
GPL 2
AGPL 3
LGPL 2.1+
LGPL 3 or
LGPL 3+
MPL 1.1
GPL 3 or
GPL 3+
GPL 2+
keep-on share-alike
Network
Protective
LGPL 2.1
• 소스코드를 공개하지 않아도 되는 대표적인 라이선스
• 저작권 명시(고지문)
• 적용 사례 : Nginx(The BSD 2-Clause License)

• MIT에서 해당 대학의 SW 공학도들을 돕기 위해 개발한 라이선스
• 라이선스 및 저작권 명시(고지문)
• 적용 사례 : 부트스트랩 , Angular.js, Backbone.js, jQuery
• 아파치 재단의 모든 SW에 적용되는 라이선스
• BSD 의무사항 + 특허권(GPL2.0으로 배포되는 코드와는 결합 불가능)
• 적용 사례 : 안드로이드(v2.0), 하둡(v2.0)
일반적으로 사용하는 라이선스
Apache
BSD
MIT
• 수정한 소스코드 LGPL로 공개 (Static Linking 으로 사용하면 전체 코드 공개)
• 라이선스 및 저작권 명시
• 적용 사례 : 모질라 파이어폭스(v2.1)
• GPL 소스코드를 이용한 소프트웨어 전체 GPL로 공개
• 라이선스 및 저작권 명시
• 적용 사례 : 리눅스 커널(v2.0)
• AGPL 소스코드를 이용한 소프트웨어 전체 AGPL로 공개. 웹서비스 포함!
• 라이선스 및 저작권 명시
• 적용 사례 : 몽고DB(v3.0)
■ Database Server and Tools : AGPL 3.0
■ Drivers : Apache 2.0
LGPL
GPL
주의해야 할 라이선스
AGPL
personally
외부 배포 O
public
3rd
party
외부 배포 X
private내부
전용
바이너리
웹
서비스
소스코드
판매
AGPL : 웹서비스도 적용 된다고 명시
라이선스 적용 범위
➺ 오픈소스 소프트웨어의 배포의 개념?
“소스코드 및/또는 바이너리 (실행) 코드의 카피를 다른 사람에게 제공하는 행위(to give someone
else a copy of its code — either its source code, or its binary (executable) code, or both)”
[출처] Open Source Initiative (https://opensource.org)
XX 소스코드야 땡큐~
배포 !
USB
✓ 모바일앱의 성장
✓ 전 세계 공개SW 단체에 의한 모니터링
✓ 오픈소스 증가 -> 저작권자 증가
오픈소스 Compliance 이슈 증가
Free Software Foundation
GNU 프로젝트 운영 및 Free SW 배포/관리


OSI (Open source Initiative)
OSS 라이선스 인증 관리


GPL Violations
GPL 라이선스 기반의 저작권 보호 및 소송지원 단체


SFLC (Software Freedom Law Center)
OSS 개발자를 위한 법적 자문기관

기타 : Linux Foundation, FOSS, OIN(Open
Innovation Network), 국내 OSSF 등
OSS 대표 단체
• SW는 SW에 관한 지적재산권에 의해 보호 받고 있는데, 원칙적으로 저작권자만이 해당 SW에 대한 

독점 사용 권리를 갖는다.
• 라이선스(License)는 이러한 독점 사용 권리에 대해 SW 개발자와 사용자간의 이용방법 및 조건의 

범위를 명시한 대여 규칙을 정의해 놓은 사용 허가권(License)으로 대여의 방법은 유료 및 무료로 

구분된다.
Software의 지적재산권과 라이선스
오픈소스 사용자는 라이선스를 준수해야 할 의무가 있습니다.
형사처벌 판매금지와 손해배상 소스코드 공개
기업 이미지 손상
저작권법
라이선스 분쟁
Xiaomi: MIUI / 리눅스 커널 기반 GPL 코드 포함 (2014년)
해당 소스 코드 공개 - 2015.3.31
스카이프 리눅스 전화단말기 'WSKP100’ : 리눅스 커널 코드 사용 (2007년)
소스코드 공개 및 벌금 지불 판결
유통 업체에게도 GPL위반 책임. 본국이 아닌 다른 나라에서 소송/판결
엘림넷 v. 하이온넷: 영업비밀침해와 VTUND (GPL) (2005년)
엘림넷에서 VTUND 를 기반으로 개발한 ETUND를 하이온넷에서 HL로 개작 및 상용화

엘림넷은 영업비밀침해에 대한 고소, FSF와 GNU는 저작권법 위반 경고 ▶ 소스 코드 공개
Google, Oracle 자바 소송
❄ Google이 Android 에 java api 37개 사용
❄ Oracle이 특허 및 저작권 침해 10조($90억) 손해배상 소송
❄ History
○ 2012년 1심 : API 저작권 인정하지 않음
○ 2014년 항소심 : API 저작권 인정
○ 2015년 연방대법원 : API 저작권 인정 확정, 공정이용 여부 확인을 위해 1심으로 돌려 보냄
○ 2016년 1심 : 공정이용 판결
○ 2018년 항소심 : 공정이용 아니다 구글 배상하라고 판결
VMWare, 리눅스 개발자 소송
❄ VMWare:ESXi에 리눅스 커널 코드 사용
❄ 일반 개발자(크리스토프 헬비그)가 고소 진행, 오픈소스 관련 단체 지원
❄ 지난해 8월 함부르크 지방법원은 소송 기각 결정
○ ESXi의 Vmklinux 에서 사용중으로 소스 코드 제공하고 있음 - GPL 준수
○ Vmkernel 에는 사용되지 않음
○ Vmklinux와 Vmkernel 의 결합방식은 다루지 않음
❄ 크리스토프 헬비그는 항소를 밝힌 상태
❄ 라이선스 소송은 본국이 아닌 다른 나라에서도 가능
❄ 미국법원에서 오픈소스 라이선스가 집행력 있는 계약임을 인정
❄ 손해배상은 침해로 인해 내가 얻지 못한 이익+침해자가 얻은 이익 등을 고려해서 결정
❄ 상용화를 포함한 라이선스 채택은 저작권자의 고유 권한

➺ 다중 라이선스(Multi License)?
- 하나의 코드를 2가지(dual license)혹은 그 이상의 라이선스로 배포하는 형태
- 저작권자가 선택 사항으로 독자적인 유료 보증 설정
라이선스 분쟁 이슈 체크
GPL 사용 = GPL로 소스 코드 공개
GPL을 사용한 프로젝트를 배포한 경우 그 프로젝트의 전체 소스코드를 공개해야 함
✼ AGPL은 네트워크로 연결되어 연동되는 프로그램의 전체 소스코드 공개(웹서비스도 공개)
GPL2.0 + Apache2.0 = 배포 불가능
프로젝트에 GPL2.0과 Apache2.0 오픈소스를 같이 사용했다면 배포할 수 없음
Apache2.0의 특허 보복 조항을 GPL2.0에서는 보장하지 않아 라이선스 충돌(양립불가능)
※ 특허 보복 : 사용자가 특허 소송 제기시 라이선스 종료(사용불가)되고 사용료 청구
LGPL2.1 + Apache2.0 = 결합방식에 따라 배포 불가능 할 수 있음
LGPL2.1도 특허 보장하지 않으므로 라이선스 충돌(양립불가능)
라이선스의 적용 범위에 따라 LGPL2.1을 사용한 코드가 Apache2.0 오픈소스를 사용한
코드와는 독립적으로 사용(Dynamic Linking)되고 있는 경우는 배포 가능
GPL 알고 씁시다!
❄ 투명한 코드 > 가시성 확보, 책임감/능력 향상
❄ 커뮤니케이션 > 문서화, 이슈 생성, 커밋 로그, 거버넌스
❄ 기술 중심 > 코드를 중심으로 의사소통과 의사결정
❄ 개인 명성 > 소스 코드, 커밋 로그, 프로필
http://rankedin.kr/users
http://rankedin.kr/repos
❄ 다양성 보장 > 발견과 개선, 선택과 집중
오픈소스 공유 및 기여
라이선스 명시
라이선스를 명시하지 않으면 기본 저작권법이 적용되어 타인이 저작물을 복제,배포 할 수 없음
https://help.github.com/articles/licensing-a-repository/
(코드 사용시에도 라이선스가 없는 코드는 기본 저작권법 적용됨)
사용한 오픈소스의 라이선스 의무사항 준수
사용한 오픈소스를 명시하고 해당 라이선스의 의무사항을 준수해야 함
의무조항의 충돌로 함께 사용할 수 없는 라이선스가 있는지도 확인(Compatibility)
- Apache2.0 , OFL 등 차별조항이 있는 라이선스는 GPL2.0과 충돌
적합한 라이선스 채택
사용한 오픈소스 라이선스와 호환되는 라이선스를 채택해야 함 (GPL 사용 = GPL 배포)
자신의 오픈소스의 공유 목적에 맞는 라이선스를 채택 

GPL은 사용제한을 할 수 없음
코드 공개 및 배포시 주의사항
카카오
오픈소스 Gu
카카오의
오픈소스 Guidance
프로세스와 정책의 강제? No!
“오픈소스를 잘 사용하고, 오픈소스에 기여할 수 있도록 돕는다.”
❄ 오픈소스 라이선스 확인과 고지문 발급 자동화, 효율화
❄ 오픈소스 프로젝트(코드 공개) 지원
❄ 오픈소스 사용현황 제공
오픈소스 Guidance
Hermes
카카오의 오픈소스 관리 시스템
❄ Dependency 관리
❄ 고지문 발급 자동화
❄ Protex 연동
❄ OSS DB 구축을 통한 검증 데이타 고도화
Hermes
Dependency 분석
Protex 연동
OSS 매핑
Source
CSV
Legal Notice
Target
Dependency 설정 파일, 내/외부 라이브러리
Analysis & Mapping
Dependency 설정 파일 분석
고지될 OSS 로 매핑
Remember (Auto Mapping)
분석/매핑된 대상 저장, 자동 매칭
Dependency 분석
dependencies {
implementation ‘com.google.code.gson:gson:2.8.1'
}
Name : google-goon
URL : https://github.com/google/gson
License : Apache License 2.0
Copyright : Copyright 2008 Google Inc.
build.gradle
iOS_Mac
Operator
2%
Protex
36%
Dependency
62%
Operator
1%
Protex
38%
Dependency
61%
Operator
1%
Protex
61%
Dependency
38%
CommAndroid
OSS 확인 위치
Operator
1%
Protex
43% Dependency
55%
DB
kakao OSS, License DB 구축
Data 정합성
주기적인 Data 확인 및 개선을 통한 Data 정합성
Automation
검증했던 OSS와 Dependency 자동 매칭
자동 매칭 비율, 자동 매칭 후보 등의 통계자료 확인 및 개선으로 자동화 비율 증대
검증 효율화, 고도화
자동 매칭 비율
자동 매칭
0
20
40
60
80
100
(월) 1 2 3 4 5 6
0
25
50
75
100
(월) 1 2 3 4 5 6
dependency protex
자동 매칭 후보
신규 Device 프로젝트 검증시 대부분 수동 매칭됨
카카오톡 Andriod, iOS 각각 100개 이상 오픈소스 사용 고지
오픈소스 사용 및 고지
페이스북 250여개 사용
(2015년 기준)
사용중인 오픈소스 약 1,700개 (2018년 8월 기준)
6%
6%
87%
1%
3%
7%
9%
20%
58%
Apache 2.0
License Statistics by Device
BSD
MIT
Apache 2.0
MIT
BSD
Apple
MIT
zlib
Android iOS
github.com/kakao
http://tech.kakao.com/opensource/
1. 오픈 여부 승인 - 팀 리더 및 기술 직군 리더 승인
2. 사내 코드/라이브러리의 오픈 계획안 작성
3. 특허, 오픈소스 라이선스 확인 - 법무 + OSA 지원
4. 저장소 명칭(github.com/kakao/[reopository-name]) 확정
github.com/kakao > Private 저장소로 코드/라이브러리 이동
5. License 확정 - Apache 2.0 추천
Readme / CONTRIBUTING / CLA(Contributor License Agreement) 추가
6. 사용자/기여자와 커뮤니케이션 채널 준비, Company repository 팀 멤버 권한 조정
7. 오픈 (Private > Public 전환)
코드 공개 프로세스
Remind
오픈소스 출처 고지 및 copyright 유지
코드를 수정할 경우 코드의 출처를 유지하고 내 copyright 추가
LGPL < GPL < AGPL
- 오픈소스 라이선스 의무사항 준수 (라이선스 감염 & 코드 공개)
- 코드 수정
- 라이선스 구매
참고) 공개SW 포털, OLIS
- 오픈소스 라이선스 가이드 문서 제공
- 오픈소스 라이선스 문의
- 사용한 오픈소스 라이선스 확인 (대상 : 국내 개인, 대학, 중소기업)
Thanks!
ANY QUESTIONS?

Más contenido relacionado

La actualidad más candente

MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?VMware Tanzu Korea
 
Cloud native application 입문
Cloud native application 입문Cloud native application 입문
Cloud native application 입문Seong-Bok Lee
 
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입choi sungwook
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개태준 문
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드Opennaru, inc.
 
쿠버네티스의 이해 #1
쿠버네티스의 이해 #1쿠버네티스의 이해 #1
쿠버네티스의 이해 #1상욱 송
 
[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자NAVER D2
 
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?VMware Tanzu Korea
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20Amazon Web Services Korea
 
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICESSpring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICESMichael Plöd
 
Datadog을 활용한 Elastic Kubernetes Service(EKS)에서의 마이크로서비스 통합 가시성 - 정영석 시니어 세일즈 ...
Datadog을 활용한 Elastic Kubernetes Service(EKS)에서의 마이크로서비스 통합 가시성 - 정영석 시니어 세일즈 ...Datadog을 활용한 Elastic Kubernetes Service(EKS)에서의 마이크로서비스 통합 가시성 - 정영석 시니어 세일즈 ...
Datadog을 활용한 Elastic Kubernetes Service(EKS)에서의 마이크로서비스 통합 가시성 - 정영석 시니어 세일즈 ...Amazon Web Services Korea
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스Dan Kang (강동한)
 
[2018] 고객 사례를 통해 본 클라우드 전환 전략
[2018] 고객 사례를 통해 본 클라우드 전환 전략[2018] 고객 사례를 통해 본 클라우드 전환 전략
[2018] 고객 사례를 통해 본 클라우드 전환 전략NHN FORWARD
 
Apache kafka 관리와 모니터링
Apache kafka 관리와 모니터링Apache kafka 관리와 모니터링
Apache kafka 관리와 모니터링JANGWONSEO4
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) YoungSu Son
 
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트Amazon Web Services Korea
 
성공적인 하이브리드 클라우드를 위한 레드햇의 전략
성공적인 하이브리드 클라우드를 위한 레드햇의 전략성공적인 하이브리드 클라우드를 위한 레드햇의 전략
성공적인 하이브리드 클라우드를 위한 레드햇의 전략rockplace
 

La actualidad más candente (20)

MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
 
Cloud native application 입문
Cloud native application 입문Cloud native application 입문
Cloud native application 입문
 
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
쿠버네티스의 이해 #1
쿠버네티스의 이해 #1쿠버네티스의 이해 #1
쿠버네티스의 이해 #1
 
[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자
 
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICESSpring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
Spring One 2 GX 2014 - CACHING WITH SPRING: ADVANCED TOPICS AND BEST PRACTICES
 
Datadog을 활용한 Elastic Kubernetes Service(EKS)에서의 마이크로서비스 통합 가시성 - 정영석 시니어 세일즈 ...
Datadog을 활용한 Elastic Kubernetes Service(EKS)에서의 마이크로서비스 통합 가시성 - 정영석 시니어 세일즈 ...Datadog을 활용한 Elastic Kubernetes Service(EKS)에서의 마이크로서비스 통합 가시성 - 정영석 시니어 세일즈 ...
Datadog을 활용한 Elastic Kubernetes Service(EKS)에서의 마이크로서비스 통합 가시성 - 정영석 시니어 세일즈 ...
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
[2018] 고객 사례를 통해 본 클라우드 전환 전략
[2018] 고객 사례를 통해 본 클라우드 전환 전략[2018] 고객 사례를 통해 본 클라우드 전환 전략
[2018] 고객 사례를 통해 본 클라우드 전환 전략
 
Apache kafka 관리와 모니터링
Apache kafka 관리와 모니터링Apache kafka 관리와 모니터링
Apache kafka 관리와 모니터링
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
 
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
다양한 배포 기법과 AWS에서 구축하는 CI/CD 파이프라인 l 안효빈 솔루션즈 아키텍트
 
성공적인 하이브리드 클라우드를 위한 레드햇의 전략
성공적인 하이브리드 클라우드를 위한 레드햇의 전략성공적인 하이브리드 클라우드를 위한 레드햇의 전략
성공적인 하이브리드 클라우드를 위한 레드햇의 전략
 

Similar a 오픈소스를 사용하고, 준비하는 개발자를 위한 가이드

[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요slhead1
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
Introduction to FOSS4G & OSGeo for KRIHS
Introduction to FOSS4G & OSGeo for KRIHSIntroduction to FOSS4G & OSGeo for KRIHS
Introduction to FOSS4G & OSGeo for KRIHSslhead1
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
[법무법인 민후 | 김경환 변호사] 오픈소스소프트웨어(OSS) 저작권과 라이선스의 이해
[법무법인 민후 | 김경환 변호사] 오픈소스소프트웨어(OSS) 저작권과 라이선스의 이해[법무법인 민후 | 김경환 변호사] 오픈소스소프트웨어(OSS) 저작권과 라이선스의 이해
[법무법인 민후 | 김경환 변호사] 오픈소스소프트웨어(OSS) 저작권과 라이선스의 이해MINWHO Law Group
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1][개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]Tommy Lee
 
오픈소스소프트웨어와 지식재산권
오픈소스소프트웨어와 지식재산권오픈소스소프트웨어와 지식재산권
오픈소스소프트웨어와 지식재산권Seung-won CHAE
 
16.02.27 해킹캠프 오픈 소스 최우석
16.02.27 해킹캠프 오픈 소스 최우석16.02.27 해킹캠프 오픈 소스 최우석
16.02.27 해킹캠프 오픈 소스 최우석KISEC
 
16.02.27 해킹캠프 오픈_소스_최우석_ver0.3
16.02.27 해킹캠프 오픈_소스_최우석_ver0.316.02.27 해킹캠프 오픈_소스_최우석_ver0.3
16.02.27 해킹캠프 오픈_소스_최우석_ver0.3KISEC
 
OSS SW Basics Lecture 04: OSS Licenses and documentation
OSS SW Basics Lecture 04: OSS Licenses and documentationOSS SW Basics Lecture 04: OSS Licenses and documentation
OSS SW Basics Lecture 04: OSS Licenses and documentationJeongkyu Shin
 
제 5회 D2 CAMPUS FEST O.T - 오픈소스 라이선스
제 5회 D2 CAMPUS FEST O.T - 오픈소스 라이선스제 5회 D2 CAMPUS FEST O.T - 오픈소스 라이선스
제 5회 D2 CAMPUS FEST O.T - 오픈소스 라이선스NAVER D2
 
OpenSource License
OpenSource LicenseOpenSource License
OpenSource LicenseTIMEGATE
 
오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeoSANGHEE SHIN
 
[uengine.org-uEngine Day] Open Source SW 활용방안및 uEngine BPMS V.4 발표자료
[uengine.org-uEngine Day] Open Source SW 활용방안및 uEngine BPMS V.4 발표자료[uengine.org-uEngine Day] Open Source SW 활용방안및 uEngine BPMS V.4 발표자료
[uengine.org-uEngine Day] Open Source SW 활용방안및 uEngine BPMS V.4 발표자료Hannah Kim
 
The practice of handling with FOSS by GPL v2inthe automotive
The practice of handling with FOSS by GPL v2inthe automotiveThe practice of handling with FOSS by GPL v2inthe automotive
The practice of handling with FOSS by GPL v2inthe automotiveByungjoo Hwang
 
회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권Jeongkyu Shin
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
02.[참고]오픈소스sw라이선스가이드라인
02.[참고]오픈소스sw라이선스가이드라인02.[참고]오픈소스sw라이선스가이드라인
02.[참고]오픈소스sw라이선스가이드라인Hankyo
 
[오픈소스컨설팅]오픈소스개요 및 동향_v2
[오픈소스컨설팅]오픈소스개요 및 동향_v2[오픈소스컨설팅]오픈소스개요 및 동향_v2
[오픈소스컨설팅]오픈소스개요 및 동향_v2Ji-Woong Choi
 
오픈소스 라이선스
오픈소스 라이선스오픈소스 라이선스
오픈소스 라이선스Lee Geonhee
 

Similar a 오픈소스를 사용하고, 준비하는 개발자를 위한 가이드 (20)

[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요[공간정보연구원] 1일차 - 오픈소스GIS 개요
[공간정보연구원] 1일차 - 오픈소스GIS 개요
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
Introduction to FOSS4G & OSGeo for KRIHS
Introduction to FOSS4G & OSGeo for KRIHSIntroduction to FOSS4G & OSGeo for KRIHS
Introduction to FOSS4G & OSGeo for KRIHS
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
[법무법인 민후 | 김경환 변호사] 오픈소스소프트웨어(OSS) 저작권과 라이선스의 이해
[법무법인 민후 | 김경환 변호사] 오픈소스소프트웨어(OSS) 저작권과 라이선스의 이해[법무법인 민후 | 김경환 변호사] 오픈소스소프트웨어(OSS) 저작권과 라이선스의 이해
[법무법인 민후 | 김경환 변호사] 오픈소스소프트웨어(OSS) 저작권과 라이선스의 이해
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1][개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
 
오픈소스소프트웨어와 지식재산권
오픈소스소프트웨어와 지식재산권오픈소스소프트웨어와 지식재산권
오픈소스소프트웨어와 지식재산권
 
16.02.27 해킹캠프 오픈 소스 최우석
16.02.27 해킹캠프 오픈 소스 최우석16.02.27 해킹캠프 오픈 소스 최우석
16.02.27 해킹캠프 오픈 소스 최우석
 
16.02.27 해킹캠프 오픈_소스_최우석_ver0.3
16.02.27 해킹캠프 오픈_소스_최우석_ver0.316.02.27 해킹캠프 오픈_소스_최우석_ver0.3
16.02.27 해킹캠프 오픈_소스_최우석_ver0.3
 
OSS SW Basics Lecture 04: OSS Licenses and documentation
OSS SW Basics Lecture 04: OSS Licenses and documentationOSS SW Basics Lecture 04: OSS Licenses and documentation
OSS SW Basics Lecture 04: OSS Licenses and documentation
 
제 5회 D2 CAMPUS FEST O.T - 오픈소스 라이선스
제 5회 D2 CAMPUS FEST O.T - 오픈소스 라이선스제 5회 D2 CAMPUS FEST O.T - 오픈소스 라이선스
제 5회 D2 CAMPUS FEST O.T - 오픈소스 라이선스
 
OpenSource License
OpenSource LicenseOpenSource License
OpenSource License
 
오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo오픈 소스 GIS와 OSGeo
오픈 소스 GIS와 OSGeo
 
[uengine.org-uEngine Day] Open Source SW 활용방안및 uEngine BPMS V.4 발표자료
[uengine.org-uEngine Day] Open Source SW 활용방안및 uEngine BPMS V.4 발표자료[uengine.org-uEngine Day] Open Source SW 활용방안및 uEngine BPMS V.4 발표자료
[uengine.org-uEngine Day] Open Source SW 활용방안및 uEngine BPMS V.4 발표자료
 
The practice of handling with FOSS by GPL v2inthe automotive
The practice of handling with FOSS by GPL v2inthe automotiveThe practice of handling with FOSS by GPL v2inthe automotive
The practice of handling with FOSS by GPL v2inthe automotive
 
회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권회색지대: 이상과 현실 - 오픈소스 저작권
회색지대: 이상과 현실 - 오픈소스 저작권
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
02.[참고]오픈소스sw라이선스가이드라인
02.[참고]오픈소스sw라이선스가이드라인02.[참고]오픈소스sw라이선스가이드라인
02.[참고]오픈소스sw라이선스가이드라인
 
[오픈소스컨설팅]오픈소스개요 및 동향_v2
[오픈소스컨설팅]오픈소스개요 및 동향_v2[오픈소스컨설팅]오픈소스개요 및 동향_v2
[오픈소스컨설팅]오픈소스개요 및 동향_v2
 
오픈소스 라이선스
오픈소스 라이선스오픈소스 라이선스
오픈소스 라이선스
 

Más de if kakao

바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링if kakao
 
카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angularif kakao
 
프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기if kakao
 
카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기if kakao
 
TOROS N2 - lightweight approximate Nearest Neighbor library
TOROS N2 - lightweight approximate Nearest Neighbor libraryTOROS N2 - lightweight approximate Nearest Neighbor library
TOROS N2 - lightweight approximate Nearest Neighbor libraryif kakao
 
딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식if kakao
 
딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅if kakao
 
눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템if kakao
 
Keynote / 2018
Keynote / 2018Keynote / 2018
Keynote / 2018if kakao
 
카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개if kakao
 
다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)if kakao
 
모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기if kakao
 
카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기if kakao
 
다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기if kakao
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례if kakao
 
액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템if kakao
 
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain PlatformKlaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platformif kakao
 
Kakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rumKakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rumif kakao
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우if kakao
 
스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략if kakao
 

Más de if kakao (20)

바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링
 
카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular
 
프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기
 
카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기
 
TOROS N2 - lightweight approximate Nearest Neighbor library
TOROS N2 - lightweight approximate Nearest Neighbor libraryTOROS N2 - lightweight approximate Nearest Neighbor library
TOROS N2 - lightweight approximate Nearest Neighbor library
 
딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식
 
딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅
 
눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템
 
Keynote / 2018
Keynote / 2018Keynote / 2018
Keynote / 2018
 
카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개
 
다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)
 
모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기
 
카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기
 
다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템
 
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain PlatformKlaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
 
Kakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rumKakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rum
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
 
스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략
 

오픈소스를 사용하고, 준비하는 개발자를 위한 가이드

  • 1. 오픈소스를 사용하고, 준비하는 개발자를 위한 가이드 황은경(violet.blue) kakao corp.(OSA)
  • 2. “ FOSS (Free and Open Source Software) 저작권자가 소스코드를 공개하여 누구나 자유롭게 사용, 수정, 재배포 할 수 있는 자유로운 소프트웨어 “ If I have seen further it is by standing on the shoulders of Giants ” - Isaac Newton
  • 3. /* * Copyright (c) 1995, 2008, Oracle and/or its affiliates. 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 Oracle or the names of its * 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. */ /** The HelloWorldApp class implements an application that simply prints "Hello World!" to standard output. */
 class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. } } “코드를 사용하면서 출처를 밝히는 것은 개발자의 의무사항” License, copyright 유지 기본적인 의무사항
  • 4. Open Source License 구분 Public Domain free for all MIT / X11 BSD-New Apache 2.0 GPL 2 AGPL 3 LGPL 2.1+ LGPL 3 or LGPL 3+ MPL 1.1 GPL 3 or GPL 3+ GPL 2+ keep-on share-alike Network Protective LGPL 2.1
  • 5. • 소스코드를 공개하지 않아도 되는 대표적인 라이선스 • 저작권 명시(고지문) • 적용 사례 : Nginx(The BSD 2-Clause License)
 • MIT에서 해당 대학의 SW 공학도들을 돕기 위해 개발한 라이선스 • 라이선스 및 저작권 명시(고지문) • 적용 사례 : 부트스트랩 , Angular.js, Backbone.js, jQuery • 아파치 재단의 모든 SW에 적용되는 라이선스 • BSD 의무사항 + 특허권(GPL2.0으로 배포되는 코드와는 결합 불가능) • 적용 사례 : 안드로이드(v2.0), 하둡(v2.0) 일반적으로 사용하는 라이선스 Apache BSD MIT
  • 6. • 수정한 소스코드 LGPL로 공개 (Static Linking 으로 사용하면 전체 코드 공개) • 라이선스 및 저작권 명시 • 적용 사례 : 모질라 파이어폭스(v2.1) • GPL 소스코드를 이용한 소프트웨어 전체 GPL로 공개 • 라이선스 및 저작권 명시 • 적용 사례 : 리눅스 커널(v2.0) • AGPL 소스코드를 이용한 소프트웨어 전체 AGPL로 공개. 웹서비스 포함! • 라이선스 및 저작권 명시 • 적용 사례 : 몽고DB(v3.0) ■ Database Server and Tools : AGPL 3.0 ■ Drivers : Apache 2.0 LGPL GPL 주의해야 할 라이선스 AGPL
  • 7. personally 외부 배포 O public 3rd party 외부 배포 X private내부 전용 바이너리 웹 서비스 소스코드 판매 AGPL : 웹서비스도 적용 된다고 명시 라이선스 적용 범위
  • 8. ➺ 오픈소스 소프트웨어의 배포의 개념? “소스코드 및/또는 바이너리 (실행) 코드의 카피를 다른 사람에게 제공하는 행위(to give someone else a copy of its code — either its source code, or its binary (executable) code, or both)” [출처] Open Source Initiative (https://opensource.org) XX 소스코드야 땡큐~ 배포 ! USB
  • 9. ✓ 모바일앱의 성장 ✓ 전 세계 공개SW 단체에 의한 모니터링 ✓ 오픈소스 증가 -> 저작권자 증가 오픈소스 Compliance 이슈 증가
  • 10. Free Software Foundation GNU 프로젝트 운영 및 Free SW 배포/관리 
 OSI (Open source Initiative) OSS 라이선스 인증 관리 
 GPL Violations GPL 라이선스 기반의 저작권 보호 및 소송지원 단체 
 SFLC (Software Freedom Law Center) OSS 개발자를 위한 법적 자문기관
 기타 : Linux Foundation, FOSS, OIN(Open Innovation Network), 국내 OSSF 등 OSS 대표 단체
  • 11. • SW는 SW에 관한 지적재산권에 의해 보호 받고 있는데, 원칙적으로 저작권자만이 해당 SW에 대한 
 독점 사용 권리를 갖는다. • 라이선스(License)는 이러한 독점 사용 권리에 대해 SW 개발자와 사용자간의 이용방법 및 조건의 
 범위를 명시한 대여 규칙을 정의해 놓은 사용 허가권(License)으로 대여의 방법은 유료 및 무료로 
 구분된다. Software의 지적재산권과 라이선스 오픈소스 사용자는 라이선스를 준수해야 할 의무가 있습니다.
  • 12. 형사처벌 판매금지와 손해배상 소스코드 공개 기업 이미지 손상 저작권법
  • 14. Xiaomi: MIUI / 리눅스 커널 기반 GPL 코드 포함 (2014년) 해당 소스 코드 공개 - 2015.3.31 스카이프 리눅스 전화단말기 'WSKP100’ : 리눅스 커널 코드 사용 (2007년) 소스코드 공개 및 벌금 지불 판결 유통 업체에게도 GPL위반 책임. 본국이 아닌 다른 나라에서 소송/판결 엘림넷 v. 하이온넷: 영업비밀침해와 VTUND (GPL) (2005년) 엘림넷에서 VTUND 를 기반으로 개발한 ETUND를 하이온넷에서 HL로 개작 및 상용화
 엘림넷은 영업비밀침해에 대한 고소, FSF와 GNU는 저작권법 위반 경고 ▶ 소스 코드 공개
  • 15. Google, Oracle 자바 소송 ❄ Google이 Android 에 java api 37개 사용 ❄ Oracle이 특허 및 저작권 침해 10조($90억) 손해배상 소송 ❄ History ○ 2012년 1심 : API 저작권 인정하지 않음 ○ 2014년 항소심 : API 저작권 인정 ○ 2015년 연방대법원 : API 저작권 인정 확정, 공정이용 여부 확인을 위해 1심으로 돌려 보냄 ○ 2016년 1심 : 공정이용 판결 ○ 2018년 항소심 : 공정이용 아니다 구글 배상하라고 판결
  • 16. VMWare, 리눅스 개발자 소송 ❄ VMWare:ESXi에 리눅스 커널 코드 사용 ❄ 일반 개발자(크리스토프 헬비그)가 고소 진행, 오픈소스 관련 단체 지원 ❄ 지난해 8월 함부르크 지방법원은 소송 기각 결정 ○ ESXi의 Vmklinux 에서 사용중으로 소스 코드 제공하고 있음 - GPL 준수 ○ Vmkernel 에는 사용되지 않음 ○ Vmklinux와 Vmkernel 의 결합방식은 다루지 않음 ❄ 크리스토프 헬비그는 항소를 밝힌 상태
  • 17. ❄ 라이선스 소송은 본국이 아닌 다른 나라에서도 가능 ❄ 미국법원에서 오픈소스 라이선스가 집행력 있는 계약임을 인정 ❄ 손해배상은 침해로 인해 내가 얻지 못한 이익+침해자가 얻은 이익 등을 고려해서 결정 ❄ 상용화를 포함한 라이선스 채택은 저작권자의 고유 권한
 ➺ 다중 라이선스(Multi License)? - 하나의 코드를 2가지(dual license)혹은 그 이상의 라이선스로 배포하는 형태 - 저작권자가 선택 사항으로 독자적인 유료 보증 설정 라이선스 분쟁 이슈 체크
  • 18. GPL 사용 = GPL로 소스 코드 공개 GPL을 사용한 프로젝트를 배포한 경우 그 프로젝트의 전체 소스코드를 공개해야 함 ✼ AGPL은 네트워크로 연결되어 연동되는 프로그램의 전체 소스코드 공개(웹서비스도 공개) GPL2.0 + Apache2.0 = 배포 불가능 프로젝트에 GPL2.0과 Apache2.0 오픈소스를 같이 사용했다면 배포할 수 없음 Apache2.0의 특허 보복 조항을 GPL2.0에서는 보장하지 않아 라이선스 충돌(양립불가능) ※ 특허 보복 : 사용자가 특허 소송 제기시 라이선스 종료(사용불가)되고 사용료 청구 LGPL2.1 + Apache2.0 = 결합방식에 따라 배포 불가능 할 수 있음 LGPL2.1도 특허 보장하지 않으므로 라이선스 충돌(양립불가능) 라이선스의 적용 범위에 따라 LGPL2.1을 사용한 코드가 Apache2.0 오픈소스를 사용한 코드와는 독립적으로 사용(Dynamic Linking)되고 있는 경우는 배포 가능 GPL 알고 씁시다!
  • 19. ❄ 투명한 코드 > 가시성 확보, 책임감/능력 향상 ❄ 커뮤니케이션 > 문서화, 이슈 생성, 커밋 로그, 거버넌스 ❄ 기술 중심 > 코드를 중심으로 의사소통과 의사결정 ❄ 개인 명성 > 소스 코드, 커밋 로그, 프로필 http://rankedin.kr/users http://rankedin.kr/repos ❄ 다양성 보장 > 발견과 개선, 선택과 집중 오픈소스 공유 및 기여
  • 20. 라이선스 명시 라이선스를 명시하지 않으면 기본 저작권법이 적용되어 타인이 저작물을 복제,배포 할 수 없음 https://help.github.com/articles/licensing-a-repository/ (코드 사용시에도 라이선스가 없는 코드는 기본 저작권법 적용됨) 사용한 오픈소스의 라이선스 의무사항 준수 사용한 오픈소스를 명시하고 해당 라이선스의 의무사항을 준수해야 함 의무조항의 충돌로 함께 사용할 수 없는 라이선스가 있는지도 확인(Compatibility) - Apache2.0 , OFL 등 차별조항이 있는 라이선스는 GPL2.0과 충돌 적합한 라이선스 채택 사용한 오픈소스 라이선스와 호환되는 라이선스를 채택해야 함 (GPL 사용 = GPL 배포) 자신의 오픈소스의 공유 목적에 맞는 라이선스를 채택 
 GPL은 사용제한을 할 수 없음 코드 공개 및 배포시 주의사항
  • 22. 프로세스와 정책의 강제? No! “오픈소스를 잘 사용하고, 오픈소스에 기여할 수 있도록 돕는다.” ❄ 오픈소스 라이선스 확인과 고지문 발급 자동화, 효율화 ❄ 오픈소스 프로젝트(코드 공개) 지원 ❄ 오픈소스 사용현황 제공 오픈소스 Guidance
  • 23. Hermes 카카오의 오픈소스 관리 시스템 ❄ Dependency 관리 ❄ 고지문 발급 자동화 ❄ Protex 연동 ❄ OSS DB 구축을 통한 검증 데이타 고도화
  • 24. Hermes Dependency 분석 Protex 연동 OSS 매핑 Source CSV Legal Notice
  • 25. Target Dependency 설정 파일, 내/외부 라이브러리 Analysis & Mapping Dependency 설정 파일 분석 고지될 OSS 로 매핑 Remember (Auto Mapping) 분석/매핑된 대상 저장, 자동 매칭 Dependency 분석
  • 26. dependencies { implementation ‘com.google.code.gson:gson:2.8.1' } Name : google-goon URL : https://github.com/google/gson License : Apache License 2.0 Copyright : Copyright 2008 Google Inc. build.gradle
  • 28. DB kakao OSS, License DB 구축 Data 정합성 주기적인 Data 확인 및 개선을 통한 Data 정합성 Automation 검증했던 OSS와 Dependency 자동 매칭 자동 매칭 비율, 자동 매칭 후보 등의 통계자료 확인 및 개선으로 자동화 비율 증대 검증 효율화, 고도화
  • 29. 자동 매칭 비율 자동 매칭 0 20 40 60 80 100 (월) 1 2 3 4 5 6 0 25 50 75 100 (월) 1 2 3 4 5 6 dependency protex 자동 매칭 후보 신규 Device 프로젝트 검증시 대부분 수동 매칭됨
  • 30. 카카오톡 Andriod, iOS 각각 100개 이상 오픈소스 사용 고지 오픈소스 사용 및 고지 페이스북 250여개 사용 (2015년 기준)
  • 31. 사용중인 오픈소스 약 1,700개 (2018년 8월 기준)
  • 32. 6% 6% 87% 1% 3% 7% 9% 20% 58% Apache 2.0 License Statistics by Device BSD MIT Apache 2.0 MIT BSD Apple MIT zlib Android iOS
  • 34. 1. 오픈 여부 승인 - 팀 리더 및 기술 직군 리더 승인 2. 사내 코드/라이브러리의 오픈 계획안 작성 3. 특허, 오픈소스 라이선스 확인 - 법무 + OSA 지원 4. 저장소 명칭(github.com/kakao/[reopository-name]) 확정 github.com/kakao > Private 저장소로 코드/라이브러리 이동 5. License 확정 - Apache 2.0 추천 Readme / CONTRIBUTING / CLA(Contributor License Agreement) 추가 6. 사용자/기여자와 커뮤니케이션 채널 준비, Company repository 팀 멤버 권한 조정 7. 오픈 (Private > Public 전환) 코드 공개 프로세스
  • 35. Remind 오픈소스 출처 고지 및 copyright 유지 코드를 수정할 경우 코드의 출처를 유지하고 내 copyright 추가 LGPL < GPL < AGPL - 오픈소스 라이선스 의무사항 준수 (라이선스 감염 & 코드 공개) - 코드 수정 - 라이선스 구매 참고) 공개SW 포털, OLIS - 오픈소스 라이선스 가이드 문서 제공 - 오픈소스 라이선스 문의 - 사용한 오픈소스 라이선스 확인 (대상 : 국내 개인, 대학, 중소기업)