๊ฐ์ ์์ - Solidity๋ฅผ ์ฌ์ฉํ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ ๊ฐ๋ฐ์ ๋ถํธ์บ ํ (2022)
: https://www.udemy.com/course/solidity-ethereum-bootcamp/learn/lecture/31207252#questions
๊ฐ์ ์๋ฃ : https://ethereum-blockchain-developer.com/003-first-smart-contract/01-setup-remix/
์๋ฆฌ๋ํฐ : https://remix.ethereum.org/
๊ฐ๋ฐ
- pragma solidity ^0.8.1; : ์๋ฆฌ๋ํฐ ๋ฒ์ ์ค์
- ๋ฐฐํฌ์ ํธ๋์ญ์ ์คํํญ
Injected Web3 ์ ํ : ๋ฉํ๋ง์คํฌ ๋ฆฌ๋ฏน์ค ID ์ฐ๊ฒฐ
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.1; //์๋ฆฌ๋ํฐ ๋ฒ์
contract MyContract {
string public myString = "Hello World!";
}
- ๋ฆฌ๋ฏน์ค Deploy ํด๋ฆญ -> ๋ฉํ๋ง์คํฌ ๊ณ์ ์์ ์ฐ๊ฒฐ๋ ๊ณ์ ์ผ๋ก ๊ณ์ฝ ๋ฐฐํฌ
- ์ด๋ ์ค์บ : ๊ฑฐ๋ ์ฑ์ฌ๋จ ํ์ธ, ํธ๋์ญ์ ์ฑ๊ตด๋จ
- ๋ฆฌ๋ฏน์ค : ์ ํธ๋์ญ์ ์ธ์คํด์ค ์๊น,
myString : ์ค๋งํธ ๊ณ์ฝ๊ณผ ์ํธ์์ฉ ํ ์ ์๋ ๋ฒํผ
๋ชจ๋ ๊ณต๊ฐ ๋ณ์๊ฐ ์๋์ผ๋ก ์์ฑ๋๊ณ ์๋ฆฌ๋ํฐ ๋ด๋ถ์์ ๊ธฐ๋ฅ์ ์ป์(๋๋ฅด๋ฉด Hello World ์ถ๋ ฅ๋จ)
์ด๋ก
- ์ค๋งํธ ์ปจํธ๋ํธ : ๋ ์ฌ๋ณด๊ฐ 1994๋ ์ฒ์ ๋ง๋ฆ, ์๋ ํธ๋์ญ์ ์ ๋ถ๋ฆ, ๋ธ๋ก์ฒด์ธ์์ ์๋ํ๋ ์ฝ๋์ ์ผ๋ถ
- ํธ๋์ญ์ ์ ๋ฐ์กํ ๋
: ํด๋น ํธ๋์ญ์ ์ด ์ฑ๊ตด๋จ -> ์ํ ๋ณํ (ํธ๋์ญ์ +์ฑ๊ตด์ ํตํด ์ด๋ฃจ์ด์ง)
** ํธ๋์ญ์ ์ ๋ฐ์กํ๋ค๊ณ ํด์ ์ํ๊ฐ ๋ฐ๋๋ ๊ฒ์ด ์๋. ์ฑ๊ตด์ด ๋์ด์ผํจ.
- ์ค๋งํธ ์ปจํธ๋ํธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
: ๋ชจ๋ ์ปดํ์ผ ๋์ด์ ์ค์ ๋ก ๋ธ๋ก์ฒด์ธ์ EVM bytecode ๋ณด๋
ํธ๋์ญ์ ์ ์กํ๊ณ ๋ฐ์ดํฐ ํ๋๊ฐ ์ฑ์์ง ๊ฑธ ๋ดค์ ๋ ์ ์ก๋๊ฑด ์ปดํ์ผ๋ ์ฝ๋ -> ๋ธ๋ก์ผ๋ก ๋ง๋ค์ด์ ธ ๋ธ๋ก์ฒด์ธ์ ๋ค์ด๊ฐ
- ์ค๋งํธ ์ปจํธ๋ํธ
-> ๋ฐ์ดํธ ์ฝ๋๋ก ๋ฐฐํฌํ์ฌ ๋ธ๋ก์ฒด์ธ์์ ์คํ (EVM-๋ง์ ๋ธ๋ก์ฒด์ธ์ด ํธ๋์ญ์ ๊ธฐ๋ฐ์์ ์ ์ฌํ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ๋ณต์ฌํด๊ฐ, ํ๋ง๋์ด์์)
-> ๋คํธ์ํฌ์ ๋ชจ๋ ์ฐธ์ฌ์ค์ธ ๋ ธ๋๊ฐ ํด๋น ํธ๋์ญ์ ์คํ
-> ๋ธ๋ก์ฒด์ธ์ ๋ชจ๋ ๋ ธ๋๊ฐ ๋ธ๋ก์ฒด์ธ์ ์ฌ๋ณธ์ ๊ฐ์ง๊ณ ์์ด์ ํธ๋์ญ์ ์ด ์ ํจํ์ง ํ์ธ
=> ์ฐธ์ฌํ๋ ๋ชจ๋ ๋ ธ๋๊ฐ ํ๋์ ์์ฅ์ ๊ณต์
- ์๋ฆฌ๋ํฐ
- ํจ์, if/else, Loops(for,while), DataTypes((U)Int, Boolean,Array/Struct,Mapping,Address,No Floats), Inhertiable, modifiers, Imports
contract MyContract {
string public myString = "Hello World!";
}
- ์๋ฆฌ๋ํฐ ๋ฌธ์์์ ์ปจํธ๋ํธ๋ ๋๋ฌธ์๋ก ์์
- ์ค๊ดํธ ์ : ์คํ ๋ฆฌ์ง ๋ณ์, ์ด๋ฒคํธ, ๋ณ๊ฒฝ์, ํจ์, ์์ฑ์ ๋ฑ๋ฑ