일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 안드로이드 알림 예제
- 버전별 관리
- NotificationCompat.Builder
- setContentIntent
- notification channel
- 알림 인텐트
- setPriority(NotificationCompat.PRIORITY_HIGH)
- 안드로이드 알림
- 안드로이드 알림채널
- 알림 우선순위
- notifications
- 펜딩인텐트
- Pending Intent
- android notification 예제
- notification manager
- setDefaults(NotificationCompat.DEFAULT_ALL)
- Today
- Total
공부용 블로그
Open Source SW와 License란? 본문
Q. Web server가 open source인데 유료인 경우도 있을까?
=> 있음
Q. 라이센스마다 소스 공개 범위가 다르다면 내 서비스는 어디까지 공개하는게 좋을까?
=> 생각해봐야 함
=> 아래 소스 코드 공개여부에 관한 규정을 보고난 뒤 소스 코드 공개안할 수 있는 라이센스가 많다는 걸 알게됨.
즉 소스코드 공개 안해도 되는 라이센스 쓰면 됨.
-----------------------------------------------------------------------------------------------------------------------------
Q. Open Source SoftWare 란 무엇인가?
소스코드가 공개되어 있는 소프트웨어.
일반적으로 자유롭게 사용, 복제, 배포, 수정할 수 있다.
오픈소스 소프트웨어의 대표적인 예로는 Linux 커널, 아파치 웹서버, FireFox 웹 브라우저, MySQL 등이 있다.
Q. Open Source SoftWare License 란 무엇인가?
-> 1980년대에 소프트웨어 시장이 커짐
-> 지적재산권 및 라이센스 계약을 통해 소프트웨어의 사용, 복제, 배포, 수정을제한을 하려는 움직임이 나타남
(소프트웨어 시장이 커지니까 지적재산권, 라이센스 등으로 돈벌려고..?)
-> 이러한 움직임에 반대한 리처드 스톨만(Richard Matthew Stallman)은
FSF(Free SoftWare Foundation) 설립 -> 자유 소프트웨어 운동 시작
-> '자유'라는 단어가 사용자들에게 '무료'로 인식, 엄격한 조항때문에 기업들의 참여도 꺼려짐
-> '오픈 소스'라는 새로운 용어 사용하게 됨
-> 그 후 1998년, OSI(Open Source Initiative)가 결성되고 오픈소스 소프트웨어 활성화
-> 현재까지 오픈소스 라이센스가 사용되고 있음
Q. 오픈소스 소프트웨어 라이센스 종류는?
* GNU General Public License(GPL) 2.0
-> GPL은 현재 가장 많은 오픈소스 소프트웨어(Linux 커널, 아파치 웹서버, FireFox 웹 브라우저, MySQL 등)가 채택하고 있는 라이센스
-> 오픈소스 라이센스 중 가장 많이 알려져있고, 의무사항들도 타 라이센스에 비해 엄격한 편
* GNU Lesser GPL(LGPL) 2.1
* Berkeley SoftWare Distribution(BSD) License
* Apache License
* Mozilla Public License(MPL)
* MIT License
Q. '소스 코드를 공개해야 한다'는 것은 내가 개발한 어플리케이션 소스 공개해야 한다는 건가?
(만약 내가 사용한 웹서버가 GPL 라이센스를 채택한 경우)
=> 의미로는 맞음. 그러나 아래 관련 규정을 보면 공개하지 않을 수 있다.
(규정 참고) http://www.gnu.org/licenses/gpl-faq.ko.html#WhyUseGPL
'GPL 프로그램을 개작한 뒤에 개인적인 목적으로 사용하고 있다면 개작된 소스 코드를 공개하지 않아도 무방합니다.'
=> 즉, 오픈 소스를 내가 수정해서 썼어도 개인적인 목적으로 사용한다면 내 소스 코드를 공개하지 않아도 된다.
Q. 오픈 소스(웹서버의 소스)를 수정해서 쓴 뒤에 내 어플리케이션을 상업적인 목적 혹은 무료 서비스로 사용하는 경우는?
'만약 어떠한 방식으로든지 개작된 버전을 공표하고 있다면, 사용자들이 개작된 버전의 소스 코드를 GPL에 따라 이용할 수 있도록 해야만 합니다.'
=> 수정한 부분만 공개하면 된다. (확인필요)
*개작 : 작품이나 원고 따위를 고쳐 다시 지음. 또는 그렇게 한 작품
=> GNU 홈페이지에 자세한 내용이 나와있으나 다 이해하기에는 어려움이 있음.
현재 내가 이해해야하는 오픈소스 소프트웨어의 라이센스에 대한 정의와 소스코드 공개에 대한 의미를 파악했으므로
일단 공부는 여기까지. 나중에 더 깊은 이해가 필요할때 참고사이트 다시 찾아보자.
--------------------------------------------------------------------------------------------------------------------------------
Q. apache server는 왜 동시연결에 비효율적일까?
웹 브라우저는 웹 서버에 대한 여러 개의 TCP 연결을 열어 각 사용자 세션의 페이지 렌더링 시간을 줄여 자원을 즉시 병렬로 다운로드 할 수 있도록합니다. 브라우저는 사용자가 세션 중에 요청할 수 있는 지연 시간을 줄이기 위해 일정 기간 동안 이러한 연결을 계속 유지합니다 (keep Alive).
각각의 열린 연결은 독점적으로 httpd 프로세스를 예약합니다. 이렇게 생성 된 많은 수의 httpd 프로세스로 인해 서버에 상당한 부하가 발생하여 성능이 저하되고 잦은 충돌이 발생할 수 있습니다. 연결 모델 당 프로세스에 따라 Apache는 많은 동시 연결을 처리하는 데 효율적이지 않습니다.
아파치는 공통 RAM, CPU 및 기타 자원을 놓고 경쟁하는 수많은 프로세스를 생성합니다.
Q. apache server에 여러가지 모듈이 있는데 모듈을 사용하는 것에 대한 장점은?
Q. 다중처리모듈(MPM)에 의해 수행되면 왜 처리가 빠를까?
'설계 > WebServer' 카테고리의 다른 글
웹서버에서 인스턴스란? (0) | 2018.08.04 |
---|---|
Blocking/ non-Blocking/ Synchronous/ Asynchronous (0) | 2018.08.02 |
WebServer_2주차_웹서버 분류할 기준들에 대해 (0) | 2018.07.31 |
Transaction이란? (0) | 2018.07.28 |
WebServer는 JSP, Servlet에 대한 요청을 처리할 수 없을까? (0) | 2018.07.26 |