728x90
반응형

npm, bun, deno, brew : 패키지 관리

1. 소개

  • 개발을 하다 보면 패키지 관리 및 실행 환경을 설정해야 하는 경우가 많습니다.
  • 특히 JavaScriptTypeScript 개발자라면 npm, bun, deno 같은 도구를 접하게 되고, macOSLinux 사용자라면 brew를 자주 사용하게 됩니다.
  • 이 글에서는 npm, bun, deno, brew의 공통점과 차이점을 비교하고, 각각의 사용법을 간단한 예제와 함께 살펴보겠습니다.


2. 공통점

  1. 패키지 및 실행 환경 관리

    • 네 도구 모두 패키지를 관리하거나 실행 환경을 제공합니다.
  2. CLI(Command Line Interface) 기반

    • 터미널에서 명령어를 입력하여 사용합니다.
  3. 오픈 소스 프로젝트

    • 모두 오픈 소스로 개발되어 누구나 사용할 수 있습니다.


3. 차이점 및 사용 예제

  • 도구 주요 역할 언어 특징
    npm Node.js 패키지 관리 JavaScript Node.js의 기본 패키지 매니저, package.json 사용
    bun 실행기 + 패키지 관리 JavaScript/TypeScript 빠른 실행 속도, npm 대체 가능, 빌드/번들링 기능 포함
    deno 런타임 (Node.js 대체) JavaScript/TypeScript 보안 강화, npm 패키지 지원, 내장 테스트/포맷터 제공
    brew 패키지 관리자 다수 macOS/Linux용 소프트웨어 설치 및 관리


1) npm (Node Package Manager)

역할

  • Node.js 패키지 설치, 관리, 실행

사용 예제

  • sh

      # npm 초기화
      npm init -y
    
      # express 패키지 설치
      npm install express
    
      # 프로젝트 실행 (예: index.js 파일)
      node index.js
    


2) bun

역할

  • JavaScript/TypeScript 실행기, npm 대체 패키지 관리자, 빌드 도구

사용 예제

  • sh

      # bun 초기화
      bun init
      
      # express 설치 (npm보다 빠름)
      bun add express
      
      # 파일 실행 (예: index.ts 파일)
      bun index.ts
    


3) deno

역할

  • 보안이 강화된 JavaScript/TypeScript 런타임
  • Node.js와 달리 package.json 없이 URL 기반 패키지 관리

사용 예제

  • sh

      # Deno로 간단한 서버 실행
      deno run --allow-net https://deno.land/std/http/file_server.ts
    

  • sh

      # Deno에서 npm 패키지 사용
      deno run --allow-net --allow-read app.ts
    

  • (app.ts 파일 내부)

  • ts

      import express from "npm:express";
      const app = express();
      app.get("/", (req, res) => res.send("Hello from Deno!"));
      app.listen(3000);
    


4) brew (Homebrew)

역할

  • macOS/Linux에서 소프트웨어 및 패키지 관리

사용 예제

  • sh

      # brew 설치
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
      
      # git 설치
      brew install git
      
      # 설치된 패키지 목록 확인
      brew list
    


4. 정리

  • npmJavaScript 패키지 관리의 표준이며, bun은 이를 빠르게 대체하려는 시도를 하고 있습니다.
  • deno는 보안을 강화하고 URL 기반 패키지 관리를 지원하는 대안적인 JavaScript/TypeScript 실행 환경입니다.
  • brewmacOS/Linux의 소프트웨어 패키지 관리 도구로, Node.js 및 기타 개발 도구를 쉽게 설치할 수 있도록 도와줍니다.



  • 도움이 되셨으면 하단의 ❤️ 공감 버튼 부탁 드립니다. 감사합니다! 😄

728x90
반응형

+ Recent posts