스마트 계약 퀵스타트
도서명:스마트 계약 퀵스타트
저자/출판사:가사키,나가토,시노하라,와타루,김지경,가와니시,노리아/루비페이퍼
쪽수:514쪽
출판일:2020-09-07
ISBN:9791186710593
목차
Chapter 01 스마트 계약 개발 이해하기
_1.1 스마트 계약
__1.1.1 넓은 의미의 스마트 계약
__1.1.2 좁은 의미의 스마트 계약
__1.1.3 블록체인의 특징
_1.2 블록체인이 구현하는 것
__1.2.1 블록체인이 주는 다섯 가지 가치
__1.2.2 토큰 이코노미
__1.2.3 보상과 패널티 설계
__1.2.4 새로운 KYC 구축
__1.2.5 DApps 개발에서 해결할 문제
_1.3 기존 서비스 사례
__1.3.1 블록체인을 이용한 서비스
__1.3.2 스마트 계약으로 구현한 서비스
_1.4 테스트넷에서 DApps 이용
__1.4.1 테스트넷
__1.4.2 지갑
__1.4.3 메타마스크를 이용한 지갑 설정
__1.4.4 코인베이스 월렛을 이용한 지갑 설정
__1.4.5 테스트넷에서 이더 받기
__1.4.6 테스트넷에서 시험할 DApps
Chapter 02 솔리디티로 스마트 계약 개발하기
_2.1 이더리움의 기본 개념
__2.1.1 이더리움의 화폐 단위
__2.1.2 수수료 ‘가스’
__2.1.3 계정 종류
__2.1.4 메인 체인을 선택하는 고스트 프로토콜
__2.1.5 이더리움 가상 머신
_2.2 솔리디티 기초
__2.2.1 솔리디티의 특징
__2.2.2 계약
__2.2.3 데이터 타입
_2.3 크립토좀비로 솔리디티 배우기
__2.3.1 크립토좀비 소개
__2.3.2 레슨 1: 좀비 공장 만들기
__2.3.3 레슨 2: 좀비가 희생물을 공격하다
__2.3.4 레슨 3: 고급 솔리디티 개념
__2.3.5 레슨 4: 좀비 전투 시스템
__2.3.6 레슨 5: ERC721 & 크립토 수집품
__2.3.7 레슨 6: 앱 프런트엔드 & Web3.js
_2.4 리믹스로 솔리디티 프로그래밍하기
__2.4.1 리믹스
__2.4.2 샘플 프로젝트
__2.4.3 리믹스에서 샘플 프로젝트 구현
__2.4.4 리믹스 로그 사용하기
Chapter 03 스마트 계약 서비스 디자인
_3.1 프로젝트의 UX 디자인
__3.1.1 UX 디자인의 필요성
__3.1.2 서비스의 사용성
__3.1.3 개발 과정의 UX/UI 디자인
__3.1.4 폭포수 모델이 아닌 개발 방법 선택
__3.1.5 서비스의 성과를 정의하는
_3.2 린 UX를 사용한 개발
__3.2.1 린 스타트업과 린 UX
__3.2.2 서비스와 팀의 성장
__3.2.3 린 UX 과정의 핵심 사항
__3.2.4 개발 과정의 핵심 사항
_3.3 프로토타이핑 활용하기
__3.3.1 프로토타이핑 활용 방법 두 가지
__3.3.2 경험적 프로토타이핑
__3.3.3 전략적 프로토타이핑
__3.3.4 프로토타입 != 최종 결과물
_3.4 사용자 테스트 설계
__3.4.1 사용자 테스트
__3.4.2 기존 사용자 테스트 과정
__3.4.3 개발 시간이 짧을 때의 사용자 테스트
__3.4.4 테스트 간소화의 중요 사항
__3.4.5 사용자 테스트를 할 때 주의할 사항
_3.5 사례로 보는 DApps 설계
__3.5.1 QUEST 알파 버전
__3.5.2 경험적 프로토타이핑
__3.5.3 전략적 프로토타이핑
Chapter 04 DApps 개발 환경 구축
_4.1 개발 도구 소개
__4.1.1 도커
__4.1.2 Geth
__4.1.3 가나슈
__4.1.4 Node.js와 npm
__4.1.5 트러플
__4.1.6 Git
__4.1.7 비주얼 스튜디오 코드
__4.1.8 솔리디티에 대응하는 통합 개발 환경과 텍스트 편집기
_4.2 macOS에 DApps 개발 환경 구축
__4.2.1 Homebrew
__4.2.2 도커 데스크톱 설치
__4.2.3 Geth
__4.2.4 가나슈
__4.2.5 Node.js와 npm
__4.2.6 트러플
__4.2.7 Git
__4.2.8 비주얼 스튜디오 코드
_4.3 윈도우 10에 DApps 개발 환경 구축
__4.3.1 리눅스용 윈도우 하위 시스템
__4.3.2 도커
__4.3.3 Geth
__4.3.4 가나슈
__4.3.5 Node.js와 npm
__4.3.6 트러플
__4.3.7 Git
__4.3.8 비주얼 스튜디오 코드
_4.4 리눅스에 DApps 개발 환경 구축
__4.4.1 도커
__4.4.2 Geth
__4.4.3 가나슈
__4.4.4 Node.js와 npm
__4.4.5 트러플
__4.4.6 Git
__4.4.7 비주얼 스튜디오 코드
Chapter 05 개발용 블록체인 구축
_5.1 프라이빗 네트워크 구축
__5.1.1 로컬 환경에 프라이빗 네트워크 구축
__5.1.2 트러플로 프라이빗 네트워크에 계약 배포와 트랜잭션
_5.2 팀과 함께 사용할 수 있는 이더리움 노드 구축
__5.2.1 구글 클라우드 플랫폼 가입
__5.2.2 구글 클라우드 SDK 설치
__5.2.3 구글 클라우드 SDK 초기 설정
__5.2.4 kubectl 설치
__5.2.5 쿠버네티스 엔진 클러스터 만들기
__5.2.6 쿠버네티스에서 동작하는 컨테이너 만들기
__5.2.7 컨테이너 배포
_5.3 이더리움 네트워크
__5.3.1 P2P 네트워크 기초
__5.3.2 이더리움의 프로토콜
__5.3.3 노드 탐색
__5.3.4 로그로 실제 노드 탐색 동작 확인
Chapter 06 스마트 계약 설계
_6.1 데이터 모델링
__6.1.1 개념 데이터 모델 설계
__6.1.2 속성 살펴보기
__6.1.3 논리 데이터 모델 설계
__6.1.4 물리 데이터 모델 설계
_6.2 스마트 계약 설계
__6.2.1 스마트 계약의 역할 분담과 디자인 패턴
__6.2.2 스마트 계약에 저장해야 할 데이터
__6.2.3 스마트 계약의 주요 기능 살펴보기
_6.3 트러플 프레임워크 개발 준비
__6.3.1 트러플 프로젝트 만들기
__6.3.2 개발용 블록체인 살펴보기
__6.3.3 프로젝트 배포 전 이더리움 네트워크 설정
__6.3.4 Truffle Console
_6.4 스마트 계약 구현
__6.4.1 오픈제플린 설치
__6.4.2 스마트 계약 구현
__6.4.3 계약 기능 구현
__6.4.4 컴파일
__6.4.5 프라이빗 네트워크에 계약 배포
_6.5 프라이빗 네트워크에서의 동작 확인
__6.5.1 트러플 프로젝트 배포와 계약 객체 생성
__6.5.2 콜 방식으로 계약 상태 호출
__6.5.3 트랜잭션 방식으로 계약 상태 변경
__6.5.4 트랜잭션 발행 결과 확인
Chapter 07 테스트 방법과 자동화
_7.1 테스트 코드 작성
__7.1.1 트러플의 테스트 코드
__7.1.2 테스트 코드 작성
__7.1.3 테스트 실행
__7.1.4 테스트 범위
_7.2 보****검사
__7.2.1 자동 보****검사 도구
__7.2.2 미스릴을 이용한 보****검사
_7.3 테스트 자동화
__7.3.1 저장소 관리하기
__7.3.2 지속적 통합
__7.3.3 깃허브와 구글 클라우드 빌드 연결하기
Chapter 08 웹 애플리케이션의 구현
_8.1 애플리케이션 구성
__8.1.1 일반적인 웹 애플리케이션의 구성
__8.1.2 DApps 구성
__8.1.3 이 책에서 소개하는 DApps 구성
_8.2 프런트엔드 구현
__8.2.1 프런트엔드 프레임워크
__8.2.2 JSON-RPC
__8.2.3 프런트엔드 구현 전 준비 사항
__8.2.4 Web3.js
__8.2.5 채팅방 목록 검색해 저장하기
__8.2.6 채팅방 생성
_8.3 미들웨어 기반의 데이터베이스 구축하기
__8.3.1 데이터베이스의 종류
__8.3.2 MySQL 환경 구축하기
__8.3.3 MySQL 동작 확인
_8.4 백엔드 API 개발하기
__8.4.1 개발 언어 선택하기
__8.4.2 백엔드 프레임워크
__8.4.3 개발에 도움을 주는 주요 라이브러리
_8.5 데이터베이스와 스마트 계약의 데이터 동기화
__8.5.1 데이터가 일치하지 않아 발생하는 위험
__8.5.2 이벤트를 불러올 준비하기
__8.5.3 스마트 계약의 이벤트 선언과 생성
__8.5.4 이벤트 감지와 데이터 동기화
_8.6 각 컨테이너 사이의 통신 확인하기
__8.6.1 도커 컴포즈로 여러 개 컨테이너 이미지를 만들고 실행하기
__8.6.2 웹 브라우저에서 애플리케이션 확인
Chapter 09 테스트넷에 배포하고 보****감사하기
_9.1 테스트넷에 스마트 계약 배포
__9.1.1 배포 준비
__9.1.2 트러플로 스마트 계약 배포하기
__9.1.3 스마트 계약의 동작 확인하기
_9.2 보****감사
__9.2.1 보****감사의 중요성
__9.2.2 보****감사 서비스
_9.3 사용자 테스트
__9.3.1 테스트넷의 사용자 테스트
__9.3.2 메인넷의 사용자 테스트
__9.3.3 DApps 성장 단계에서 주목할 점
Chapter 10 더 나은 DApps 개발
_10.1 이더리움의 단점을 보완하는 개발 프로젝트
__10.1.1 스웜
__10.1.2 IPFS
__10.1.3 오라클
__10.1.4 이더리움 네임 서비스
__10.1.5 카이버 네트워크
_10.2 ERC 규격 기반 표준화
__10.2.1 ERC
__10.2.2 EIP와 ERC
__10.2.3 ERC 토큰 규격의 예
_10.3 스마트 계약의 디자인 패턴
__10.3.1 팩토리 계약 패턴
__10.3.2 네임 레지스트리 패턴
__10.3.3 접근 제한 패턴
__10.3.4 명시적 지급 패턴
__10.3.5 자가 삭제 패턴
__10.3.6 일시 중지 패턴
__10.3.7 수정 가능한 계약 패턴
Chapter 11 DApps 개발의 미래
_11.1 이더리움의 첨단 기술
__11.1.1 플라스마
__11.1.2 캐스퍼
__11.1.3 샤딩
__11.1.4 eWASM
__11.1.5 바이퍼
__11.1.6 Yul
__11.1.7 세레니티
__11.1.8 메타마스크 개인정보보호 모드
_11.2 이더리움 이외의 스마트 계약 플랫폼
__11.2.1 이오스
__11.2.2 네오
__11.2.3 질리카
__11.2.4 카데나
_11.3 새로운 암호 기술
__11.3.1 영 지식 증명
__11.3.2 슈노르 서명
__11.3.3 BLS 서명
__11.3.4 비밀 분산
__11.3.5 동형 암호
_11.4 정보 수집
__11.4.1 다양한 블록체인 정보 얻기