▣ 1장: 블록체인, 스마트 컨트랙트와 솔리디1.1 블록체인이란 ___1.1.1 블록체인 구조___1.1.2 블록체인 특징1.2 이더리움과 스마트 컨트랙트___1.2.1 이더리움 ___1.2.2 스마트 컨트랙트___1.2.3 이더와 가스___1.2.4 이더리움 네트워크1.2.5 NFT1.2.6 솔리디티▣ 2장: 리믹스로 솔리디티 시작하기2.1 리믹스 둘러보기2.2 리믹스로 스마트 컨트랙트 작성, 컴파일, 배포___2.2.1 워크스페이스 만들기___2.2.2 불필요한 폴더와 파일 삭제___2.2.3 실습 폴더와 파일 만들기___2.2.4 코드 작성___2.2.5 컴파일과 배포 2.3 Remixd로 스마트 컨트랙트를 저장하기___2.3.1 Node.js 설치___2.3.2 Remixd 설치 ___2.3.3 연동할 폴더를 로컬 서버에 호스팅___2.3.4 스마트 컨트랙트를 파일로 저장2.4 스마트 컨트랙트의 기본 구조, 자료형, 연산___2.4.1 스마트 컨트랙트의 기본 구조___2.4.2 변수와 자료형___2.4.3 연산자___2.4.4 상수2.5 개념 체크 2.6 연습 문제▣ 3장: 가시성 지정자와 함수3.1 가시성 지정자3.2 함수의 개념과 정의 방법 ___3.2.1 함수의 개념___3.2.2 함수 정의3.3 기본 모디파이어___3.3.1 pure와 view의 비교___3.3.2 함수에 모디파이어를 적용하는 방법3.4 함수와 참조 타입3.5 함수와 변수3.6 함수와 가시성 지정자3.7 개념 체크3.8 연습 문제▣ 4장: 조건문과 반복문4.1 조건문___4.1.1 조건문의 구조___4.1.2 if 문의 예___4.1.3 if와 else를 사용하는 조건문의 예___4.1.4 if, else if, else를 사용하는 조건문의 예___4.1.5 조건문 구조에 따른 차이4.2 반복문___4.2.1 3가지 반복문 구조___4.2.2 for 문의 예___4.2.3 while 문의 예___4.2.4 do-while 문의 예4.3 반복문 응용___4.3.1 반복문과 조건문의 조합___4.3.2 중첩 반복문___4.3.3 반복문의 continue와 break4.4 개념 체크4.5 연습 문제▣ 5장: 매핑, 배열, 구조체5.1 매핑___5.1.1 매핑 구문___5.1.2 매핑에 키와 값을 추가___5.1.3 매핑의 키와 값을 삭제5.2 배열___5.2.1 배열의 구조___5.2.2 배열의 인덱스에 대응하는 값을 구하기___5.2.3 배열에 값을 추가하고 변경___5.2.4 배열의 값을 삭제___5.2.5 순차 검색 알고리즘5.3 구조체___5.3.1 구조체 정의 및 반환의 예___5.3.2 구조체를 적용한 배열과 매핑의 예5.4 참조 타입의 데이터 저장 영역___5.4.1 값 타입과 참조 타입의 데이터 저장 방법___5.4.2 memory에 저장된 변수를 다른 memory 변수에 대입___5.4.3 storage에 저장된 변수를 local storage 변수에 넣기___5.4.4 storage에 저장된 변수를 memory 변수에 넣기___5.4.5 그 외의 참조 타입 storage가 포함된 관계5.5 개념 체크5.6 연습 문제▣ 6장: 객체 지향 프로그래밍6.1 객체 지향 기본___6.1.1 이벤트___6.1.2 생성자___6.1.3 객체 지향___6.1.4 상속___6.1.5 캡슐화6.2 객체 지향 고급___6.2.1 다형성___6.2.2 다중 상속___6.2.3 추상화6.3 개념 체크6.4 연습 문제▣ 7장: 오류 및 예외 처리7.1 assert/revert/require___7.1.1 컴파일러 버전에 따른 assert 가스비 비교___7.1.2 revert와 require 정의 방법7.2 try/catch___7.2.1 try/catch 구문___7.2.2 try/catch 정의 방법___7.2.3 인스턴스화에 try/catch 적용___7.2.4 외부 함수에 try/catch 적용___7.2.5 try/catch 블록의 try 블록에서 오류가 발생할 경우7.3 개념 체크 7.4 연습 문제▣ 8장: 모디파이어/이넘/임포트/라이브러리8.1 모디파이어___8.1.1 모디파이어의 개념과 정의 방법___8.1.2 모디파이어 정의 예시 ___8.1.3 모디파이어의 함수 실행 순서8.2 이넘___8.2.1 이넘의 정의 예시8.3 임포트___8.3.1 임포트 예제___8.3.2 상위 폴더에 있는 파일을 임포트8.4 라이브러리___8.4.1 라이브러리의 특징___8.4.2 라이브러리 정의___8.4.3 라이브러리 사용___8.4.4 실습: 오버플로를 막는 라이브러리8.5 개념 체크8.6 연습 문제 ▣ 9장: 이더 송수신9.1 이더 송수신 기본 개념: address/payable/msg.sender/msg.value___9.1.1 address 자료형___9.1.2 payable 키워드___9.1.3 전역 변수 msg.sender와 msg.value9.2 이더를 보내는 3가지 함수: send/call/transfer9.3 함수 fallback과 receive___9.3.1 함수 fallback의 기능___9.3.2 솔리디티 버전 0.6 미만 fallback___9.3.3 솔리디티 버전 0.6 이상 fallback과 receive9.4 함수 call과 delegatecall___9.4.1 함수 call___9.4.2 함수 delegatecall9.5 개념 체크9.6 연습 문제▣ 10장: 메타마스크를 활용한 배포10.1 메타마스크___10.1.1 메타마스크 설치___10.1.2 메타마스크 테스트넷 추가___10.1.3 메타마스크 계정 추가___10.1.4 Rinkeby 테스트넷 이더 받기___10.1.5 이더 보내기10.2 블록 탐색기10.3 스마트 컨트랙트 Random 게임 배포___10.3.1 Random 게임 설명 ___10.3.2 Random 게임 스마트 컨트랙트 작성___10.3.3 컴파일___10.3.4 배포___10.3.5 이더스캔에서 기록 찾기▣ 부록DGIT로 깃허브에 스마트 컨트랙트 파일 저장진법 변환전역 변수함수 스타일___길이가 짧은 함수___길이가 긴 함수주소의 내장 변수 및 함수