본문으로 바로가기
평면표지(2D 앞표지)
입체표지(3D 표지)
2D 뒤표지

헬로 Bun

차세대 자바스크립트 런타임+올인원 개발 키트를 만나다


  • ISBN-13
    979-11-93926-71-0 (93000)
  • 출판사 / 임프린트
    주식회사 제이펍 / 주식회사 제이펍
  • 정가
    22,000 원 확정정가
  • 발행일
    2024-10-22
  • 출간상태
    출간 예정
  • 저자
    서대영(달레)
  • 번역
    -
  • 메인주제어
    웹프로그래밍
  • 추가주제어
    -
  • 키워드
    #웹프로그래밍 #번 #노드 #타입스크립트 #node #typescript #npm #tsc #jsx #번들 #빌드 #자바스크립트
  • 도서유형
    종이책, 반양장/소프트커버
  • 대상연령
    모든 연령, 성인 일반 단행본
  • 도서상세정보
    170 * 225 mm, 216 Page

책소개

타입스크립트와 JSX를 아우르는 런타임 Bun으로 만나는 차세대 웹 개발

 

느리고 복잡한 노드 생태계의 판도를 바꾸기 위해, 차세대 자바스크립트 런타임이자 올인원 개발 키트인 Bun이 탄생했다. 자바스크립트/타입스크립트/JSX 코드를 바로 실행할 수 있고, 패키지 매니저, 모듈 시스템, 테스트 러너, 번들러, DB 등 다양한 기능을 내장했는데도 성능은 노드나 디노를 압도한다. 이 책은 Bun을 본격적으로 살펴보는 최초의 책으로서 Bun 기초부터 시나리오별 활용법과 예제 프로젝트까지, 웹 개발이 얼마나 우아할 수 있는지 보여준다.

 

목차

베타리더 후기 x

시작하며 xiii

 

PART I 반가워 Bun!

 

CHAPTER 1 Bun 시작하기 3

1.1 리눅스에서 Bun 설치하기 3

1.2 윈도우에서 Bun 설치하기 5

1.3 Bun 설치 확인하기 6

1.4 Bun 업데이트하기 7

1.5 Bun 실행하기 8

1.6 REPL 실행하기 9

_쉬어 가는 페이지 런타임에 대해서 11

 

CHAPTER 2 Bun 프로젝트 생성하기 13

2.1 자바스크립트 프로젝트란? 14

2.2 빈 프로젝트 만들기 14

2.3 프로젝트 파일 살펴보기 16

2.4 템플릿 기반 프로젝트 만들기 18

_쉬어 가는 페이지 초기자에 대해서 20

 

CHAPTER 3 Bun으로 프로그램 실행하기 21

3.1 타입스크립트란? 22

3.2 타입스크립트 실행 23

3.3 Node.js와의 비교 24

3.4 타입스크립트 설정 26

_쉬어 가는 페이지 타입스크립트의 타입 정의 저장소 Definitely Typed 28

 

CHAPTER 4 Bun으로 패키지 관리하기 31

4.1 npm 패키지 저장소 32

4.2 패키지 일괄 설치 33

4.3 새로운 패키지 설치 35

4.4 기존 패키지 제거 37

4.5 기존 패키지 갱신 38

4.6 설치된 패키지 목록 확인 40

4.7 전역 패키지 캐시 42

4.8 패키지 잠금 파일 43

4.9 패키지 생명주기 45

_쉬어 가는 페이지 왜 패키지의 버전을 잠가야 할까? 46

 

CHAPTER 5 Bun으로 모듈 불러오기 49

5.1 CJS 모듈 내보내기 50

5.2 ESM 모듈 내보내기 51

5.3 CJS 모듈 불러오기 51

5.4 ESM 모듈 불러오기 53

_쉬어 가는 페이지 자바스크립트의 모듈 시스템 55

 

PART II Bun으로 무엇을 개발할까?

 

CHAPTER 6 Bun으로 CLI 도구 개발하기 59

6.1 명령줄 인수 읽기 60

6.2 명령줄에서 입력받기 61

6.3 명령줄 프로그램 만들기 63

_쉬어 가는 페이지 사용자의 입력을 받기 위한 웹 브라우저의 API 65

 

CHAPTER 7 Bun으로 HTTP 서버 개발하기 67

7.1 기본 요청 처리 68

7.2 JSON 통신 69

7.3 요청 데이터 읽기 69

7.4 쿼리 문자열 접근 70

7.5 양식 데이터 접근 71

7.6 HTTP 상태 코드 71

7.7 HTTP 헤더 설정 72

7.8 라우팅 73

7.9 예외 처리 74

7.10 서버 설정 76

7.11 프레임워크 사용 77

