본문 바로가기
나의 개발일지/CS

기술 표준과 오픈소스, 오픈소스 라이센스

by stella_gu 2022. 8. 9.

▼ 기술 표준

 

· 표준 : 어떤 기술적 산물어떻게 만들어지고 어떻게 작동하도록 되어 있는지 명확하고 상세하게 기술한 것.

  • 국가적 기술 표준
  • 워드의 .doc / .docx 파일 포맷과 같이 공식적으로 정해지지는 않았지만 널리 사용되며 생겨난 '사실상의' 표준

 

▼ 국가적 기술 표준 예시

국가별 전압 표준

 

 

▼ 소프트웨어에서의 표준 예시

아스키코드와 유니코드
프로그래밍 언어
네트워크 통신 프로토콜

 

▼ 표준의 중요성

  1. 상호 운용성 (호환성) - 같은 기종 또는 다른 기종 간에 정보교환 및 처리를 가능하게 해줌.
  2. 비용 절감 - 제조업체, 벤더 등 사업자는 단위 생산·거래 비용을 줄일 수 있으며, 대량생산을 통해 규모의 경제(economy of scale)를 실현하는 것이 가능
  3. 무역 활성화, 해외시장 진출 -  WTO TBT 협정에 따라 국가 간 무역은 국제표준을 따르고 있으며, 이를 통해 기술 무역장벽 제거 및 국제 교역 활성화를 촉진
  4. 사용자 입장에선 선택의 자유도가 높아짐 - 통일된 형태의 결과물을 통해 제품의 이동을 편리하게 하고, 우수 경쟁체제를 통해 보다 나은 제품 및 서비스를 획득하는 것이 가능

 

 

 

 

 

 

 

▼ 오픈소스

 

· 오픈소스(오픈소스 소프트웨어, OSS) : 공개적으로 액세스할 수 있게 설계되어 누구나 자유롭게 사용, 변경, 배포할 수 있는 코드

  • 오픈소스 소프트웨어는 동료 평가(peer review) 와 커뮤니티 기반 프로덕션에 의지하므로, 분산된 동시에 협업 방식으로 개발됨
  • 단일 작성자 또는 기업이 아닌 커뮤니티가 개발하므로 독점적 소프트웨어보다 저렴하고, 유연하며, 지속적
  • 대부분의 오픈소스 프로젝트는 GitHub에서 호스팅되며, 레포지토리에 액세스하거나 커뮤니티 프로젝트에 참여할 수 있음
  • 오픈소스로 만들어진 라이브러리나 프레임워크에 기여할 수도 있고, 번역 작업에 기여할 수도 있으며 다양한 방식으로 참여 가능
  • 예) javascript-tutorial의 한국어 번역

 

 

· GNU('GNU's Not Unix) 프로젝트

  • 과거에는 대부분의 프로그램의 소스 코드에 접근할 수 없어, 프로그램을 고치거나 개선할 수 없다는 점에 불만을 가진 리처드 스톨만(Richard Stallman)이 시작한 프로젝트(프리 소프트웨어 운동의 공식적 시작)로, 오픈소스 지원을 위해 자유 소프트웨어 재단(Free Software Foundation)을 만듦
  • 목적 : 운영체제와 프로그래밍 언어용 컴파일러 같은 중요한 소프트웨어 시스템의 무료 공개 버전을 만드는 것
  • 자유롭게 사용 가능 but 외부 배포 시 소프트웨어의 전체 코드를 공개해야 함.

 

오픈소스 소프트웨어 !== 프리 소프트웨어

 

→ 오픈소스를 사용하여 개발하기 전 라이센스 확인을 꼭 하자!

 

▼ 대표적 오픈소스 라이센스

  1. MIT (MIT License)
    • MIT에서 소프트웨어 공학도를 위해 만든 라이센스
    • 무상으로 사용가능 but 저작권 표시를 모든 복제물 or 중요한 부분에 기재해야 함.
    • 복사, 수정, 배포가 자유롭고 소스 공개가 필요 없음
    • 배포 시 저작권 안내 문구, MIT 라이센스 문구가 모든 복제본에 반드시 포함되어야 함.
    • 대표적으로 Bootstrap, jQuery, React, Vue.js 등이 MIT 라이센스를 채택
  2. BSD (Berkeley Software Distribution)
    • 미국 정부에서 제공하는 재원으로 운영되는 라이센스
    • 소스 코드를 공개하지 않아도 됨
    • 새로운 프로그램의 소스 코드를 공개하지 않고 BSD가 아닌 다른 라이센스를 적용해서 판매할 수도 있음
    • 재배포 시에는 저작권 표시, 준수 조건 및 보증 부인에 대한 고지사항을 소스 코드 또는 문서 및 기타 자료에 반드시 포함시켜야 함.
    • 대표적으로 삼성의 Tizen이 이에 해당
  3. GPLv2 (General Public License)
    • 자유 소프트웨어 재단(FSF)에서 만든 라이센스
    • 자유롭게 사용 가능 but 외부 배포 시 무조건 전체 코드를 공개해야 함.
    • 수정 후 재배포 시 추가/수정한 부분에 대해서도 라이센스를 적용하고, 수정 사항에 대한 고지를 반드시 포함해야 함.
    • 대표적으로 Git, 마리아DB, 워드프레스, 파이어폭스(2.0)이 있음.
  4. LGPLv2 (Lesser General Public License)
    • GPLv2에 비해 조금 약화된 라이센스
    • LGPLv2 라이센스를 사용하는 소프트웨어를 동적 링크로 사용 시 전체 코드를 공개하지 않고 사용된 오픈 소스 라이브러리에 대한 소스코드만 공개하면 됨
    • 단, 정적 링크 형태로 사용 시 수정코드를 포함한 라이브러리의 소스코드와 응용프로그램의 오브젝트 코드에 대한 공개 의무 발생
    • 대표적으로 파이어폭스(v2.1) 등이 있음
  5. 아파치 (Apache) 2.0
    • 아파치 소프트웨어 재단에서 만든 라이센스
    • 소스코드 공개에 대한 의무사항은 없지만 아파치 라이센스 소스코드를 수정하고 배포할 때에는 아파치 소프트웨어라는 사실을 명시해야 함
    • 단, 개발자가 그 소프트웨어의 사용자에게 특허권을 행사할 수 없음
    • 대표적으로 안드로이드, 하둡(Hadoop) 등이 있음

 

 

 

 

 

 

 

 

[참고] 1일 1로그 100일 완성 IT지식

 

1일 1로그 100일 완성 IT 지식

복잡한 IT 세상을 선명하게 읽는 디지털 문해력 기르기 챌린지. 컴퓨팅의 4가지 핵심 분야인 하드웨어, 소프트웨어, 통신, 데이터를 이해하면 어떤 복잡한 디지털 시스템이라도 잘게 쪼개 비즈니

www.aladin.co.kr

[참고] 개발자가 되기 위해 꼭 알아야 하는 IT 용어

 

개발자가 되기 위해 꼭 알아야 하는 IT 용어

개발을 처음 시작하는 입장에서 가장 어려운 것은 무엇일까? 바로, 공부하는 도중에 불쑥 튀어나오는 개발 전문 용어들이다. 이러한 고충을 알기에 유튜브 개발자의품격을 통해 21명의 초보 개

www.aladin.co.kr