[데브코스] WIL 13

devlog·2024년 5월 28일
0

풀뎁코

목록 보기
13/14
post-thumbnail

📍오픈 소스 프로젝트

open source 오픈 소스

  • 공개되어 있는 소스 코드
  • 검사(리뷰), 수정 등 개선 사항을 펼칠 수 있는 소스 코드
    - e.g. react, node.js, APache, Bootstrap

오픈소스 라이선스

  • 오픈 소스로 배포, 준비, 공개된 소스 코드를 사용할 때 지켜야 하는 규칙 등을 명시하는 것
  • 하나의 오픈 소스에 여러개의 라이선스가 적용될 수 있음

오픈 소스 라이선스 종류

  • GPL
    • 어떤 목적, 형태로든 사용할 수 있지만, 사용/배포하는 경우에는 무조건 공개
    • FireFox, Linux, Git, MariaDB, WordPress
  • MIT
    • 라이센스 이름 명시
    • e.g. bootstrap, react, angular, jQuery
  • Apache
    • license.txt
    • 소스 코드에 대한 공개 의무 사항 없음
  • BSD
    • 라이선스 및 저작권 표시

오픈 소스 라이선스 표기 방법

  • 오픈 소스명
  • 공식 홈페이지 주소
  • 라이센스 종류, 이름
  • 라이센스 전문(공식문서, 문서)

오픈 소스 라이선스 적용 방법

  • 프로젝트 사용 시 → 깃허브 레포 Readme 또는 License.txt에 기재

오픈 소스 문서구조

  • 기본 문서
    • LICENSE.md/.txt - 오픈 소스 라이선스 전문 명시 문서
      • 오픈 소스 프로젝트 최상위 디렉토리
  • 추가 문서
    • README.md - 프로젝트 코드의 목적, 사용 방법 설명 문서
    • COPYRIGHT.txt - 저작권
    • NOTICE.txt - 오픈 소스 라이선스 개요
    • Contributing.md - 해당 프로젝트 기여 절차 안내
    • code of conduct - 오픈 소스 프로젝트에 참여하는 방법에 대한 표준

오픈 소스 구성원 역할

  • 저작자
    • 오픈 소스 프로젝트를 만든 사람/조직
  • 메인테이너
    • 프로젝트의 방향을 알고 관리하는 컨트리뷰터
  • 커미터
    • 컨트리뷰터의 컨트리뷰션을 리뷰하는 컨트리뷰터
    • 프로젝트에 반영 여부 결정 권한
  • 컨트리뷰터
    • 오픈 소스 프로젝트에 기여 활동을 하는 모든 사람
  • 사용자
    - 오픈 소스를 사용

컨트리뷰션 활동 유형

  • 버그 fix
  • 기능 추가, 수정, 삭제
  • 리팩토링
  • 테스트 케이스 추가
  • 오타 수정
  • 문서 작업
  • 배너 문구 수정 제안
  • UI/UX 제안

→ 코드를 수정하는 작업이 아니어도 컨트리뷰션이 될 수 있음

컨트리뷰션 주의 사항

  • 커뮤니케이션
  • 기능 추가 전 이슈 오픈이나 디스커션으로 작업을 알리고 시작해야 함
  • PR을 던질 때 템플릿이나 문서를 확인하며 준수할 내용 체크

컨트리뷰트 절차

  1. 오픈 소스 프로젝트를 Fork
  2. Fork해온 레포지토리를 로컬로 Clone
  3. 코드 컨벤션 확인
  4. 코드 구현, 수정 → 커밋
  5. 내 계정 깃허브 레포로 push
  6. 오픈 소스 프로젝트로 PR 요청
  7. Contributor License Agreement
  8. 검토
  9. merge

오픈소스 기여 장점

  • 협업 능력
  • 프로젝트 문해력
    • 기획, 설계, 구현~테스트, 유지보수, 리팩토리, 운영
  • 코드 분석
    • 언어의 특징, 인사이트
  • 개발 문화 속 성장 경험

오픈 소스

  • 사용 중인 오픈 소스 프로젝트에 추가 기능을 구현하여 PR 했을 때 반려 당한 경우
    - 오픈 소스 fork해서 별도의 프로젝트로 직접 운영
    - 기존 프로젝트 라이선스 지키기

오픈 소스 저작자 체크리스트

  • Readme
    • 프로젝트 만든 목적, 사용 용도
    • 코드 사용 방법, 설치 방법
  • Contributing
  • LICENSE
  • 중복되지 않는 명확한 프로젝트 이름
    • is-null-or-not
  • 코드
    - 클린 코드, 주석, 데드 코드 정리, 민감 정보 제외

오픈 소스 사용 시 체크리스트

  • 오픈 소스 사용 전

    1. 오픈 소스에 대한 사전 기능 및 보안성 테스트
      • 기능, 보안성, 이슈 현황 파악
      • 취약점 확인, 기관에 검토 요청
    2. 라이선스 검토
  • 오픈 소스 사용 중

    1. 취약점 최소화
      • 인증, 주요 기능 보안 강화
    2. 대체 수단 확보
      • 예외, 법적 이슈 발생에 대비하기
    3. 자체 대응 및 추가 개발 역량 확보
      • 충분한 이해, 기술력
  • 개발 후

    1. 모니터링
      • 오픈 소스 현황, 취약점 업데이트 확인
    2. 오픈 소스 보안 패치 적용
    3. 오픈 소스 종속성 검사
    4. 기능 및 보안성 테스트

0개의 댓글