5. FAQ

Frequently Answered Questions

1.오픈소스 소프트웨어가 무엇인가요?

  • 오픈소스 소프트웨어란 저작권의 소유자가 소스코드를 공개하여 누구나 어떤 목적으로든(상업적인 목적, 교육적인 목적, .. etc)
    소프트웨어를 공부하고, 변경하고, 배포할 수 있는 권리를 제공하는 라이센스를 가진 소스코드 입니다.


2.오픈소스 소프트웨어는 상업적인 목적으로 사용될 수 있나요?

  • 물론입니다. 오픈소스는 열려있는 소프트웨어입니다.
    모든 오픈소스는 상업적인 목적으로 사용될 수 있고, 오픈소스의 정의는 이것을 보장합니다.
    오픈소스 소프트웨어를 판매 할 수도 있습니다.


3.사람들이 오픈소스 라이센스 프로그램을 사용하는 것을 제한할 수 있나요?

  • 제한할 수 없습니다. 어떤 목적으로든 오픈소스를 사용할 수 있는 자유는 오픈소스의 정의에 포함되어 있습니다.
  • 오픈소스 라이센스는 모두에게 자유를 줍니다. 이것은 오픈소스가 악한 용도로 사용되어도 제한할 수 없다는 것을 의미합니다.


4."Free Software"와 "Open source"는 같은건가요?

  • 다릅니다. 이 두용어는 거의 동일한 소프트웨어 범주에 대해 설명하지만, 근본적으로 다른 가치를 바탕으로 합니다.
    그러나 최근에는 FOSS(Free & Open Source Software)로 지칭되면서 두 용어가 가지는 특징을 포괄하는 방향으로 가고 있습니다.
  • "Free Software" 에서 'Free' 는 비용을 지불하지 않는다는 의미보다는 소스코드에 대한 변경 등의 접근 권한이 최초 제작자와 동일하게 누구에게나 주어진다는 의미가 더 강합니다.
    'Free' 라는 표현이 갖는 무비용이라는 인식을 바꾸기 위해 레이몬드는 Open Source 라는 표현을 사용하게 되었습니다.


