장바구니 담기 close

장바구니에 상품을 담았습니다.

실전 스벨트 & 스벨트킷 입문

실전 스벨트 & 스벨트킷 입문

  • 하마구치 교헤이
  • |
  • 제이펍
  • |
  • 2024-04-26 출간
  • |
  • 328페이지
  • |
  • 188 X 245 X 16mm
  • |
  • ISBN 9791193926161
판매가

26,000원

즉시할인가

23,400

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
23,400

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

요즘 프레임워크 스벨트와 스벨트킷 입문부터 고급 기능,
쇼핑몰 사이트를 만드는 실전 예제까지

스벨트는 단순하고, 강력하며, 우아하다. 아직 스벨트를 접해보지 못한 모든 웹 개발자에게 이 책으로 스벨트와 만나보기를 추천하고 싶다. 스벨트의 컴포넌트는 이해하기 쉽고, 코드는 간결하고, 파일은 가볍다. 코딩 프로세스는 원활해지고, 메모리 누수를 걱정할 필요가 없다.

이 책은 간단한 튜토리얼부터 시작해 스벨트와 스벨트킷(스벨트를 베이스로 하는 웹 애플리케이션 프레임워크)으로 쇼핑몰 사이트 웹 애플리케이션 프로젝트를 만들어본다. 1장에서는 스벨트의 특징을 소개하고 간단한 온라인 쇼핑몰 페이지를 만들며 스벨트 튜토리얼을 진행한다. 2장에서는 환경을 구축하고 컴포넌트에 대해 설명한다. 3장에서는 스벨트가 어떤 리액티브 구조를 제공하는지 설명하고, 4장에서는 UI를 더 고급스럽게 구현하는 데 도움 되는 고급 기능을 알아본다.

5장에서는 스벨트킷으로 다중 페이지 애플리케이션을 개발해보고, 6장에서는 스벨트킷의 주요 개념을 자세히 살펴본다. 7장에서는 MongoDB와 Vercel을 사용해 운영 환경을 구축하고 배포해본다. 8장에서는 Auth0를 통해 패스워드 없는 로그인을 구현하고 세션을 관리하는 방법을 알아본다. 9장에서는 스벨트킷이 제공하는 SSR, CSR, 프리렌더링의 개념을 살펴보면서 상품 페이지의 유저 경험을 개선한다. 한국어판에 특별 수록한 부록에서는 스벨트킷 프로젝트에서 활용하는 Auth0, MongoDB Atlas, GitHub, Vercel 사용법을 자세히 설명한다.

스벨트는 리액트나 뷰와 비교하면 적은 사전 지식만으로도 개발을 시작할 수 있도록 만들어졌다.
이 책을 통해 쉽고 빠르면서도 깊이 있게 스벨트를 이해할 수 있게 되기를 바란다.

주요 내용
 스벨트의 리액티비티 알아보기
 모듈 콘텍스트, 트랜지션, 액션 등 스벨트의 고급 기능
 스벨트킷으로 다중 페이지 애플리케이션 개발하기
 라우트, 폼액션 등 스벨트킷 레퍼런스
 MongoDB와 Vercel을 사용한 운영 환경 구축
 Auth0를 통한 패스워드 없는 로그인 구현과 세션 관리
 OGP 태그와 프리렌더링으로 유저 경험 개선

목차


옮긴이 머리말 ix
베타리더 후기 xi
추천 서문(야마시타 유이치로) xiii
시작하며 xv

