느리고 복잡한 노드 생태계의 판도를 바꾸기 위해, 차세대 자바스크립트 런타임이자 올인원 개발 키트인 Bun이 탄생했다. 자바스크립트/타입스크립트/JSX 코드를 바로 실행할 수 있고, 패키지 매니저, 모듈 시스템, 테스트 러너, 번들러, DB 등 다양한 기능을 내장했는데도 성능은 노드나 디노를 압도한다. 이 책은 Bun을 본격적으로 살펴보는 최초의 책으로서 Bun 기초부터 시나리오별 활용법과 예제 프로젝트까지, 웹 개발이 얼마나 우아할 수 있는지 보여준다.
Contents
베타리더 후기 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 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
Author
서대영(달레)
서울시립대학교 전자전기컴퓨터공학부를 졸업한 후 삼성SDS에서 웹 개발자로 커리어를 시작했다. 이후 SK플래닛, 원스토어, 아마존에서 백엔드 개발을 했다. 현재는 아내, 아이와 함께 캐나다에 거주하며 에듀테크 분야에서 풀스택 개발자로 일하고 있다. 월 방문자 10만 명의 개인 기술 블로그(https://www.daleseo.com)에 다양한 주제의 소프트웨어 개발 글을 올리고 있고, 글로 전달하기 어려운 내용은 유튜브 달레의 코드(https://www.youtube.com/@DaleSeo) 채널에 영상으로 공유하고 있다.
서울시립대학교 전자전기컴퓨터공학부를 졸업한 후 삼성SDS에서 웹 개발자로 커리어를 시작했다. 이후 SK플래닛, 원스토어, 아마존에서 백엔드 개발을 했다. 현재는 아내, 아이와 함께 캐나다에 거주하며 에듀테크 분야에서 풀스택 개발자로 일하고 있다. 월 방문자 10만 명의 개인 기술 블로그(https://www.daleseo.com)에 다양한 주제의 소프트웨어 개발 글을 올리고 있고, 글로 전달하기 어려운 내용은 유튜브 달레의 코드(https://www.youtube.com/@DaleSeo) 채널에 영상으로 공유하고 있다.