๐ ๋ชฉ์ฐจ
- ๊ฒ์ค(Geth)/ํจ๋ฆฌํฐ(Parity) ํด๋ผ์ด์ธํธ
- Web3.js/Truffle
- ๊ฐ๋์(Ganache)
- ๋ฉํ๋ง์คํฌ(Metamask)
- ์ด๋์ค์บ(Etherscan)
- ๋ฆฌ๋ฏน์ค(Remix)
- ๋ง๋ฌด๋ฆฌ
๐ ๊ฒ์ค(Geth)/ํจ๋ฆฌํฐ(Parity) ํด๋ผ์ด์ธํธ
์์ ๊ธ์์ Geth์ ํจ๋ฆฌํฐ ๋ฑ ํด๋ผ์ด์ธํธ๋ฅผ ์ค์นํ๊ณ ์คํํ๋ฉด
EVM(Ethereum Virtual Machine)์ด ์์๋๊ณ
EVM์ด ํธ๋์ญ์ ์ ๋๊ธฐํ, ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ ์คํ์ ์์ํ๋ค๊ณ ์ธ๊ธํ์ต๋๋ค.
.
.
.
"Geth"
Geth๋ ์ด๋๋ฆฌ์ ์ฌ๋จ์ด ์ ๊ณตํ๋ ๊ณต์ ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด๋ก์จ, Go ์ธ์ด๋ก ๊ฐ๋ฐ๋์์ต๋๋ค.
Geth๋ฅผ ์ฒ์ ์์ํ๋ฉด ๋คํธ์ํฌ ๋ด์ ๋ค๋ฅธ ์ด๋๋ฆฌ์ ํด๋ผ์ด์ธํธ(node๋ผ๊ณ ๋ ๋ถ๋ฆผ)์
์ฐ๊ฒฐํ๋ ์์ ์ ๋จผ์ ์์ํ๊ณ ๋ธ๋ก์ฒด์ธ์ ์ ์ฒด ์ฌ๋ณธ์ ๋ด๋ ค๋ฐ๊ฒ ๋ฉ๋๋ค.
.
.
.
Geth๋ ๋ธ๋ก์ฒด์ธ์ ๋ณต์ฌ๋ณธ์ ์ต์ ์ํ๋ก ์ ์งํ๊ธฐ ์ํด ๋์์์ด ๋ค๋ฅธ ๋ ธ๋์ ํต์ ํฉ๋๋ค.
๋ํ ๋ธ๋ก์ ์ฑ๊ตดํ๊ณ , ๋ธ๋ก์ฒด์ธ์ ํธ๋์ญ์ ์ ์ถ๊ฐํ๊ณ ๋ธ๋ก์ ํธ๋์ญ์ ์ ๊ฒ์ฆํ๋ฉฐ ํธ๋์ญ์ ์ ์คํํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ RPC๋ฅผ ํตํด ์ํธ์์ฉํ ์ ์๋ API๋ฅผ ๋ ธ์ถํ์ฌ ์๋ฒ ์ญํ ์ ํ๊ธฐ๋ ํฉ๋๋ค.
๋ธ๋ก์ฒด์ธ์ ์ฐ๊ฒฐํ ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํด๋ผ์ด์ธํธ(geth console)๋ ์์ต๋๋ค.
.
.
.
"Parity"
Parity๋ ํ์ฌ Parity.Inc.๋ผ๋ ๊ธฐ์ ์์ ์ด์ํ๊ณ ์๊ณ
์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์ ๋ ๋ค๋ฅธ ๊ตฌํ์ฒด์ด๋ฉฐ, Rust ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ฐ๋ฐ๋์์ต๋๋ค.
์ฌ์ค ์ด๋๋ฆฌ์ ๋คํธ์ํฌ์ ์ ์ํ ์ ์๋ ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ๊ธธ์ ๋๊ตฌ์๊ฒ๋ ์ด๋ ค ์์ผ๋ฉฐ,
C++, ํ์ด์ฌ ๋ฐ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋ ํด๋ผ์ด์ธํธ๋ ์์ต๋๋ค.
์ํ๋ค๋ฉด ์ด๋๋ฆฌ์ ํฉ์์ ์ฌ์์ ๋ฐ๋ผ ์์ ์ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌํํ ์๋ ์์ต๋๋ค.
๐ Web3.js/Truffle
"Web3.js"
web3.js๋ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ๊ณผ ์ํธ์์ฉํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ๋ช ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ์์
์ฌ์ฉ์๊ฐ ํ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ฉํ๊ฒ ํ ์ ์์ต๋๋ค.
๋ธ๋ก์ฒด์ธ๊ณผ ์ํธ์์ฉํ๋ ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก Ether.js๋ ์์ต๋๋ค.
.
.
.
"Truffle"
Ruby on Rails, Django ๋ฑ๊ณผ ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ํ๋ ์์ํฌ์ฒ๋ผ,
ํธ๋ฌํ์ Dapp ๊ฐ๋ฐ์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ ์ค ํ๋๋ก์จ
๋ธ๋ก์ฒด์ธ์์ ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผํ๊ณ ๋ฐฐํฌํ๋ ๋ณต์ก์ฑ์ ๋ง์ด ์ถ์ํํฉ๋๋ค.
ํธ๋ฌํ์ ๋์์ผ๋ก Embark๋ผ๋ ํ๋ ์์ํฌ๋ ์์ต๋๋ค.
๐ ๊ฐ๋์(Ganache)
ํ ์คํธ ๋ชฉ์ ์ผ๋ก PC์ ์ค์นํด์ ์ฌ์ฉํ ์ ์๋ ์ผ์ข ์ ๊ฐ์ด ๋ธ๋ก์ฒด์ธ์ ๋๋ค.
๊ฐ์ด ๋ธ๋ก์ฒด์ธ์ด๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ ํ์ ์์ด ๋ก์ปฌ์์ ์๋์ํฌ ์ ์์ด, ๊ณ์ฝ์ ์์ฝ๊ฒ ๋ฐฐํฌ ๋ฐ ํ ์คํธํด๋ณผ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์ ์ํด geth ๋๋ ํจ๋ฆฌํฐ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด
๊ฐ ํธ๋์ญ์ ์ ์คํํ๋ ๋ฐ 15์ด์ฉ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ์๋๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฐ ๋ชฉ์ ์ธ ๊ฐ๋์(ganache)๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ๋ด ๋ธ๋ก์ฒด์ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ganache-cli ๋๋ GUI ๋ฒ์ ์ ์ปค๋งจ๋ ๋ผ์ธ ๋ฒ์ ์ ์ค์นํ ์ ์์ต๋๋ค.
๊ฐ๋์์ ๋ ๋ค๋ฅธ ์ฅ์ ์ ํ ์คํธ๋ฅผ ์ํด
100๊ฐ์ ์ด๋๊ฐ ๋ฏธ๋ฆฌ ํ์ฌ๋ 10๊ฐ์ ํ ์คํธ ๊ณ์ ์ ํ๋ณดํ๊ฒ ๋๋ค๋ ์ ์ ๋๋ค.
npm install ganache-cli
node_modules/.bin/ganache-cli
๐ ๋ฉํ๋ง์คํฌ(Metamask)
์ด์ ๊ธ์์ ์ง๊ฐ(Wallet)์ ๋ํด ์ค๋ช ํ์ต๋๋ค.
์ด๋๋ฆฌ์ ์ง๊ฐ ์ค ๋ฉํ๋ง์คํฌ๋ ์ปค๋ฎค๋ํฐ์์ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ์ธ๊ธฐ์๋ ์ง๊ฐ ์ค ํ๋์ ๋๋ค.
๋ฉํ๋ง์คํฌ ์น์ฌ์ดํธ์์ ํฌ๋กฌ ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ค์นํ ์ ์์ต๋๋ค.
๐ ์ด๋์ค์บ(Etherscan)
์ด๋์ค์บ์ ์ด๋์ค์บ ์ฌ์์ ์๋น์คํ๋ ๋ฌด๋ฃ ํ๋ก ํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก, ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ์ํ ํธ๋ฆฌํ ํ์๊ธฐ์ ๋๋ค.
ํผ๋ธ๋ฆญ ์ด๋๋ฆฌ์ ๋ธ๋ก์ฒด์ธ์ ๋ชจ๋ ์ฃผ์, ํธ๋์ญ์ ๊ณผ ๋ธ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์ด ์น์ฌ์ดํธ์์ ํ์ธํ ์ ์์ต๋๋ค.
์ผ์ชฝ ๊ทธ๋ฆผ์ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ๋ฅผ ์๊ฐํํ ๊ฒ์ผ๋ก ๋คํธ์ํฌ ๋ด์์ ์ด๋์ค์บ์ ์์น๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋ค์ํ ํผ๋ธ๋ฆญ ๋คํธ์ํฌ์ ๋ํด ๋์๋๋ ๊ฐ๊ฐ์ ์ด๋์ค์บ ํ์ด์ง๊ฐ ์์ผ๋ฉฐ, ๋ฉ์ธ๋ท ๋งํฌ๋ ์๋์ ๊ฐ์ต๋๋ค.
Ethereum (ETH) Blockchain Explorer
Etherscan allows you to explore and search the Ethereum blockchain for transactions, addresses, tokens, prices and other activities taking place on Ethereum (ETH)
etherscan.io
๐ ๋ฆฌ๋ฏน์ค(Remix)
๋ฆฌ๋ฏน์ค๋ ์ค๋งํธ ๊ณ์ฝ์ ์ฝ๋ฉํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ธ๋ผ์ฐ์ IDE(ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ)์ ๋๋ค.
ํธ์ง๊ธฐ๋ก ์ฌ์ฉํ ์ ์์ ๋ฟ ์๋๋ผ,
IDE๋ก ์ง์ ๋ค์ํ ๋คํธ์ํฌ์ ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผํ๊ณ , ๋ฐฐํฌํ๊ณ ์ํธ์์ฉํ ์ ์์ต๋๋ค.
๋ํ, ๋ค์ํ ์ปดํ์ผ๋ฌ ๋ฒ์ ์ ์ ํํ๊ณ , ์ค๋งํธ ๊ณ์ฝ์ ๋๋ฒ๊น ํ๋ ๋ฑ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
.
.
.
๋ฆฌ๋ฏน์ค๋ ์๊ท๋ชจ ์ค๋งํธ ๊ณ์ฝ์ ์ ์ํ๊ฒ ํ ์คํธํ๊ธฐ์ ์ข์ง๋ง,
์ ๋ฌธ์ ์ธ ์ค๋งํธ ๊ณ์ฝ ๊ฐ๋ฐ์ ์ํด์๋ Vim, Atom, VSC ๋๋ Sublime๊ณผ ๊ฐ์
ํธ์ง๊ธฐ๋ฅผ ๊ฐ๋ฐ์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ ์ค๋งํธ ๊ณ์ฝ์ ์ปดํ์ผ ๋ฐ ๋ฐฐํฌ์๋
ํธ๋ฌํ(Truffle) ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๊พธ์คํ ๋ธ๋ก์ฒด์ธ ๊ด๋ จํ ์ ๋ณด ๋ฐ ๋ด์ฉ๋ค์ ์ ๋ฆฌํด์
์ดํดํ๊ธฐ ์ฝ๊ฒ๋ ๋ธ๋ก๊ทธ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ก๋ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
โฌ๏ธ ์ธ์คํ๊ทธ๋จ์ผ๋ก๋ ๊ด๋ จ ์ ๋ณด๋ฅผ ๋ง๋๋ณด์๋ ค๋ฉด ์๋ ๋งํฌ๋ก ๋๋ฌ ์ค์ธ์โบ
๏ธ