160326_오픈소스 이야기 (이민석교수님강의)



2016년 3월 26일 

오픈소스 소프트웨어 개발자 포럼에서 진행하는 고등학생 대상 git/github 강연에 참석했다.



어려워서 잘 따라가지 못했지만

오픈 소스 철학을 알 수 있어서 너무 좋았다.

아래는 이민석 교수님의 '오픈소스' 강의 요약본이다.

원본 자료는 : http://hl1itj.tistory.com/118

위 링크에 있다(공유해주신 이민석 교수님 고맙습니다) 



텍스트보다는 

영상으로 직접보면 나을 듯하다. 

영상까지 공유 허락해주신 교수님의 쿨하심!!


오픈 소스 대박이다!!













<개요>


오픈소스가 없으면 세상이 움직이지 않는다.


요즘에는 회사가 시작할 때 오픈 소스로도 시작한다.


<왜 오픈 소스인가?>


  1. No Vendor Lock-in : 특정 벤더(업체)에 내가 운영하고 있는 시스템이 묶이지 않는다.
  2. OSS 자체적인 Bussiness 모델로서의 가치
  3. 핵심 역량을 발휘할 수 있는 부분에 집중 (다른 참여자/커뮤니티와 함께 역할분담, 동반성장 )
  4. 나 스스로 또는 외부에 대한 긍정적인 메시지(오픈 소스로 만들면 착해보인다)
  5. [개발자 개인에게 가장 중요한 것!] 인력 양성/리크루팅의 기회  (선수들이 인정한 선수들이 커뮤니티에 있음 / 취업전에 역량을 인정받을 거의 유일한 방법)


<오픈 소스에 대한 중요한 오해>


  1. 소스가 공개되어 있기 때문에 보안에 취약하다? : 보안상 문제가 아주 빨리 해결된다.  반면에 대기업의 문제는 대기업이 말해주기 전까지는 말해주지 않는다.
  2. 오픈소스를 쓰면 회사의 기술 자산이 외부에 노출된다? : 이것은 라이센쓰의 문제다. 언제나 사실은 아니다. 공개 여부를 결정할 수 있다.
  3. 오픈소스를 쓰고 수정한 부분은 공개하지 않는 것이 좋다? : 내가 수정본을 공개하지 않으면 다음 번에 수정하고 개정한 부분은 다음에 일을 할 때 시간/돈을 절약할 수 있도록 공개한다.


<이런 조직이 오픈 소스 소프트웨어 조직>
  1. 뭔가가 땡길 때, 오픈 소스를 먼저 생각합니다.
  2. 개발자들이 커뮤니티에 나가 우리 기술과 로드맵을 설명합니다.
  3. 우리 개발자들을 기다리는 커뮤니티가 있습니다.
  4. 초보 커뮤니티 개발자들의 참여를 위해 노력합니다.
  5. 커뮤니티 개발자들의 기여를 언제나 존중합니다.
  6. 오픈소스 소프트웨어 저작권을 존중합니다.
  7. 진짜 오픈을 합니다.


<OSS 라이센스>


  • 복잡한 법적인 이슈는 변호사에게..
  • OSS 라이선스는 기본적으로
    • 소프트웨어의 사용을 장려하기 위한 문서
    • 참여자들의 (경제적 또는 비경제적)이익의 최대가 되는 합의
      • 코드 자산, 특허, 상표권
    • 공유와 선신에 대한 예의
      • Reputation, 원본 소스의 존중 : 자뻑을 쌍으로 한다!
    • 저작자의 오픈소스에 관한 철학의 존중
      • 파생물의 공개 조건


리차드 스톨먼 (MIT) : 소프트웨어는 지식의 영역이다.


<오픈소스 라이선스 통계>


<오픈소스 관련 사이트>
  • 위키피디아 : 오픈소스 정리 Wikipedia: List of Open Source Software
  • openhub.net


선수의 반열에 오르려면..
열정/진정성 + 자세/영어/소통/기술/문화/시간


내가 하고 있는 것을 몰라야 한다(열정)
내가 하고 있다가 날이 새는 것을 보면(몰입)


<어떻게 해야할 까?>


두 가지 쉬운 작전
1 . 관심있는 (자주 쓰는 )프로젝트를 선정
  • 열심히 써본다.
  • 메뉴얼 사용팁을 만든다.
  • 크고 작은 문제를 발견하고 보고한다.
  • 해당부분 소스를 수정하여 고친다.
  • 새로운 기능을 추가한다.
2. 발전 가능성이 있는 프로젝트를 선정
  • 한글을 지원한다.
  • 다른 프로젝트와 엮어본다.
  • 새로운 기능을 제안하고 추가한다.


<더 멋진 작전>


남들이 안하는 남들보다 훌륭한 멋진 것을 만든다.
이미 성공한 프로젝트에 묻어간다.
열나게 홍보한다.


<Open은 언제나 적극적인 Open을 의미>
오픈소스의 장점을 살리기 위해서는 처음부터 적극적 공개(의사결정 과정, 문서, 소스) 즉 내가 하고 있는 것을 모든 것을 공개해야 한다.


적극적인 오픈
내가 다 보여줘야 한다.
문서를 뭘 만들었는지 어떤 결정과정이 있었는지 보여주어야 한다.
모든 것을 공개해야 한다는 것이 모든 소스를 공개한다는 것은 의미하지 않는다.
(한정 기능, 영업비밀 은 노출 않음)


<Github?>


  • Git을 기반으로 하는 소프트웨어 프로젝트 관리 사이트
  • GITHUB과 git관계?
    • Git라는 Source Control 방법을 github이 사용할 뿐
  • Github를 쓴다는 것은
    • Source Control
    • Issue Tracking Control
    • 협업도구 (fork/pull request)
    • Statistics 등을 쓴다는 것
  • Repository Punch Card (컨트리트 화면에서)


<왜 오픈 소스인가?>


source{d}


어떤 사람의 일을 낱낱히 분석할 수 있다.


개발의 90%는 copy and paste 다


지금은 깃헙에 사람들이 다 가있어서 사람들이 모이지 않는다.



댓글