_쉬어 가는 페이지 터미널 기반 HTTP 클라이언트 curl 명령어 79

 

CHAPTER 8 Bun으로 웹소켓 서버 개발하기 81

8.1 핸드셰이크 82

8.2 서버 측 이벤트 처리 83

8.3 웹소켓 테스트 84

8.4 클라이언트에서 데이터 보내기 85

8.5 웹소켓 닫기 85

8.6 서버에서 데이터 보내기 86

8.7 클라이언트 측 이벤트 처리 87

8.8 실시간 채팅 애플리케이션 구현 87

_쉬어 가는 페이지 웹소켓과 Socket.IO 93

 

CHAPTER 9 Bun으로 파일 입출력하기 95

9.1 파일의 메타 데이터 읽기 96

9.2 파일을 문자열로 읽기 97

9.3 파일을 바이너리 데이터로 읽기 98

9.4 파일을 스트림으로 읽기 98

9.5 파일을 JSON 객체로 읽기 99

9.6 파일에 문자열 쓰기 100

9.7 파일 복제하기 101

9.8 Node.js의 API 지원 102

9.9 폴더 관리하기 103

_쉬어 가는 페이지 웹 스트리밍 105

 

CHAPTER 10 Bun의 내장 DB 사용하기 107

10.1 데이터베이스 접속 108

10.2 테이블 생성하기 109

10.3 데이터 삽입하기 110

10.4 데이터 갱신하기 111

10.5 데이터 삭제하기 111

10.6 데이터 조회하기 112

10.7 데이터베이스 닫기 113

10.8 다른 데이터베이스 사용 113

_쉬어 가는 페이지 SQLite 데이터베이스 119

 

PART III Bun으로 도대체 못 하는 게 뭐임?

 

CHAPTER 11 Bun으로 테스트하기 123

11.1 테스트 작성하기 124

11.2 테스트 실행하기 124

11.3 테스트 그룹화하기 125

11.4 테스트 실행 제어 127

11.5 테스트 전/후 처리 130

11.6 함수 모킹 131

11.7 모듈 모킹 133

11.8 날짜/시간 모킹 135

11.9 프리로드 사용하기 136

11.10 파라미터화 테스트 137

_쉬어 가는 페이지 테스팅 프레임워크 139

 

CHAPTER 12 Bun으로 프로젝트 빌드하기 141

12.1 기본 프로젝트 빌드 142

12.2 비자바스크립트 파일 불러오기 145

_쉬어 가는 페이지 빌드 도구 149

 

CHAPTER 13 Bun으로 셸 스크립트 실행하기 151

13.1 셸 명령어 실행하기 152

13.2 셸 명령어의 결과를 변수에 저장하기 153

13.3 셸 명령어에 변수의 값을 삽입하기 154

13.4 오류 처리 155

13.5 환경 변수 설정 156

13.6 실행 경로 변경 157

_쉬어 가는 페이지 셸의 리다이렉션 158

 

CHAPTER 14 Bun으로 REST API 실전 개발하기 159

14.1 데이터베이스 160

14.2 비즈니스 로직 구현 160

14.3 비즈니스 로직 테스트 162

14.4 REST API 구현 165

14.5 REST API 테스트 166

14.6 서버 진입점 구현 170

14.7 API 서버 직접 테스트 170

14.8 API 서버 테스트 스크립트 173

14.9 터미널 클라이언트 175

_쉬어 가는 페이지 Elysia에 대해서 180

 

CHAPTER 15 Bun이 제공하는 유틸리티 183

15.1 실행 지연 184

15.2 UUID 생성 186

15.3 인코딩 188

15.4 해싱 189

15.5 비밀번호 191

 

마치며 193

찾아보기 197

본문인용

자바스크립트 생태계는 폭발적으로 성장하여 같은 목표를 가진 라이브러리가 여러 개 있으며, 이 중 어떤 것을 써야 할지 고민하는 것은 피곤한 일입니다. 자바스크립트 프로젝트는 갈수록 규모가 커지고 애플리케이션이 복잡해져서 빌드와 테스트, 배포를 하려면 다양한 개발 도구를 다룰 줄 알아야 합니다. 타입스크립트가 어떻게 자바스크립트로 컴파일(compile)되고, JSX가 어떻게 자바스크립트로 트랜스파일(transpile)되며, 최종적으로 어떻게 최적화되어 번들로 클라이언트에 배포되는지 정확히 파악하기가 어려워졌습니다. (xi쪽)

 

