티스토리 뷰

book-movie

책: 헬로 Bun

주먹불끈 2024. 10. 21. 18:08

개요

제이펍 IT 전문서 리뷰어 활동으로 “헬로 Bun”을 리뷰한다.

알라딘 링크: http://aladin.kr/p/Rq9yC

들어가며

자바스크립트는 메인으로 업무에서 다루어본 적은 없고 바닐라 자바스크립트를 공부삼아 만져보거나, Node.js를 유데미 코스 등등으로 이해하고 공부한 적은 있었다. 긱뉴스나 여러 소식을 통해 Node.js와 경쟁하는 런타임 환경으로 Deno, Bun 이야기를 스쳐들었는데 이번에 Bun을 소개하는 책을 서평할 기회가 생겨서 얼른 신청했다.

TL;DR

Bun이 어떤 장점과 기능을 가지고 있는지, 이를 이용해 무엇을 할 수 있는지를 이해하기 쉽게 소개한 책이다. 또한, 책에서 소개하는 내용을 넘어서서 좀더 들여다보고 싶은 분들께 저자가 직접 운영하는 블로그의 관련 글들을 링크로 제공해준다.

Bun의 이런 저런 장점을 읽다보니 떠오른 키워드는 “개발자 친화적” 이라는 것이었다. 기존의 자바스크립트 런타임에서 개발했던 개발자들이 아쉬웠던 부분들을 해소하기 위해 만든 런타임이 아닐까 싶다.

Bun에 대해 가벼운 인사로 알아가고 싶은 분들에게 추천한다.

간단 책 소개

Bun의 설치, 프로젝트 생성과 실행법을 소개한다. Bun은 다른 런타임과는 달리 타입스크립트도 별도의 컴파일 과정없이 바로 실행이 가능하다. 패키지 관리, 모듈을 가져오는 부분을 읽으면 Bun이 CJS(CommonJS), ESM(ECMEScript Modules) 둘 다 매끄럽게 처리한다는 것을 보여준다. Bun으로 CLI, HTTP 서버를 만들 수 있을 뿐 아니라, WebSocket을 런타임 수준에서 제공하여 쉽게 만들 수 있다는 것을 가벼운 예제로 맛보여준다. Bun은 SQLite를 내장하고 Bun에서 제공하는 테스트 모듈까지 있어 개발의 편의를 도모할 뿐 아니라 배포를 위한 번들링까지 자체 번들러를 제공하여 지원해준다.

책은 이런 Bun의 장점, 기능, 할 수 있는 일들을 200페이지 안쪽의 경쾌한 두께에 담아낸다.

기타 인상적이었던 부분, 궁금증

Bun 은 왜 이렇게 빠르지?

ChatGPT에게 물어보았다.

  • Zig: Node.js는 C++, Deno는 Rust로 만들어졌는데 Bun은 Zig 프로그래밍 언어로 만들어졌다. 메모리 관리, 컴파일러 최적화에 더욱 효율적이고 시스템 리소스를 적게 소모하도록 설계된 언어이다.
  • JavaScriptCore: Node.js, Deno는 V8 엔진을 사용하는데, Bun은 Apple의 WebKit 엔진에서 사용하는, 경량화와 빠른 실행속도에 특화되어 있는 JavaScriptCore를 기반으로 동작한다.
  • 기타등등: 바이트코드 캐싱, 멀티스레드 최적화가 잘되어 있다.

Argon2 를 기본 지원하는 Bun

비밀번호 해싱 알고리즘으로 가장 널리알려진 것은 Bcrypt 이겠지만, Bun은 Argon2를 기본지원한다. 사용하는 측면에서는 bcrypt와 별 차이도 없을 뿐더러 비밀번호 해싱 부분은 한 번만 만들어놓으면 손댈 일도 없다. 힘 안들이고 보안에 한층 신경쓴 티를 낼 수 있다. Bun이 개발자 친화적이라는 것을 느낄 수 있는 또 하나의 포인트이겠다.

NanoID vs. UUIDv4

NanoID를 처음 들어봐서 ChatGPT에 물어보았다.

특성 Nanoid UUID v4

길이 기본적으로 21자 (길이 설정 가능) 36자 (고정)
충돌 가능성 낮음 (길이가 짧을 경우 다소 높을 수 있음) 매우 낮음 (충돌 거의 없음)
성능 매우 빠름 빠르지만 Nanoid보다 다소 느림
URL-safe 기본적으로 URL-safe URL-safe
사용성 자바스크립트 환경에서 매우 유리, 다양한 커스터마이징 가능 다양한 언어와 플랫폼에서 기본 지원
정렬 가능성 정렬 불가능 정렬 불가능
표준 준수 표준이 아님 표준화된 형식 (RFC 4122)
가독성 짧고 가독성 좋음 긴 문자열, 하이픈 포함으로 가독성 낮음

어떤 것을 선택해야 할까?

Nanoid를 선택할 때:

  • 짧은 길이의 고유 식별자가 필요하고, 공간 절약이 중요한 경우.
  • URL-safe한 식별자가 필요할 때.
  • 고유 식별자의 성능이 중요한 경우.
  • 고유 식별자의 문자 세트길이를 조정하고 싶은 경우.

UUID v4를 선택할 때:

  • 표준화된 고유 식별자가 필요한 경우.
  • 매우 대규모 시스템에서 고유성을 보장해야 하는 경우.
  • 다양한 언어와 플랫폼에서 호환 가능한 고유 식별자가 필요할 때.
  • 충돌 가능성을 최소화해야 하는 경우.
반응형
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함