웹 애플리케이션에서 블록체인 서비스를 제공하고 싶다면 개념부터 이해해야 한다. 이 책은 블록체인, 이더리움, 스마트 콘트랙트 등 꼭 알아야 하는 개발 요소의 개념을 친절하게 설명한다. 또한, 개발 도구의 사용법과 웹 애플리케이션과의 연동 과정을 따라 할 수 있게 도와 블록체인 개발자로 한 걸음 나아갈 수 있도록 한다.
Contents
-01 배경지식
__1.1 분산화 시스템
__1.2 블록체인
__1.3 이더리움
___1.3.1 EIP
___1.3.2 이더리움 네트워크
__1.4 스마트 콘트랙트
___1.4.1 구조
___1.4.2 개인키와 공개키
___1.4.3 EOA와 CA
___1.4.4 개인키 관리 기법
__1.5 블록체인 활용 도구
___1.5.1 지갑
___1.5.2 웹3
___1.5.3 거래소
__1.6 스마트 콘트랙트 개발의 의미
___1.6.1 네트워크 모델의 이해
___1.6.2 스마트 콘트랙트의 함수 호출
___1.6.3 거래는 어떻게 실행될까?
-02 스마트 콘트랙트 개발 도구
__2.1 Node.js와 npm
___2.1.1 설치
___2.1.2 npm 사용법
__2.2 노드 구성
___2.2.1 가나슈 CLI
___2.2.2 IPFS
__2.3 솔리디티 언어 개발 도구
___2.3.1 비주얼 스튜디오 코드
___2.3.2 리믹스
__2.4 트러플
___2.4.1 프로젝트 생성 및 환경 설정
___2.4.2 코드 작성
___2.4.3 컴파일
___2.4.4 배포
___2.4.5 테스트 (1) - 콘솔 모드
___2.4.6 테스트 (2) - 테스트 코드
__2.5 web3.js
___2.5.1 web3.js 사용 준비
___2.5.2 네트워크 연결
___2.5.3 주소, 개인키, 키스토어 생성
___2.5.4 이더리움 전송 트랜잭션
___2.5.5 스마트 콘트랙트 배포 트랜잭션
___2.5.6 스마트 콘트랙트 함수 호출 트랜잭션
___2.5.7 스마트 콘트랙트 데이터 조회
___2.5.8 트랜잭션 조회
___2.5.9 블록 조회
___2.5.10 이더리움 보유량 조회
___2.5.11 블록 이벤트 수신
___2.5.12 생성된 트랜잭션 이벤트 수신
___2.5.13 스마트 콘트랙트 이벤트 수신
___2.5.14 이벤트 구독 해제
___2.5.15 이벤트 시그니처와 메소드 ID 만들기
___2.5.16 롭스텐 테스트 네트워크 연결
__2.6 메타마스크
___2.6.1 설치
___2.6.2 네트워크 설정
___2.6.3 네트워크 추가
___2.6.4 지갑 가져오기
___2.6.5 지갑 내보내기
___2.6.6 이더리움 전송 트랜잭션
__2.7. 니모닉
___2.7.1 HD 지갑
___2.7.2 니모닉 생성 및 복구
___2.7.3 메타마스크 지갑 복구
-03 솔리디티 언어
__3.1 문법
___3.1.1 스마트 콘트랙트 구조
___3.1.2 데이터 타입
___3.1.3 연산자
___3.1.4 조건문과 반복문
___3.1.5 함수
___3.1.6 에러 핸들러
___3.1.7 함수변경자
___3.1.8 이벤트
___3.1.9 상속
___3.1.10 라이브러리
___3.1.11 인터페이스
___3.1.12 추상 콘트랙트
___3.1.13 오버플로와 언더플로
__3.2 디자인 패턴
___3.2.1 접근 제한 패턴
___3.2.2 긴급 중지 패턴
___3.2.3 출금 패턴
-04 ERC-20
__4.1 개념
__4.2 인터페이스
___4.2.1 조회
___4.2.2 트랜잭션
___4.2.3 이벤트
__4.3 스마트 콘트랙트 개발
___4.3.1 트러플 프로젝트 생성 및 초기화
___4.3.2 ERC-20 코드 작성
___4.3.3 컴파일
___4.3.4 배포
__4.4 테스트
___4.4.1 메타마스크와 리믹스
___4.4.2 트러플의 콘솔 모드
___4.4.3 트러플의 테스트 코드
__4.5 개선할 사항
__4.6 오픈제플린 구현
-05 ERC-721
__5.1 개념
__5.2 인터페이스
___5.2.1 조회
___5.2.2 트랜잭션
___5.2.3 이벤트
___5.2.4 기타 기능
__5.3 스마트 콘트랙트 개발
___5.3.1. 트러플 프로젝트 생성 및 초기화
___5.3.2 ERC-721 코드 작성
___5.3.3 컴파일
___5.3.4 배포
__5.4 테스트
___5.4.1 리믹스
___5.4.2 트러플의 콘솔 모드
___5.4.3 트러플의 테스트 코드
__5.5 ERC-165란?
-06 나만의 NFT 플랫폼 만들기
__6.1 노드 구성
___6.1.1 가나슈 CLI
___6.1.2 IPFS
__6.2 스마트 콘트랙트 개발
___6.2.1 트러플 프로젝트 생성 및 초기화
___6.2.2 ERC-721 코드 작성
___6.2.3 컴파일
___6.2.4 배포
__6.3 프론트엔드 개발
___6.3.1 화면 구성 - HTML
___6.3.2 스타일 적용 - CSS(부트스트랩)
___6.3.3 기능 구현 - 자바스크립트
__6.4 개선할 사항
Author
박정태
호기심에 신청한 다른 학과 전공 수업 시간에 크롤러를 알게 되고 그 매력에 빠졌다.
공부만으로는 갈증이 해소되지 않아 휴학 후 스타트업하여 패션 데이터 수집을 위한 쇼핑몰 크롤러와 크롤러 프레임워크를 개발하였다.
크롤러 외에도 좀 더 재미난 것을 만들어보고 싶어 교육 자료 공유 플랫폼, 화장품 추천 서비스, 의류 반품/주문/리오더 시스템과 웹 서비스와 같은 서비스 시스템을 개발하다가 영등포구청 제안 평가 시스템을 시작으로 부산항만공사 컨테이너 부두 간 반·출입 통합발급시스템, 비즈니스온 커뮤니케이션 계약시스템에서 블록체인 시스템 구축을 담당하여 프로젝트를 진행하였다.
크롤링 프로젝트의 경험을 살려 코딩애플에서 파이썬으로 크롤러 만들기, node.js로 쇼핑몰 만들기 강사로 활동했으며, 패스트캠퍼스 등 다양한 교육기관에서 블록체인 관련 강의를 하고 있다. 현재 (주)Ino파트너스 개발팀에서 팀장으로 직책을 수행하고 있다. 지금도 계속 재미있는 것들을 하려고 노력중이다.
호기심에 신청한 다른 학과 전공 수업 시간에 크롤러를 알게 되고 그 매력에 빠졌다.
공부만으로는 갈증이 해소되지 않아 휴학 후 스타트업하여 패션 데이터 수집을 위한 쇼핑몰 크롤러와 크롤러 프레임워크를 개발하였다.
크롤러 외에도 좀 더 재미난 것을 만들어보고 싶어 교육 자료 공유 플랫폼, 화장품 추천 서비스, 의류 반품/주문/리오더 시스템과 웹 서비스와 같은 서비스 시스템을 개발하다가 영등포구청 제안 평가 시스템을 시작으로 부산항만공사 컨테이너 부두 간 반·출입 통합발급시스템, 비즈니스온 커뮤니케이션 계약시스템에서 블록체인 시스템 구축을 담당하여 프로젝트를 진행하였다.
크롤링 프로젝트의 경험을 살려 코딩애플에서 파이썬으로 크롤러 만들기, node.js로 쇼핑몰 만들기 강사로 활동했으며, 패스트캠퍼스 등 다양한 교육기관에서 블록체인 관련 강의를 하고 있다. 현재 (주)Ino파트너스 개발팀에서 팀장으로 직책을 수행하고 있다. 지금도 계속 재미있는 것들을 하려고 노력중이다.