์ด๋ฒ ํฌ์คํ ์์๋ ๊ธฐ๋ณธ ํ๋ก์ ํธ ์ฌ์ฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
์ฝ๋ฉ์ ์ํด Visual Studio Code๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
-Node.js
์ต์ ๋ฒ์ ์ ์ฌ์ฉํด๋ ๋ฌธ์ ๊ฐ ์์ง๋ง ๊ทธ๋๋ ์์ ์ ,์ ๋ขฐ๋๋์ ๋ฒ์ ์ ์ถ์ฒ๋๋ฆฝ๋๋ค!
-Truffle
node.js๋ฅผ ์ค์นํ๊ณ ํ๊ฒฝ๋ณ์์ ์ถ๊ฐํด์ฃผ์ จ๋ค๋ฉด, ์ ํฌ๋ npm๋ช ๋ น์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค
-Ganache
ganache ๋ค์ด์ ๋๋ค.
-MetaMask
๋ง์ง๋ง์ผ๋ก ๋ฉํ๋ง์คํฌ์ ๋๋ค.ย
์ด์ ๋๋ฉด ์ด๊ธฐ ํ๋ก์ ํธ์ ํ์ํ ํ๋ก๊ทธ๋จ๋ค์ ๋ค ๋ค์ด ๋ฐ์๊ฑฐ ๊ฐ์ต๋๋ค.. ํ์คํ์ง ์๋ค์ ใ ใ ใ ย
๊ธฐ์ต์ด ์์๋์.. ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ ํ์ํ ํด์ ๋ค์ด๋ฐ๊ธฐ๋ก ํ์ฃ !
์์ด์ ํ๋ก์ ํธ๋ฅผ ์์ฑํด ๋ด์ผ๊ฒ ์ฃ !
ํ์ง๋ง ์ ํฌ์๊ฒ ํฌ์์์ด ์๋ค์!! truffle์์ boxes๋ผ๋ ํ๋ก์ ํธ๋ฅผ ์ ๊ณตํด์ฃผ๋๋ฐ..
์ด ๋ฐ์ค๋ ์ข ๋ฅ๊ฐ ๋ง์ง๋ง ์ ํฌ๋ react๋ฅผ ์ฌ์ฉํ ๊ฑฐ๊ธฐ ๋๋ฌธ์ react๋ฅผ ์ํ ๋ฐ์ค๋ฅผ ๋ค์ด ๋ฐ๋๋ก ํ ๊ฒ์.
https://github.com/truffle-box/react-box
github์ ์์ฃผ ์น์ ํ๊ฒ ์ ์ฌ๋ผ๊ฐ์์ด์ !
๋ณด์๋ฉด master๊ณผ develop๊ฐ ์์ด์.. ์ ํฌ๋ develop๋ฅผ ์ฌ์ฉํ๋๋ก ํ๊ฒ ์ต๋๋ค.
(์ฌ์ค.. master๋ก ํด๋ณด๋ คํ์ง๋ง ์ด๋ฐ์ ๋ฐ ์ค๋ฅ๊ฐ ๋ํ๋์ ํฌ๊ธฐํ๋ต๋๋ค ใ ใ )
ย react์ ์ค๋งํธ์ปจํธ๋ํธ๋ฅผ์ํ solidityํ์ผ์ด ๋ด์ฅ๋์ด์์ต๋๋ค.
๊ต์ฅํ Dapp์ ๋ง๋ค๊ธฐ ์ฝ๊ฒ truffle์์ ์ ๊ณตํด์ฃผ๋ ํ๋ก์ ํธ ํฌํ๋ฆฟ(?) ๊ฐ๋ ์ผ๋ก ๋ณด์๋ฉด๋ ๊ฑฐ๊ฐ์์!
๋ค์ด์ ๋ฐ์ผ์ จ์ผ๋ฉด ์ํ๋ ํด๋์ ์์ถ์ ํ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค.
ํด๋น ํด๋์์ ์ ์ฌ์ง๊ณผ๊ฐ์ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ์ ํ! code .์ ์ณ์ฃผ์๋ฉด ๊ทธ ํด๋์ ์๋ ํ๋ก์ ํธ๊ฐ ์๋์ผ๋ก
์ ํฌ์ ์ปดํ์ผ๋ฌ์์ ์ด๋ฆฌ๊ฒ ๋๋ต๋๋ค.
๊ฐ์ฅ์ค์ํ ๋ชจ๋์ ๋ค์ด ๋ฐ์์ผํ๋๋ฐ package.json์ ๋ณด๋ฉด ์ด ํ๋ก์ ํธ๋ฅผ ์คํ์ํค๊ธฐ ์ํด ํ์ํ ๋ชจ๋๋ค์ด
์ด๋ฏธ ์ ์๊ฐ ๋์ด์์ต๋๋ค! ์ ํฌ๋ ๋จ์ํ๊ฒ npm install ์ ํด์ฃผ์๋ฉด๋ฉ๋๋ค ์ฝ 1~3๋ถ์ ๋ ์์....waiting...
ํ๋ก์ ํธ๋ฅผ ์์ฑํ์ผ๋ฉด ์คํ์ ์์ผ๋ด์ผ๊ฒ ์ฃ ?
ํ๋ก์ ํธ๋ฅผ ์คํํ์ จ๋ค๋ฉด ganache๋ฅผ ์คํ์์ผ์ฃผ์ธ์!
ganache๋ 10๊ฐ์ ๊ณ์ ์ ์ง๊ธํ๊ณ , ๊ฐ ๊ณ์ ๋ง๋ค ๋ฌด๋ ค..100์ด๋๋ฅผ ์ ๊ณตํ๋ต๋๋ค
(ํ์ง๋ง.. ์ด๊ฑด private network์ด๋ฏ๋ก... ํ ์ค๋ฅด๋ฅผ ์ํด์๋ง ์ฌ์ฉํ ์์๋ค๋์ ใ ใ ์ํ๊น๋ค์)
์ฝ๋์ค๋ช ์ ์คํ๋ถํฐ ํด๋ณด๊ณ ๋๋ฆฌ๊ธฐ๋กํ๊ณ , ์ผ๋จ ์คํ์ ํด๋ด ์๋ค!!
์คํํ๊ธฐ์ ์, ์ ํฌ๋ ์ค๋งํธ์ปจํธ๋ํธ๋ฅผ ๋ธ๋ก์ฒด์ธ์ ๋ฐฐํฌ๋ฅผ ํด์ผํฉ๋๋ค .
์ค๋งํธ์ปจํธ๋ํธ๋ฅผ ๋ฐฐํฌํ๊ธฐ์ ์ ๋ํ๊ฐ์ง ํด์ผํ ๊ฒ ๋จ์์์ด์!
ganache ์ฆ, private ethereum network ์ ์ ํฌ์ ์ฝ๋๋ฅผ ์ฐ๋์์ผ ์ฃผ์ด์ผํฉ๋๋ค
https://truffleframework.com/docs/truffle/reference/configuration๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ์์ธํ ์ค๋ช ์ด ๋์์์ต๋๋คย
๊ฐ๋์ ์ค์ ์ผ๋ก ๋ค์ด๊ฐ์ ์ ํฌํธ๋ฅผ 8545๋ก ๋ฐ๊พธ๊ณ restart ํ์๋ฉด ๊ฐ๋์ ์ธํ ๋ ์๋ฃ์ ๋๋ค.
์ ๊ทธ๋ผ์ด์ ์ฝ๋๋ฅผ ์์ ํด๋ด ์๋ค
truffle.js ํ์ผ์์ ์๋์ ๊ฐ์ด ์ ๋ ฅํด์ฃผ์ธ์!
์ด์ ๋๋์ด ์ค๋งํธ์ปจํธ๋ํธ๋ฅผ ๋ฐฐํฌํ๊ณ ํ๋ก์ ํธ๋ฅผ ์คํ์์ผ ๋ณด๊ฒ ์ต๋๋ค.
๋ช ๋ น์ด๋ truffle migrate --compile-all --reset --network ganache !
๋ณด์๋ฉด ๋ฐฐํฌ๋ ์๋์๊ตฌ... ์์ ์ด๋๊ฐ 100์์ 99.95๋ก ์ค์๋ค์
๊ทธ์ด์ ๊ฐ ๋ฐ๋ก ๊ฐ์ค๋น์ ๋๋ค ์ด๋๋ฆฌ์์ ์ปจํธ๋ํธ๋ฅผ ๋ฐฐํฌํ ๋, ์คํํ ๋ ๊ฐ์ค๋น๊ฐ ์๋ชจ๋๋ต๋๋ค.
์ค๋งํธ์ปจํธ๋ํธ ๋ฐฐํฌ๊น์ง ๋๋ฌ๊ตฌ ์ด์ ๋๋์ด ์คํ๋จ๊ณ์ ๋๋ค.
๊ฐ๋จํ๊ฒ powershell์์ npm start ๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์...
์คํ์ ํ์๋ฉด ์์ ๋ญ๋ผ๊ณ ๋ญ๋ผ๊ณ ์๋ฌ๊ฐ ๋์ค๋๋ฐ.... ๋ฉํ๋ง์คํฌ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ฉด ํด๊ฒฐ๋๋ต๋๋ค!
์์ด์ .. ๋ฉํ๋ง์คํฌ๋ฅผ ์ฐ๊ฒฐํด๋ด ์๋ค!
๊ฐ๋์์ ๋ณด์๋ฉด ์๋จ์ ย ย MNEMONIC๋ผ๊ณ ์จ์๊ณ ์๋ ๋จ์ด๋ค ์ด ์๋๊ฒ ๋ณด์ด์ค๊ฒ๋๋ค.
ํ๋๋ ๋น ์ง์์ด ๋ชจ๋ ๋ณต์ฌํด์ฃผ์ธ์!
๋๋ฒ์งธ์ฌ์ง์ ์๋ง ์ ๋์ข ๋ค๋ฅด์ค๊ฑฐ์์ ์ ๋ ์ด๋ฏธ ์ค๋์ ์.. ๊ณ์ ์ ๋ง๋ค์ด ๋์ ์ํ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ฌดํผ ์ด๋ฐ์์ผ๋ก ๊ณ์ ์ ๋ง๋ค๊ณ ๋ค์ ์ ํฌ์ ํ๋ก์ ํธ ํ๋ฉด์ ๋ณด๋ฌ๊ฐ์๋ค!
ํ๋ฉด์ ๋ณด์๋ฉด ํ์ฌ store value :0 ์ด๋ผ๊ณ ์จ์๋๊ฑธ ๋ณด์ค๊ฑฐ์์
ํ์ง๋ง ์ด์ ์ค๋งํธ ์ปจํธ๋ํธ๋ฅผ ์คํ ํ๋ค๋ฉด!
์ดํ๋ฉด์ด ๋์จ๋ค๋ฉด ์ฑ๊ณตํ์ ๊ฒ๋๋ค!ย
5๋ก ๋ฐ๋๊ฑธ ๋ณด์ค์ ์์ต๋๋ค.ย
๊ต์ฅํ ๋จ์ํ ์ค๋งํธ ์ปจํธ๋ํธ ์์ ์ ๋๋ค.ย
์ด๋ถ๋ถ์์ ์์ฑ๋ ํจ์๊ฐ ์์ฑ๋๊ณ , ์์ componentwillmount ย ์์ ์คํ๋์ด ์ง๋ ์ฝ๋์์ต๋๋ค.
๊ต์ฅํ ๊ฐ๋จํ ์ฝ๋์ด๋ฏ๋ก ์ค๋ช ์ ์๋ตํ๊ณ , ๋ค์ ํฌ์คํ ์์ ์ ํฌ๊ฐ ์ง์ ์ค๋งํธ์ปจํธ๋ํธ๋ฅผ ๋ง๋ค๊ณ ๋ค๋ค๋ณด๋๋กํ์ฃ !
๊ถ๊ธํ์ ์ด๋ ์ค๋ฅ๊ฐ ๋์๋๋ถ์ ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ์ต๋ํ ๋น ๋ฅด๊ฒ ๋ต๋ณ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ฒ์์ผ๋ก ํด๋ณด๋ ํฌ์คํ ์ด๋ผ ๋ง์ด ๋ฏธ์ํ์ง๋ง... ๋๊ทธ๋ฌํ ๋ด์ฃผ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค ใ ใ