1P by neo 1달전 | ★ favorite | 댓글 1개

Bun 1.2 업데이트

  • Bun 1.2는 Node.js 호환성을 크게 개선하고, S3 객체 저장소 API와 Postgres 클라이언트를 내장하여 제공함. bun install은 이제 텍스트 기반의 bun.lock을 사용함. Express의 성능을 3배 향상시킴.

Node.js 호환성

  • Bun은 Node.js의 대체로 설계되었으며, Node.js 테스트 스위트를 실행하여 호환성을 개선함.
  • 내부 API와 오류 메시지의 차이를 해결하여 Node.js 모듈의 90% 이상 테스트를 통과함.

HTTP/2 서버 및 기타 모듈

  • node:http2를 사용하여 HTTP/2 서버를 생성할 수 있으며, 이는 gRPC 서버에도 필요함.
  • node:dgram을 사용하여 UDP 소켓을 바인딩하고 연결할 수 있음.
  • node:cluster를 사용하여 여러 Bun 인스턴스를 생성하여 작업을 병렬로 처리할 수 있음.
  • node:zlib 모듈을 네이티브 코드로 재작성하여 성능을 2배 향상시킴.

S3 지원

  • Bun 1.2는 S3 API를 내장하여 파일을 읽고, 쓰고, 삭제할 수 있음.
  • Bun의 S3 클라이언트는 네이티브 코드로 작성되어 Node.js보다 5배 빠름.

Postgres 지원

  • Bun.sql을 사용하여 SQL 쿼리를 실행할 수 있으며, 이는 SQL 인젝션을 방지함.
  • Bun.sql은 다른 Postgres 클라이언트보다 50% 빠름.

패키지 관리자

  • bun install은 이제 텍스트 기반의 bun.lock을 사용하여 더 빠르고, 병합 충돌을 줄임.
  • package.json에 주석과 후행 쉼표를 사용할 수 있음.
  • .npmrc 파일을 읽어 npm 레지스트리를 구성할 수 있음.

테스트 러너

  • Bun은 내장된 테스트 러너를 제공하여 테스트 작성과 실행을 쉽게 할 수 있음.
Hacker News 의견
  • 일부 사용자는 외부 라이브러리를 핵심 라이브러리에 포함시키는 것에 대해 의문을 제기하며, 선택적 라이브러리로 두는 것이 더 나을 것이라고 생각함

    • 런타임은 표준 라이브러리에 포함시키는 것에 매우 신중해야 하며, 이미 포함된 것들이 프로젝트를 복잡하게 만들 수 있음
  • Bun을 사용하는 경험이 매우 좋았다는 의견이 있음

    • TypeScript, Jest, React, Webpack 설정이 번거로웠지만, Bun은 간단하고 효과적임
    • 외부 라이브러리 통합에 대해서는 언급할 수 없지만, 일반적으로 많이 요청되는 것에 집중하고 있음
  • 기본 동작이 너무 마법적이라는 의견이 있음

    • 예를 들어, S3 파일을 다운로드하지 않고 사용자에게 프리사인 URL을 제공하는 것은 놀라운 선택임
    • 이러한 동작을 비활성화하는 방법이 명확하지 않음
  • 기본 제공 기능이 큰 차이를 만든다는 의견이 있음

    • Web API가 V8과 Webkit 런타임에 기본적으로 포함되어 있는 것을 좋아함
    • 그러나 S3는 너무 멀리 간 것일 수 있으며, SQL 드라이버는 이해되지만 어느 정도까지 포함해야 하는지 고민이 필요함
    • 민감한 API를 추가함으로써 보안 문제를 놓치고 있을 수 있음
  • 한 클라이언트가 Bun을 프로덕션에서 사용하고 있으며, 개발 경험이 매우 좋다는 의견이 있음

    • 개발 경험은 장기적으로 큰 역할을 할 수 있음
    • 코드베이스나 프로세스가 좋지 않으면 좋은 인재를 잃을 수 있음
  • Bun의 기능 목록이 길어 모든 것이 견고하고 버그가 없을지 의심스럽다는 의견이 있음

    • 프로젝트 관리 관점에서 S3 지원에 시간을 쓰는 것이 이해되지 않음
    • Next.js 고객을 확보하는 것이 더 성장할 수 있는 방법일 것임
  • Bun 1.2에서 HTML import 지원이 추가되었음

    • 단일 import 문으로 전체 프론트엔드 툴체인을 대체할 수 있음
    • 매우 놀랍고 멋진 기능이라는 의견이 있음
  • Bun을 처음 사용했을 때 매우 놀라운 경험이었다는 의견이 있음

    • Webpack이나 Vite 설정이 번거로웠지만, Bun은 바로 작동함
    • 작은 스크립트에 대해 설정할 가치가 없었지만, Bun은 훌륭하게 작동함
  • Node.js의 대안으로 실패할 것이라고 생각했지만, Bun을 사용해 본 결과 만족스러웠다는 의견이 있음

    • TypeScript와 SQLite DB 업데이트를 처리하는 독립형 스크립트를 쉽게 만들 수 있었음
    • 새로운 JS/TypeScript 프로젝트에서도 사용해 보았으며, 모든 것이 빠르게 작동함
  • 품질 보증 프로세스가 형식적이라는 의견이 있음

    • 빌드가 통과하지 않은 상태에서 변경 사항이 병합되고 릴리스된 것으로 보임
    • 테스트가 불안정하면 회귀를 추적하기 어려울 것임