본문 바로가기
개발일지/기타

[오픈소스] 오픈소스는 어디서부터 봐야할까?

by Peter.JH 2024. 7. 1.
728x90
반응형

!! 다른 좋은 방법이 있다면 공유해 주세요!!!

 

 

STEP 1: README

 

우선 README을 읽어봐야 합니다. 오픈소스의 큰 맥락을 이해할 수 있습니다. 

README 중 기여가이드가 있습니다. 아래는 Node.jsCONTRIBUTING.md에 대한 내용입니다.

 



1. 기여의 유형

Node.js 프로젝트에 기여할 수 있는 다양한 방법이 있습니다. 코드 작성뿐만 아니라 다음과 같은 활동도 포함됩니다:
- 문서화
- 사용자 질문에 답변
- 프로젝트 인프라 관리
- Node.js 사용자들을 위한 옹호 활동

모든 기여는 환영받으며, 기여의 크기와 관계없이 모두 가치가 있습니다.

2. 오픈 거버넌스 모델
Node.js 프로젝트는 오픈 거버넌스 모델을 사용합니다. 이는 기여자들이 협력하여 프로젝트를 관리하고 발전시킨다는 것을 의미합니다. 중요한 기여를 하는 사람들은 Collaborator로 인정받아 프로젝트에 대한 커밋 권한을 부여받습니다. 더 자세한 내용은 [GOVERNANCE.md](./GOVERNANCE.md) 문서를 참조하세요.

3. 목차
CONTRIBUTING.md 파일은 다음과 같은 주요 섹션으로 구성되어 있습니다:
- [Code of Conduct](#code-of-conduct)
- [Issues](#issues)
- [Pull Requests](#pull-requests)
- [Developer's Certificate of Origin 1.1](#developers-certificate-of-origin-11)

4. Code of Conduct
모든 기여자는 [Code of Conduct](./doc/contributing/code-of-conduct.md)를 준수해야 합니다. 이는 프로젝트 내에서 모든 기여자들이 존중받고 안전한 환경에서 일할 수 있도록 보장합니다. 세부 사항은 [Code of Conduct 정책](./doc/contributing/code-of-conduct.md)에서 확인할 수 있습니다.

5. Issues
이 섹션에서는 이슈를 생성하고 관리하는 방법을 다룹니다:
- [Asking for General Help](./doc/contributing/issues.md#asking-for-general-help): 일반적인 도움을 요청하는 방법
- [Discussing non-technical topics](./doc/contributing/issues.md#discussing-non-technical-topics): 비기술적 주제를 논의하는 방법
- [Submitting a Bug Report](./doc/contributing/issues.md#submitting-a-bug-report): 버그 보고서를 제출하는 방법
- [Triaging a Bug Report](./doc/contributing/issues.md#triaging-a-bug-report): 버그 보고서를 분류하는 방법

6. Pull Requests
Pull Request는 코드, 문서, 종속성, 도구 등을 변경하는 방법입니다. 이 섹션에서는 다음과 같은 내용을 다룹니다:
- [Dependencies](./doc/contributing/pull-requests.md#dependencies): 종속성 관리
- [Setting up your local environment](./doc/contributing/pull-requests.md#setting-up-your-local-environment): 로컬 개발 환경 설정
- [The Process of Making Changes](./doc/contributing/pull-requests.md#the-process-of-making-changes): 변경 사항을 만드는 과정
- [Reviewing Pull Requests](./doc/contributing/pull-requests.md#reviewing-pull-requests): Pull Request 검토
- [Notes](./doc/contributing/pull-requests.md#notes): 추가 참고 사항

7. Developer's Certificate of Origin 1.1
기여자가 프로젝트에 기여할 때 준수해야 할 인증서입니다. 이 인증서는 기여자가 기여한 내용이 자신에 의해 작성되었거나 적절한 오픈 소스 라이선스에 따라 제출할 권리가 있음을 확인합니다. 주요 내용은 다음과 같습니다:
- 기여한 내용이 본인에 의해 작성되었거나
- 이전 작업을 기반으로 하여 적절한 오픈 소스 라이선스에 따라 수정되었음을 확인
- 다른 사람이 제공한 내용을 수정하지 않고 그대로 제출함
- 기여 내용이 공개되며, 기여 기록이 영구적으로 유지되고 재배포될 수 있음을 이해함

 

 

STEP 2: Makefile (package.json)

 

 

다음으로 package.json 파일을 확인해 엔트리 코드를 보려고 했습니다만 Node.js에는 package.json 파일이 없습니다. 따라서 "Makefile"을 봐야 합니다. 

 

Node.js의 빌드 시작점은 주로 `configure` 스크립트를 실행하는 것에서부터 시작됩니다. 이 스크립트는 빌드 환경을 설정하고, 필요한 도구와 의존성이 시스템에 존재하는지 검사합니다. 그 후, `Makefile`을 사용하여 빌드, 테스트 및 설치 과정을 관리합니다.

Node.js 빌드 과정 시작점

1. configure 스크립트 실행
   - 빌드 환경을 설정하기 위해 첫 번째로 실행되는 스크립트입니다. 
   - 적절한 Python 버전을 찾고 필요한 환경 변수를 설정합니다.

   ```bash
   ./configure
   ```

2. Makefile 사용
   - `configure` 스크립트 실행 후, `Makefile`이 빌드 과정을 관리합니다.
   - `Makefile`은 다양한 빌드 옵션(`make all`, `make test` 등)을 제공하여 Node.js를 컴파일하고 테스트합니다.

   ```bash
   make
   make test
   ```

Node.js의 주요 빌드 명령어와 옵션

- `make`: 기본 빌드 명령어로, 소스 코드를 컴파일하여 실행 파일을 생성합니다.
- `make install`: 빌드한 Node.js를 시스템에 설치합니다.
- `make test`: Node.js와 함께 제공되는 테스트 스위트를 실행하여 모든 기능이 제대로 작동하는지 확인합니다.

Node.js의 CI/CD 통합

`Makefile`은 또한 지속적 통합(CI) 및 지속적 배포(CD) 환경에서 사용될 수 있도록 설정되어 있습니다. 예를 들어, Jenkins, Travis CI, GitHub Actions 등의 플랫폼에서 빌드 및 테스트 자동화를 설정할 때 `Makefile` 내의 명령어와 타겟을 사용할 수 있습니다.

 


Node.js의 빌드 및 관리 시작점은 `configure` 스크립트와 `Makefile`을 통해 설정되며, 이들은 프로젝트의 빌드, 테스트 및 배포 과정을 중앙에서 관리하는 중요한 역할을 합니다. 

728x90
반응형

'개발일지 > 기타' 카테고리의 다른 글

Node.js의 내부 작동 방식을 이해하기  (2) 2024.08.17
Node.js의 내부 구조를 이해하기  (0) 2024.08.16
시간복잡도와 공간복잡도  (0) 2024.06.01
DOCKER  (0) 2024.02.03
node 21 WSL 문제  (1) 2024.01.16