K_blueprint
BUN 본문
728x90
반응형
● BUN이란?
- Node.js 또는 Deno와 같은 자바스크립트 런타임 패키지 관리자(실행환경)
- '빠른 시작', '빠른 실행 성능', '응집적인 DX'라는 세 가지 사항에 초점을 두고 만들어진 브라우저에서 작동하는 경량 JavaScript 라이브러리
- 노드의 Drop-in replacement 구조로 설계되어 어떠한 설정을 변경할 필요 없이 바로 노드 앱을 bun에서 실행시킬 수 있다.
- 일반적으로 웹 개발 / 모바일 앱 개발 / 데이터 시각화 등에 사용된다.
- Bun의 설계 목적
- 빠른 시작
- Cold start시간을 중점적으로 만든 엣지 컴퓨팅으로 시작속도를 향상시킨다.
- 빠른 실행 속도
- Safari에서 사용하는 성능 중심의 JS엔진인 JavaScript core를 사용해서 빠른 실행 속도를 보장한다.
- 일관된 DX(쉽게 말해 '개발자 경험')
- 번들러, 변환기 및 패키지 관리자를 기본으로 포함하고 있어 개발환경으로 적합하다.
- 빠른 시작
- BUN의 특징
- 간결하고 가벼운 크기
- 작은 크기로 다운로드가 가능하며 사용하기 쉽다.
- 호환성
- 다양한 프레임 워크와 라이브러리 호환이 가능하다.
- 유연한 문법
- 'ECMAscript6'의 문법과 함께 사용 시 효율적으로 개발이 가능하다.
- 속도
- V8 엔진을 사용하는 기존의 Node.js, Deno와는 달리 WebKit의 JavaScriptcore를 기반으로 구축이 되었다.
- 일반적인 언어(ex.C, C++ 등)와는 달리 시스템 하드웨어에서 읽을 수 있는 저수준 프로그래밍 언어인 'ZIG'로 작성이 되어 작업을 빠르게 처리할 수 있다.
- 간결하고 가벼운 크기
- BUN의 기능
- DOM 조작
- 쉬운 DOM 조작을 위한 메서드를 제공한다.
- Ajax 요청
- 서버와의 통신을 위한 간편한 Ajax 메서드를 제공한다.
- 이벤트 처리
- 이벤트 핸들링을 쉽게 할 수 있는 기능을 제공한다.
- DOM 조작
- 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의 장/단점
- ( 장 점 )
- 빠른 작업 속도
- 효율적으로 개발이 가능(단순한 런타임이 아닌 '패키지 관리자', '테스트 러너'등의 역할을 동시 수행)
- Node.js와 확장성이 좋다.(Node.js의 모듈 알고리즘을 그대로 구현)
- ( 단 점 )
- 윈도우용 BUN 프로그램이 아직 미완성 단계(23.11.15 기준)
- 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 |