K_blueprint

BUN 본문

도구 & 정보 정리

BUN

GODAGO 2023. 11. 15. 01:10
728x90
반응형

BUN의 로고

● BUN이란?

  • Node.js 또는 Deno와 같은 자바스크립트 런타임 패키지 관리자(실행환경)
  • '빠른 시작', '빠른 실행 성능', '응집적인 DX'라는 세 가지 사항에 초점을 두고 만들어진 브라우저에서 작동하는 경량 JavaScript 라이브러리
  • 노드의 Drop-in replacement 구조로 설계되어 어떠한 설정을 변경할 필요 없이 바로 노드 앱을 bun에서 실행시킬 수 있다. 
  • 일반적으로 웹 개발 / 모바일 앱 개발 / 데이터 시각화 등에 사용된다.
  • Bun의 설계 목적 
    1. 빠른 시작
      • Cold start시간을 중점적으로 만든 엣지 컴퓨팅으로 시작속도를 향상시킨다.
    2. 빠른 실행 속도
      • Safari에서 사용하는 성능 중심의 JS엔진인 JavaScript core를 사용해서 빠른 실행 속도를 보장한다.
    3. 일관된 DX(쉽게 말해 '개발자 경험')
      • 번들러, 변환기 및 패키지 관리자를 기본으로 포함하고 있어 개발환경으로 적합하다.
  • BUN의 특징
    1. 간결하고 가벼운 크기 
      • 작은 크기로 다운로드가 가능하며 사용하기 쉽다.
    2. 호환성
      • 다양한 프레임 워크와 라이브러리 호환이 가능하다.
    3. 유연한 문법
      • 'ECMAscript6'의 문법과 함께 사용 시 효율적으로 개발이 가능하다.
    4. 속도
      • V8 엔진을 사용하는 기존의 Node.js, Deno와는 달리 WebKit의 JavaScriptcore를 기반으로 구축이 되었다.
      • 일반적인 언어(ex.C, C++ 등)와는 달리 시스템 하드웨어에서 읽을 수 있는 저수준 프로그래밍 언어인 'ZIG'로 작성이 되어 작업을 빠르게 처리할 수 있다.
  • BUN의 기능
    1. DOM 조작
      • 쉬운 DOM 조작을 위한 메서드를 제공한다.
    2. Ajax 요청
      • 서버와의 통신을 위한 간편한 Ajax 메서드를 제공한다.
    3. 이벤트 처리
      • 이벤트 핸들링을 쉽게 할 수 있는 기능을 제공한다.
  • BUN의 속도비교(feat. NPM)
    • 'pnpm', 'npm', 'yarn'과 비교했을 때 Remix 프로그램 하나를 생성하는데 들어가는 시간과 속도가 압도적으로 BUN이 우세하다.(NPM과 비교했을 때 약 30배가량 빠른 속도를 가지고 있다.)
    • 파일 읽기의 경우 Node.js와 비교하여 약 10배의 속도차이가 발생한다.
  • 그럼 기존의 Node.js나 Deno도 있는데 단순히 속도 때문에 BUN을 사용하는 걸까?

- BUN이 출시되기 전 V8 자바스크립트 엔진 및 러스트 프로그래밍 언어 기반의 자바스크립트용 런타임인 Deno라는 것이 존재했었고 심지어는 Node.js의 대체품이라고도 불리기도 했지만 'Deno에 비해 약 2개가량 빠른 속도', '쉬운 문법', Node.js와 원활한 호환'이라는 강점을 가지고 있는 'BUN'이 나오게 되면서 기존에 Deno에 많은 관심을 두고 있던 사용자들이 BUN에게 폭발적인 관심을 가지게 되었다.

 

+ 로컬 호스트 환경 내에서 Node.js와 BUN 서버를 express 프레임 워크를 사용하여 실행했을 때 Latency의 평균이 약 2배 정도 차이가 나는 결과가 나왔다.(Latency : 서버의 응답까지 걸리는 시간)

 

  • BUN의 장/단점
    • ( 장 점 )
      1. 빠른 작업 속도
      2. 효율적으로 개발이 가능(단순한 런타임이 아닌 '패키지 관리자', '테스트 러너'등의 역할을 동시 수행)
      3. Node.js와 확장성이 좋다.(Node.js의 모듈 알고리즘을 그대로 구현)
    • ( 단 점 )
      1. 윈도우용 BUN 프로그램이 아직 미완성 단계(23.11.15 기준)
      2. BUN과 제대로 호환이 되지 않는 라이브러리, 프레임 워크들이 아직까지는 많이 존재한다.
728x90
반응형

'도구 & 정보 정리' 카테고리의 다른 글

'000webhost'를 사용한 무료 웹 호스팅 해보기  (2) 2023.12.29
Naver API의 사용법  (4) 2023.11.28
IIS(Internet Information Service)  (0) 2023.11.14
Tomcat  (0) 2023.11.14
NginX & Apache  (0) 2023.11.14