5."Copyleft"와 "Oepn source"는 같은건가요?

  • "Copyleft"는 파생 저작물을 허용하는 라이센스를 의미하지만, 원래의 저작권과 동일한 라이센스를 사용해야 합니다.
    예를 들어 A라는 사람이 소프트웨어를 작성하고 GNU(Gnu's Not Unix) GPL(General Public License)에서 소프트웨어를 배포했을 때, B라는 사람이 이 소프트웨어를 수정하고 수정된 버전을 배포하려면 수정된 버전 또한 GNU GPL에서 라이센스를 받아야 합니다.
    이 두가지 버전은 모두 오픈 소스입니다.
  • 대부분의 "Copyleft license"는 "Open source"이지만 모든 "Open source license"가 "Copyleft"인 것은 아닙니다.
    "Open source license"가 "Copyleft"가 아닌 경우 해당 라이센스 하에 공개 된 소프트웨어는 독점적인(non-open source)라이센스를 포함하여 다른 라이센스 하에 배포 된 프로그램의 일부로 사용 될 수 있음을 의미합니다.
    이러한 라이센스를 "Permissive open source license"라고 합니다.


6.오픈소스 소프트웨어의 예시를 들어주세요.

대표적인 오픈소스 소프트웨어

  • Application software: 7-Zip, Eclipse, GIMP, Chromium, Blender, Open Office ..etc
  • Operating Systems: Android, Linux, FreeBSD, ReactOS, Haiku, FreeDOS ..etc
  • Programming Language: Perl, PHP, Python, Ruby, PHDL, Prolog
  • 이 외에도 다양한 오픈소스 소프트웨어가 있습니다.


7.오픈소스 소프트웨어의 조건에는 무엇이 있나요?

  • 재배포가 자유로워야 합니다.
  • 프로그램에는 소스 코드가 포함되어 있어야 하며 소스 코드 형태와 컴파일이 완료된 형태로 배포될 수 있어야 합니다.
  • 라이센스는 변경과 파생 작업이 가능해야 합니다. 원래의 소프트웨어 라이센스와 같은 조건 하에서 배포 되어야 합니다.
  • 라이센스는 어떤 개인이나 그룹에 차별을 두어서는 안됩니다.
  • 라이센스는 특정 분야에서 프로그램을 사용하는 것에 제한을 두어서는 됩니다.
  • 프로그램에 대한 권한은 프로그램이 재배포된 모든 곳에 적용되어야 합니다.
  • 라이센스는 다른 소프트웨어를 제한하면 안됩니다.
  • 라이센스는 기술 중립적이어야 합니다. 기술이나 인터페이스 스타일을 한정해서는 안됩니다.
  • 프로그램에 대한 권한은 특정 소프트웨어 배포판의 프로그램의 일부에 해당하면 안됩니다.


8.오픈소스 소포트웨어는 단점이 없나요?

  • 있습니다, 오픈소스 소프트웨어는 소스코드를 공개 하기 때문에 보안 취약점이 더 쉽게 발견 될 수 있습니다.
    또한 사유 소프트웨어보다 피드백이 느릴 수 있습니다.
    소프트웨어를 사용하다가 위기의 상황이 왔을 때 책임을 확실히 물을 곳이 없습니다.




9.실제로 인기가 많은 오픈소스 프로젝트에는 무엇이 있나요?

왼쪽부터 앵귤러 JS, Go 언어, 구글 I/O 2017 Android App 아이콘

  • '앵귤러JS'가 있습니다.
    '앵귤러JS'는 웹 어플리케이션 프레임워크로 개발과 테스트 환경을 단순화시킨 기술입니다. 앵귤러JS는 제이쿼리나 자바스크립트 UI 컴포턴트를 쉽게 재사용할 수 있는 것이 특징입니다. 앵귤러JS 프로젝트는 깃허브에 있는 모든 오픈소스 프로젝트를 기준으로 분석했을 때도 3번째로 높은 '스타'수를 가지고 있습니다.
  • '머티리얼 디자인 아이콘'이 있습니다.
    구글의 디자인 철학을 구현하기 위해 필요한 자료들이 포함되어 있는데, 이미지 파일뿐만 아니라 머티리얼 디자인의 원리와 목표, 개발자가 알아야 할 가이드라인도 함께 제공되고 있습니다.
    머티리얼 디자인에 적용된 구글의 오픈소스 폰트 '로보토'도 큰 인기를 끌고 있습니다.
  • '고 언어'가 있습니다. 고는 2009년 구글이 만든 프로그래밍 언어입니다.
    C언어의 대안 언어로도 평가되고 있습니다.
    복잡하게 작성하고 디버깅이 어려웠던 병렬처리가 고언어에서는 편한 방법으로 처리할 수 있습니다.
    아직 국내에서 고를 활용하는 사례는 적지만, 커뮤니티를 중심으로 한글 문서화 작업이 이루어지고 세미나도 열리고 있습니다.
    해외에는 고를 도입한 사례를 종종 볼 수 있습니다. 유튜브, 도커, 드롭바스 등에서도 고언어를 활용하고 있습니다.
  • '웹 스타터 키트'가 있습니다.
    웹 개발을 처음 시작하는 사람에게 제공하는 예제 소스입니다.
    이제 막 웹 개발에 입문하는 사람이라면 웹 스타트 키트를 자습서로 활용할 수 있습니다.
    구글이 어떤식으로 웹 개발을 진행하는지에 대한 기준도 알 수 있습니다.
  • '구글I/O 2017 Android APP'가 있습니다.
    '구글 I/O'는 구글의 연례 개발자 행사입니다.
    즉 컨퍼런스 참가자들에게 도움을 주는 앱입니다.
    이 소스에 대한 관심이 높은 이유는 무엇일까요?
    바로 구글이 만든 앱 가운데 가장 재활용을 하고 공부하기 좋기 때문입니다.
    구글도 GITHUB 페이지에 "만약 앱을 만드는 사람이 있다면 이 소스코드가 좋은 시작점을 알려줄 것"이라고 설명하고 있습니다.




10.오픈소스를 이용해서 성공한 기업을 알려주세요.

왼쪽부터 Google, FaceBook, Netflix, Kakao Talk 아이콘

  • 첫번째로 'Google'입니다. 세계 최대의 오픈소스 기업이며 900 여개 프로젝트로 2000만 라인의 소스를 공개 했습니다.
  • 두번째로는 'FaceBook'입니다. 200여개의 오픈소스 프로젝트를 제공하며, 1000만라인 이상의 소스를 공개 했습니다.
  • 세번째로는 'Netflix'입니다. BigData, 개발/빌드, 데이터 저장소 등의 분야에서 수 십여개의 프로젝트를 제공합니다.
  • 마지막으로 'Kakao Talk'입니다. S2 Graph. 아피치 재단의 오픈소스 인큐베이터 프로젝트에 채택되었으며 MongoD, OpenSSL, WebRTC등 오픈소스를 활용하여 주요 서비스를 개발하였습니다.
  • 이외에도 다양한 기업들이 있습니다.


11.우리는 왜 오픈소스를 사용해야 하나요?

  • 대내외 비즈니스 환경의 빠른 변화 때문입니다.
  • 비즈니스 환경의 변화에 맞춘 혁신적 IT 기술이 필요하기 떄문입니다.
    Mobile, SNS의 발달로 트래픽이 증가했고 과거의 IT 기술로 커버하기 힘든 상황입니다.
    새로운 요구사항을 빠르게 수용할 수 있는 기술이 필요해졌습니다.
  • 빅데이터, 클라우드 등 혁신적 신기술 떄문입니다.
  • 소수의 개발자들에 의해 비밀스럽게 관리되는 상용 소프트웨어보다 다수의 개발자/사용자가 참여하는 오픈소스가 기술 발전 속도가 월등히 빠르기 떄문입니다.
  • 중립적 플랫폼이 필요하기 떄문입니다. 시장 영향력이 큰 플랫폼이 특정 벤더에 종속적이게 되는 것을 방지해야 합니다.
  • 혁신적 기술의 발전에 유리하기 떄문입니다.


12.기업들이 오픈소스를 사용했을 때 얻는 이익이 있나요?

  • 경쟁 업체 대비 빠른 비즈니스 서비스 구현과 높은 품질을 통해 차별성을 얻을 수 있습니다.
  • 원하는 제품과 기술에 대한 협력의 장을 확보할 수 있습니다.
  • 중복 투자를 방지하고 표준화된 도입, 운영 절차를 통해 효율성을 향상 시킬 수 있습니다.


13.상용 소프트웨어와 오픈소스를 비교해주세요.

  • 상용 소프트웨어는 초기 도입비용과 유지보수 비용, 시스템 개선비용이 높습니다.
  • 오픈소스는 초기 도입비용과 유지보수 비용, 기능 추가 비용이 낮습니다.
  • 상용 소프트웨어의 소스코드는 기업비밀로 유지하는 반면, 오픈소스의 소스코드는 공개되며 라이센스 조건하에 자유롭게 배포되며 수정가능합니다.


14.오픈소스는 비즈니스 모델인가요?

  • 아닙니다. 자체적으로 시장을 형성할 수 없습니다. 그러나 간접적으로 가치를 생산 할 수는 있습니다. ex. 킨들 무료 배포 후 책을 판매


15.그러면 무조건 오픈소스가 상용 소프트웨어보다 나은건가요?

  • 아닙니다. 상용 소프트웨어를 선택하는 것이 더 유리한 경우도 있습니다. 예를 들면, 상용의 사용 방법이 훨씬 쉽거나 사실상의 표준이거나, 지원이나 기능이 더 풍부한 경우등이 있습니다.
  • 경우에 따른 선택이 중요합니다. 기능이나 호환성 같은 명확히 우수한 요건의 경우에는 상용을 선택하는 것이 더 유리합니다.


16. 오픈소스에 기여할려면 어떻게 해야하나요? 꼭 코드를 작성해야하나요?

  • 그렇지않습니다. 코드를 작성하는 것은 프로젝트의 일부분일 뿐입니다.
  • 프로젝트에 대한 워크샵이나 모임을 구성할 수 있습니다.
  • 프로젝트의 유용성을 개선하기 위해 레이아웃 구조를 조정하고, 일관된 디자인으로 수정할 수 있습니다.
  • 프로젝트를 사용하는 방법을 보여주는 예제 폴더를 만들 수 있습니다.
  • 프로젝트 문서를 번역 할 수있습니다.
  • 프로젝트에 대한 자습서를 만들 수 있습니다.
  • 토론게시판이나 대화 채널을 만들어 다른이들의 질문에 답해줄 수 있습니다.
  • 다른 사람이 제출한 코드를 검토해줄 수 있습니다.


17. 오픈소스를 공유하는 사이트가 있나요?

네. 오픈소스를 공유하는 사이트는 정말 많지만 몇가지만 예시로 들겠습니다.

http://www.codeguru.com/

  1. Codeguru code에 대한 tip과 trick에 대해 알 수 있습니다.
    그리고 참고할 수 있는 수천개의 기사와 코드가 있습니다.

http://www.codeproject.com/

  1. Code project 소프트웨어 개발자 및 디자인 개발자가 공동의 목표를 가지고, 서로 배우고 가르칩니다.
    전세계의 프로그래머들이 함께 모여 소스 코드를 학습하고, 자습서 및 지식을 무료로 공개하며 서로 학습을 돕습니다.

http://code.google.com/

  1. Google_Opensource 구글의 오픈소스(프로젝트)를 공개하고, 오픈소스를 어떻게 사용해야 하는지를 다룬 자습서가 있습니다.

http://opensource.org/

  1. Opensource Initiative OSI는 1998년에 결성된 비영리기관입니다.
    오픈소스란 무엇인지 정의하고, 라이센스를 만들었습니다.
    이곳에는 오픈소스 위키와 커뮤니티가 있고, 오픈소스에 대한 뉴스와 행사를 볼 수 있습니다.

  • http://sourceforge.net/

  • Sourceforge 소프트웨어 개발자들에게 오픈소스 프로젝트를 제어하고 관리하는 중앙 집중식 공간을 제공하는 웹기반 서비스입니다.
    소스코드 저장소, 버그추적, 문서용 위키, 개발자 및 사용자 메일 명단, 사용자 평가, 뉴스게시판 등을 제공합니다.

http://www.developer.com/open/

  1. developer 오픈소스 뿐만 아니라 각종 언어 및 디자인등 개발자에게 필요한 뉴스 및 자습서가 있습니다.

https://github.com/

  1. github 웹 기반 Git 또는 버전 관리 저장소 및 인터넷 호스팅 서비스입니다.
    Git의 모든 분산 버전 제어 및 SCM (소스 코드 관리) 기능을 제공하고 자체 기능을 추가합니다.
    버그 추적, 기능 요청, 작업 관리, 모든 프로젝트에 대한 위키와 같은 액세스 제어 및 여러 공동 작업 기능을 제공합니다.

results matching ""

    No results matching ""