* 프로그래머스, 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 5기 강의 수강 내용을 정리하는 포스팅.
* 원활한 내용 이해를 위해 수업에서 제시된 자료 이외에, 개인적으로 조사한 자료 등을 덧붙이고 있음.
1. 오픈소스 구성원 역할
개요
- 오픈소스 프로젝트에서 활동하는 주요 구성원(메인테이너, 컨트리뷰터, 사용자 등)의 역할과 책임을 살펴봅니다.
상세 내용
- 메인테이너(Maintainer): 프로젝트의 전반적인 방향을 결정하고, 기여(PR) 검토 및 승인, 릴리즈 등을 책임집니다.
- 컨트리뷰터(Contributor): 코드, 문서, 디자인, 번역 등 다양한 형태로 프로젝트에 기여합니다.
- 사용자(User): 프로젝트를 사용하는 모든 사람으로, 버그 보고나 개선 의견 제시를 통해 간접적으로 기여할 수 있습니다.
- 커뮤니티 참여자: 이슈 토론, Discussions, 밋업, 커뮤니티 활동을 통해 프로젝트 성장을 지원합니다.
2. 컨트리뷰터의 유형 구경하기 (feat. React)
개요
- React를 예시로, 다양한 형태의 기여 방식을 살펴봅니다.
상세 내용
- 코어 컨트리뷰터: React의 핵심 기능과 아키텍처를 개발·유지하는 주축 멤버들입니다.
- 라이브러리/도구 제작자: React 생태계를 확장하기 위해 서드파티 라이브러리, 유틸리티를 제작합니다.
- 문서/예제 기여자: 공식 문서, 튜토리얼, 예제 코드 등을 보완해 다른 개발자들이 React를 쉽게 배울 수 있도록 돕습니다.
- 커뮤니티 운영자: React 관련 밋업, 세미나, 온라인 포럼 등을 운영하면서 사용자를 연결합니다.
3. 컨트리뷰터의 유형 살펴보기
개요
- 오픈소스 프로젝트에 기여하는 사람들을 기여 형태에 따라 분류해봅니다.
상세 내용
- 코드 기여자: 기능 추가, 버그 수정 등 직접 코드를 작성하여 프로젝트 발전에 기여합니다.
- 디자인 기여자: UI/UX, 로고, 웹페이지 레이아웃 등 시각적 요소를 개선합니다.
- 문서 기여자: README, Wiki, 가이드 문서, 번역 등 글이나 다국어 자료를 보강합니다.
- 테스터/QA: 프로젝트를 테스트하고, 버그나 이슈를 발견해 보고합니다.
- 멘토/가이드: 초보 기여자에게 기여 방법을 안내하고, 코칭을 제공해 성장 지원합니다.
4. 컨트리뷰터 활동 이유
개요
- 컨트리뷰터들이 왜 시간을 들여 오픈소스 프로젝트에 기여하는지 동기와 장점을 설명합니다.
상세 내용
- 개인 역량 강화: 실제 프로젝트에서 문제 해결 능력과 코딩 스킬을 향상시킬 수 있습니다.
- 포트폴리오 구축: 오픈소스 기여 이력이 취업, 커리어 발전에 긍정적인 영향을 줍니다.
- 커뮤니티 기여: 지식과 경험을 공유함으로써 개발 생태계를 발전시키고, 인맥을 넓힐 수 있습니다.
- 협업 경험 축적: 다른 개발자들과의 협업 과정을 통해 팀워크와 커뮤니케이션 역량을 강화합니다.
5. 여기서 잠깐? 우리나라 컨트리뷰션에 관심있니? (feat. OSS)
개요
- 국내 개발 커뮤니티와 오픈소스 생태계를 소개하고, 참여 방법을 안내합니다.
상세 내용
- 국내 오픈소스 커뮤니티: 오픈소스 Korea, GDG, D2 등 다양한 조직과 모임을 통해 정보와 기회를 얻을 수 있습니다.
- 로컬 밋업/해커톤: 정기적으로 열리는 밋업, 세미나, 해커톤에 참가해 사람들과 교류하고 프로젝트를 찾을 수 있습니다.
- 국내 OSS 지원 프로그램: 기업이나 기관에서 오픈소스 프로젝트를 지원하거나 장학금을 제공하는 경우가 있습니다.
- 언어 장벽 극복: 한글 문서나 번역 기여 등을 통해 국내 개발자들이 쉽게 참여할 수 있는 생태계를 만듭니다.
6. 컨트리뷰터 주의 사항
개요
- 오픈소스 프로젝트에 기여할 때 숙지해야 할 기본 규칙과 주의점을 정리합니다.
상세 내용
- 라이선스 이해: 프로젝트의 라이선스 조건을 준수하고, 본인이 작성한 코드에도 해당 라이선스가 적용됨을 인지합니다.
- 코드 스타일/규칙 준수: ESLint, Prettier 등 프로젝트에서 지정한 코드 규칙을 지키는 것이 중요합니다.
- 기여 가이드 숙지: CONTRIBUTING.md, CODE_OF_CONDUCT.md 등을 미리 읽고 절차에 맞게 기여합니다.
- 커뮤니케이션 에티켓: 리뷰어와 다른 기여자에게 존중을 표하고, 협업 분위기를 해치지 않도록 합니다.
7. 쿠키 영상 - 어언 장벽
개요
- 오픈소스 프로젝트 기여 시 발생할 수 있는 언어 장벽에 대한 극복 방법을 다룹니다.
상세 내용
- 영어 문서 활용: 공식 문서나 가이드가 영어로 되어 있는 경우가 많으므로, 번역 툴을 적절히 사용하며 익숙해질 필요가 있습니다.
- 공개 토론: 이슈, PR 리뷰 등에서 영어가 주로 사용되지만, 핵심 요점을 정리해 친절하게 공유하는 습관이 중요합니다.
- 번역 기여: 오히려 언어 장벽을 느끼는 사람들을 위해 문서를 번역해 기여할 수 있습니다.
- 커뮤니티 지원: 슬랙, 디스코드 등에서 한국어 채널이 있는지 찾아보고, 언어 장벽을 줄이는 데 도움을 받을 수 있습니다.
8. 컨트리뷰터 절차 1
개요
- 오픈소스 프로젝트에 기여하는 기본 절차 중, 초기 단계(프로젝트 찾기, 포크 등)를 다룹니다.
상세 내용
- 프로젝트 선정: 관심 분야, 기술 스택, 커뮤니티 활성도 등을 고려해 기여할 프로젝트를 선택합니다.
- 포크(Fork): GitHub에서 원하는 리포지토리를 복제해 내 계정으로 가져와 작업을 시작합니다.
- 이슈 파악:
good first issue 라벨 등을 통해 난이도가 낮은 이슈부터 도전합니다.
- 개발 환경 세팅: 리포지토리를 클론(Clone)해 로컬에서 빌드 및 실행 환경을 설정합니다.
9. 컨트리뷰터 절차 2
개요
- 기여 과정의 후반부(개발 완료 후 PR 생성, 리뷰, 머지 등)에 대한 절차를 설명합니다.
상세 내용
- 새로운 브랜치 생성: 메인 브랜치를 건드리지 않고, 기능/버그 수정을 위한 브랜치를 만듭니다.
- 코드 작성 및 커밋: 프로젝트 스타일 가이드를 준수하며, 의미 있는 커밋 메시지를 작성합니다.
- Pull Request 생성: 변경 사항을 정리하고, 관련 이슈 번호(
fixes #이슈번호) 등을 연결해 제출합니다.
- 코드 리뷰 & 머지: 리뷰어의 피드백을 반영하고, 최종 승인 후 메인 브랜치에 머지합니다.