옛날에는 자바스크립트로 작성된 프로그램은 이렇게 브라우저를 통해서 클라이언트 측에서만 실행할 수 있었습니다. 그러다 2009년에 Node.js가 등장하면서 서버 측에서도 자바스크립트 프로그램을 실행할 수 있는 길이 열리게 되었습니다. (…) Bun은 Node.js와 Deno처럼 기본적으로 백엔드 개발에 사용하기 위해서 만들어진 자바스크립트 런타임이며, Zig라는 아직 많은 분들에게 생소할 수도 있는 차세대 프로그래밍 언어로 개발이 되었습니다. (11쪽)

 

test.todo() 또는 it.todo() 함수를 사용하여 아직 완성되지 않은 테스트 케이스를 표시해놓으면 테스트를 실행할 때마다 상기할 수 있어서 좋습니다. 애플리케이션 코드보다 테스트 코드를 먼저 작성하는 테스트 주도 개발(test-driven development, TDD)을 실천할 때 특히 유용하게 사용되는 기능입니다. (127쪽)

 

앞에서 구현한 REST API를 테스트하기 위한 코드를 tasks-api.test.ts 파일에 작성하겠습니다.

비즈니스 로직에 대한 테스트는 이미 했으니, API에 대한 테스트를 작성할 때는 비즈니스 로직을 실행하는 메서드를 spyOn() 함수를 사용해서 모킹(mocking)을 해주겠습니다. (…) Bun 위에서 돌아가는 Elysia 프레임워크도 웹 표준 API인 Request와 Response 클래스를 지원하므로 마치 브라우저에서 API를 호출하는 것처럼 자연스럽게 테스트 코드를 짤 수 있습니다. (166~167쪽)

 

서평

세 배 빠른 올인원 자바스크립트 개발 키트 Bun 100% 활용법

 

노드(Node.js)의 등장은 획기적인 사건이었지만, 시간이 흐르며 생태계는 오버엔지니어링으로 비대해졌고 개발자들은 뒷목을 잡게 되었다. Bun은 복잡하지 않고(패키지 매니저, 테스트 러너, 번들러 내장) 타입스크립트를 바로 실행할 수 있으며(트랜스파일러 내장) CJS와 ESM을 모두 지원한다. 이러한 여러 기능을 갖췄으면서도 성능은 노드와 디노를 압도한다.

이 책은 차세대 자바스크립트 런타임이자 올인원 개발 키트인 Bun을 본격적으로 살펴보는 최초의 도서로, 핵심만 간결히 부담 없이 Bun을 접할 수 있게 구성되었다. Bun에 내장된 패키지 관리, 모듈 시스템, 테스팅, 번들링, DB(SQLite), 빌드 등 오늘날 대규모 웹 개발에서 필수적인 기능들을 하나씩 살펴보며 편안하게 Bun에 익숙해질 수 있다. 여기에 CLI 도구, HTTP/웹소켓 서버, 채팅 앱, 셸 스크립트 실행, 할 일 관리(to-do) REST API 등 간단하면서도 실무에 도움이 되는 예제 프로젝트들도 수록되어 있다.

Bun은 많은 자바스크립트 개발자가 오랫동안 기다리던 만능 자바스크립트 도구라고 저자는 말한다. npm보다 30배 빠른 패키지 매니저이고 Jest보다 20배 빠른 테스트 러너이며 Webpack보다 200배 빠른 번들러다. 느리고 불필요하게 비대해진 노드 중심 툴체인에 지쳤다면 이 책과 함께 Bun을 만나보자. 복잡하게만 느껴지던 자바스크립트 웹 개발이 실은 얼마나 우아할 수 있는지 다시금 깨닫고 초심을 찾을 수 있을 것이다. 😂

 

주요 내용

  • 설치, 프로젝트 생성, 실행, 패키지, 모듈 등 Bun 기초
  • CLI 도구, HTTP 서버, 웹소켓 서버, 채팅 앱 등을 구축하며 Bun 익숙해지기
  • 파일 입출력, DB, 테스팅, 프로젝트 빌드 등 심화 주제
  • Bun과 Elysia로 to-do 관리 REST API 구축하기

저자소개

저자 : 서대영(달레)
서울시립대학교 전자전기컴퓨터공학부를 졸업한 후 삼성SDS에서 웹 개발자로 커리어를 시작했다. 이후 SK플래닛, 원스토어, 아마존에서 백엔드 개발을 했다. 현재는 아내, 아이와 함께 캐나다에 거주하며 에듀테크 분야에서 풀스택 개발자로 일하고 있다. 월 방문자 10만 명의 개인 기술 블로그(https://www.daleseo.com)에 다양한 주제의 소프트웨어 개발 글을 올리고 있고, 글로 전달하기 어려운 내용은 유튜브 달레의 코드(https://www.youtube.com/@DaleSeo) 채널에 영상으로 공유하고 있다.
상단으로 이동