BACKEND

번(Bun1.0) ::

neeon 2023. 9. 13. 09:13
728x90

Node.js 대안을 노리고 있다고 하는 Bun.

프로덕션 환경을 위한 버전 1.0을 출시했다고 하는데..

얼만큼의 이점을 가지고 있고, 어떤 단점을 지니고 있는지 특성에 관심이 생겨 포스팅 시도 해본다.

 

javascript Runtime 'Bun1.0'

Bun 이란?

javascript 와 typescript 기반 프로젝트에서 실행, 개발, 테스트, 디버깅 과정을 한 번에 수행하는 것을 목표로 개발된 AllinOne 런타임 툴킷.

 

Bun 특징

1. 점차 복잡해지는 시스템 구조로 인한 속도저하를 개선한 것이 특징. node.js에 비해 최대 5배 가량 빠르다고 한다.

1-1. 코어 자바스크립트 사용

2. Javascript의 기존 라이브러리와 프레임워크는 그대로 사용할 수 있다.

3. 지그(Zig)라는 새로운 lowlevel 프로그래밍 언어로 메모리를 직접 관리하는 등 메모리 효율 지향 프로그래밍이 가능해짐.

4. Node.js Common.js, ESM 호환성 제공

 

속도 비교분

console.log("hi") 시 node.js보다 4.5배 빠른 속도 보여준다.

* 번에서 사용하는 패키지 매니저도 npm보다 빠름.

 

- 추후 Bun 사용법에 대하여 포스팅 해보도록 하겠다.

속도 측면도 좋지만 안정성이나, 유지보수 측면에 대한 특징 글도 찾아보고 싶었지만 못 찾음. 구조를 뜯어봐야하는 걸까..?

 

https://snyk.io/blog/javascript-runtime-compare-node-deno-bun/

 

Node.js vs. Deno vs. Bun: JavaScript runtime comparison | Snyk

Node.js, Bun, and Deno... oh my! In this post, we compare these three popular JavaScript runtimes so you can determine which is the right one for your project.

snyk.io

우선 이런 글을 찾기는 했다.

 

런타임 비교

  • 성능면에선 Bun이 모두 승리
    • 평균 쿼리/초: Bun 81.37 > Deno 43.50 > Node 21.29
    • 동시 커넥션: Bun 110,000 > Deno 67,000 > Node 60,000
  • 지원 및 커뮤니티
    • 스택오버플로우 질문수 : Node 46만개 > Deno 917개 > Bun 52개
    • 사용자수(StateOfJS 조사결과) : Node 27976 > Deno 3355 > Bun 1263
  • 안정성
    • Node.js 는 전세계 웹사이트 2.1%가 사용중
    • Deno 는 1.0이 2020년에 나왔고 수용이 느림
    • Bun 은 아직 0.73으로 베타. 9월에 1.0 예정
  • 보안
    • Node.js 의 부족한 보안을 Deno가 개선했지만, Node도 권한 모델을 도입하면서 비슷해짐
    • Bun 은 아직 보안 관련 정보가 많이 없음
  • 추가 기능들
    • Node.js 가 최근 Deno/Bun 과 비슷한 기능을 많이 도입중. Typescript 지원도 활발히 논의 중
    • Deno 에는 Dependency Inspector 와 Code Formatter 내장
    • Bun 은 Transpiler 와 Package Manager 내장. 이름에서 볼수 있듯이 번들링 기능도 포함

어떤게 나에게 적합할까 ?

  • Bun 이 확실히 속도면에서 우수함. 하지만 새로운 것이라 위험이 있음.
  • Node.js 의 장점은 성숙도와 생태계
  • Deno 는 Node에 비해 더 원활한 개발을 가능하게 하고, 복잡한 프로젝트를 고품질로 쉽게 구축할 수 있게 해주는 기능들을 포함. 안전하고 Node 보다 빠르지만 Bun에 비해 약간 느림
  • Node가 사례가 많은 안전한 옵션. Deno는 추천할 기능들이 많고 최신 기능등을 많이 포함. Bun 은 속도에 관심이 있거나 최첨단 기술을 이용하고 싶은 경우 선택을 권함
728x90