CHAPTER 1 스벨트 시작하기 1
1.1 스벨트의 탄생과 특징 1
__1.1.1 스벨트의 특징 1
__1.1.2 스벨트의 ‘컴파일’ 2
__1.1.3 가상 DOM의 미사용 3
1.2 스벨트 튜토리얼: 온라인 쇼핑 페이지 만들기 5
__1.2.1 프로젝트 준비 6
__1.2.2 HTML/CSS를 사용한 화면 구성 요소 생성 7
__1.2.3 변수와 이벤트 핸들러를 사용한 장바구니 담기 버튼 기능 추가 11
__1.2.4 배열과 {#each} 구문을 통한 관련 상품 표시 14
__1.2.5 컴포넌트 분리 20

CHAPTER 2 스벨트 기초 27
2.1 환경 구축 27
__2.1.1 스벨트 공식 REPL 28
__2.1.2 Vite를 사용하는 개발 환경 구축 29
2.2 컴포넌트 31
__2.2.1 .svelte 파일 구조 31
__2.2.2 템플릿 기초 문법 33
__2.2.3 스타일 36
__2.2.4 블록 39
__2.2.5 컴포넌트 사용 43
__2.2.6 속성 46
__2.2.7 슬롯 52
__2.2.8 이벤트 62
__2.2.9 라이프 사이클 69

CHAPTER 3 스벨트의 리액티비티 78
3.1 컴포넌트의 리액티비티 78
__3.1.1 변수 대입 78
__3.1.2 $:prefix 79
__3.1.3 배열과 객체의 업데이트 82
__3.1.4 입력 바인딩 85
__3.1.5 미디어 요소의 바인딩 91
__3.1.6 컴포넌트 바인딩 93
__3.1.7 this 바인딩 95
3.2 스토어 97
__3.2.1 writable 스토어 97
__3.2.2 $를 사용하는 자동 구독 100
__3.2.3 $를 사용하는 대입 101
__3.2.4 readable 스토어 102
__3.2.5 derived 스토어 105
__3.2.6 custom 스토어 107
__3.2.7 스토어의 바인딩 111

CHAPTER 4 스벨트의 고급 기능 114
4.1 고급 템플릿 문법 114
__4.1.1 키를 포함하는 {#each} 블록 115
__4.1.2 {#key} 블록 117
__4.1.3 {@...} 태그 118
__4.1.4 <svelte:...> 태그 120
4.2 모듈 콘텍스트 129
__4.2.1 각 인스턴스 간 상태 공유 129
__4.2.2 컴포넌트 이외에 내보내기 131
4.3 모션, 트랜지션, 애니메이션 134
__4.3.1 모션 134
__4.3.2 트랜지션 140
__4.3.3 애니메이션 148
4.4 콘텍스트 150
__4.4.1 콘텍스트 API 사용 방법 150
__4.4.2 콘텍스트의 특징과 스토어 비교 153
4.5 액션 154
__4.5.1 액션의 기본적인 사용법 154
__4.5.2 액션의 예: DOM 요소의 리사이징 감지 155

CHAPTER 5 스벨트킷으로 다중 페이지 애플리케이션 개발하기 158
5.1 스벨트킷의 기본과 도입 158
__5.1.1 스벨트킷이란? 158
__5.1.2 프로젝트 생성 159
__5.1.3 스벨트킷 프로젝트의 파일 구조 161
5.2 데모 애플리케이션의 구현과 해석 163
__5.2.1 페이지를 나타내는 .svelte 파일 163
__5.2.2 레이아웃 - 여러 페이지에 공통 요소 배치 166
__5.2.3 폼액션 - 프로그레시브한 웹 애플리케이션을 구성하는 구조 167
5.3 온라인 쇼핑 애플리케이션의 확장 170
__5.3.1 ① 스벨트킷 프로젝트 생성 171
__5.3.2 ② 상품 페이지에 대응하는 라우트 생성 171
__5.3.3 ③ 상품 데이터와 장바구니 데이터 가져오기 172
__5.3.4 ④ 폼액션으로 장바구니 추가 180 / 5.3.5 ⑤ ‘추천 상품’ 표시 183

CHAPTER 6 스벨트킷 레퍼런스 189
6.1 스벨트킷의 주요 개념 189
__6.1.1 페이지 라우트 189
__6.1.2 서버 라우트 190
__6.1.3 폼액션 190
__6.1.4 라우팅 191
__6.1.5 레이아웃 191
__6.1.6 스벨트킷의 실행 모델 191
6.2 페이지 라우트 192
__6.2.1 +page.svelte 192
__6.2.2 +page.js와 +page.server.js 194
6.3 폼액션 195
__6.3.1 폼액션 기초 195
__6.3.2 프로그레시브 인핸스먼트 198
6.4 서버 라우트 203
__6.4.1 서버 라우트란? 203
6.5 라우팅 205
__6.5.1 라우트 205
__6.5.2 라우트에 배치할 수 있는 파일 205
__6.5.3 고급 라우팅 206
6.6 레이아웃 212
__6.6.1 레이아웃 기초 212
__6.6.2 레이아웃 네스팅 213
__6.6.3 레이아웃 네스팅 초기화 213
6.7 훅 215
__6.7.1 스벨트킷의 훅 215
__6.7.2 handle 215
__6.7.3 handleFetch 216
__6.7.4 handleError 217
6.8 헬퍼 모듈 218
__6.8.1 $app/environment - 실행 환경 관련 정보 218
__6.8.2 $app/forms - 폼액션 관련 헬퍼 218
__6.8.3 $app/navigation - 페이지 이동 관련 헬퍼 218
__6.8.4 $app/paths - 경로 관련 헬퍼 219
__6.8.5 $app/stores - 애플리케이션 레벨 스토어 220
__6.8.6 @sveltejs/kit 221
__6.8.7 $env: 환경 변수에 접근할 수 있는 모듈 221
6.9 빌드와 배포 222
__6.9.1 설정이 불필요한 호스팅 서비스 - adapter-auto 222
__6.9.2 Node 서버로 빌드 - adapter-node 223
__6.9.3 정적 사이트 생성과 SPA 모드 - adapter-static 226

CHAPTER 7 MongoDB와 Vercel을 사용한 운영 환경 구축 229
7.1 스벨트킷 애플리케이션과 운영 환경 229
__7.1.1 개발 환경/샘플 애플리케이션 229
__7.1.2 운영 환경/빌드/배포 230
7.2 MongoDB의 도입 232
__7.2.1 데이터베이스의 역할 232
__7.2.2 MongoDB Atlas로 데이터베이스 생성 233
__7.2.3 mongodb 패키지 도입과 접속 정보 관리 234
__7.2.4 장바구니를 MongoDB로 구현 236
__7.2.5 상품을 MongoDB로 구현 238
7.3 Vercel을 통한 배포 242
__7.3.1 깃허브 설정 242
__7.3.2 Vercel 설정 243
__7.3.3 MongoDB Atlas의 Integration 도입 243
__7.3.4 환경 변수 적용 244
__7.3.5 운영 환경 DB 시드 244
__7.3.6 작동 확인 245

CHAPTER 8 Auth0를 통한 패스워드 없는 로그인 구현과 세션 관리 246
8.1 Auth0 준비 246
__8.1.1 패스워드 없는 인증이란? 246
__8.1.2 Auth0 계정 생성과 초기 설정 247
8.2 로그인 구현 247
__8.2.1 로그인 처리 247
__8.2.2 로그인 페이지 생성 251
__8.2.3 Auth0의 API를 호출하는 함수 253
__8.2.4 콜백 URL 구현 255
__8.2.5 세션 정보를 데이터베이스에 저장 257
__8.2.6 로그인 작동 확인 258
8.3 로그인 유저의 판단과 표시 258
__8.3.1 로그인 유저 정보 가져오기 258
__8.3.2 로그인 중인 유저의 표시 260
__8.3.3 로그아웃 기능 261
8.4 유저별 장바구니 생성 262
__8.4.1 유저 ID별 장바구니 생성 262
8.5 Vercel 배포 265
__8.5.1 Auth0 사용을 위한 준비 265
__8.5.2 환경 변수 설정 266

CHAPTER 9 유저 경험 개선 — OGP 태그와 프리렌더링 268
9.1 OGP 태그 추가 268
__9.1.1 OGP 태그와 자바스크립트 애플리케이션 268
__9.1.2 상품 페이지에 OGP 태그 추가 269
__9.1.3 SSR 비활성화 271
__9.1.4 CSR 비활성화 271
__9.1.5 Vercel에 배포하고 카드 확인 272
9.2 프리렌더링 273
__9.2.1 상품 페이지 프리렌더링 273
__9.2.2 장바구니 페이지 준비 276
__9.2.3 클라이언트에서 장바구니 정보 가져오기 278
__9.2.4 ‘장바구니 담기’ 버튼의 작동 개선 281 / 9.2.5 프리렌더링 작동 확인 282

APPENDIX A 한국어판 부록 286
A.1 Auth0 286
__A.1.1 계정 등록 286
__A.1.2 애플리케이션 생성과 설정 287
__A.1.3 패스워드 없는 로그인 설정 287
__A.1.4 콜백 URL 추가 288
__A.1.5 인증 정보 가져오기 290
__A.1.6 패스워드 없는 로그인 에러 해결 290
A.2 MongoDB Atlas 293
__A.2.1 계정 등록 293
__A.2.2 서버 생성 293
__A.2.3 보안 설정 295
__A.2.4 액세스 정보 확인하기 296
A.3 깃허브 298
__A.3.1 계정 등록 298
__A.3.2 리포지터리 생성 298
__A.3.3 액세스 토큰의 생성 299
A.4 Vercel 299
__A.4.1 계정 등록 299
__A.4.2 신규 프로젝트(깃허브 리포지터리 연동) 생성 방법 300
__A.4.3 MongoDB Atlas 인티그레이션 연동 방법 302
__A.4.4 환경 변수 설정 방법 305
__A.4.5 환경 변수 확인과 복사 306
__A.4.6 환경 변수의 추가 306

찾아보기 309

도서소개

 

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.