Day 59 - 오픈소스 배포하기, 강의 맺음말

이유승·2025년 3월 2일

* 프로그래머스, 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 5기 강의 수강 내용을 정리하는 포스팅.

* 원활한 내용 이해를 위해 수업에서 제시된 자료 이외에, 개인적으로 조사한 자료 등을 덧붙이고 있음.

📚 오픈소스 배포하기

📁 npm에 오픈소스 라이브러리 배포하기

📌 npm을 통한 오픈소스 배포

  • npm은 JavaScript 패키지를 배포할 수 있는 대표적인 패키지 관리자이다.
  • 라이브러리를 npm에 배포하려면 먼저 npm 계정을 생성해야 한다.

🔗 npm 공식 사이트

🛠 npm 배포 과정

npm 가입

  • npm 공식 사이트에서 회원가입 진행
  • 터미널에서 로그인
npm login

package.json 생성

  • 라이브러리의 기본 정보를 포함하는 설정 파일
  • npm init 명령어를 사용하여 절차에 따라 작성 가능
  • 주요 필드:
    - keywords: 해시태그처럼 기능하여 검색 최적화
    - homepage: 라이브러리 공식 홈페이지 URL
    - repository: GitHub 등의 저장소 정보

배포 시 제외할 파일 설정

  • .npmignore 파일을 추가하여 특정 파일을 npm 배포에서 제외 가능
  • 기본적으로 node_modules/ 폴더는 무시됨
  • .gitignore에도 node_modules 추가 필수

배포 전 로그인 및 확인

npm whoami
  • 현재 로그인된 계정 확인

패키지 배포

npm publish
  • 실행하면 package.json 정보에 따라 패키지가 npm에 업로드됨

📌 배포 시 버전 변경 및 관리

🔹 버전 변경 및 설정

버전 확인 및 업데이트

npm version patch  # 패치 버전 증가
npm version minor  # 마이너 버전 증가
npm version major  # 메이저 버전 증가
  • --force 또는 --no-git-tag-version 옵션을 추가하여 강제 적용 가능

버전 정책 (Semantic Versioning)

v1.0.4  (major.minor.patch)
  • Major: 하위 호환이 되지 않는 변경 사항
  • Minor: 하위 호환이 되는 기능 추가
  • Patch: 간단한 버그 수정

📌 npm 패키지 유지 및 관리

퍼블리시 접근 보안

  • 패키지를 관리할 Maintainer 초대 가능
  • 패키지 배포 접근 권한 설정 가능

패키지 삭제 (Unpublish)

npm unpublish <package_name>@<version>
  • 배포 후 72시간 이내에만 삭제 가능
  • 삭제 후 24시간 동안 재배포 불가능
  • 삭제 조건:
    - 협업자(Collaborator)가 없어야 함
    - 최근 1주간 다운로드 횟수가 300회 이하
    - 다른 패키지에서 의존성을 가지고 있지 않아야 함

버전 비활성화 (Deprecate)

npm deprecate <package_name>@<version> "이 버전은 사용하지 마세요"
  • 특정 버전을 더 이상 사용하지 않도록 표시

📚 오픈소스 프로젝트 강의 나가는 말

📁 강의 마무리

📌 오픈소스 프로젝트 기여 시 주의점

  • 연습용 PR은 본인 저장소에서만 진행해야 한다.
  • 실무에서 운영 중인 오픈소스 프로젝트에 PR 연습을 하면 안 됨
  • (예: Express.js 프로젝트에서 PR 스팸으로 인해 문제가 발생했던 사례)

📌 오픈소스 기여 마인드셋

  • 쉬운 난이도부터 시작하여 성공 경험을 쌓고 점진적으로 도전 과제에 도전하자.
  • 오픈소스 기여는 기여 여부보다 기여 과정에서 배우는 것이 중요하다.
  • 기여 과정에서 얻을 수 있는 경험이 개발자로서의 성장에 큰 도움이 된다.

🚀 이제 직접 오픈소스 프로젝트에 기여하며 실전 경험을 쌓아보자!


profile
프론트엔드 개발자를 준비하고 있습니다.

0개의 댓글