์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

Clicker Game์„ ์—ฌ๋Ÿฌ ๋ธ”๋ก์ฒด์ธ์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ

์›น3 ๊ฐœ๋ฐœ, ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผ์ด์…จ๋‚˜์š”? ๐Ÿค” ์ง€์‹ ์ปจํ…์ธ ๋ถ€ํ„ฐ ์‹ค์ „ ์ฝ”๋”ฉ๊นŒ์ง€ ๋” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ํƒ„ํƒ„ํ•œ Web3 ์ธํ”„๋ผ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๊ธฐ ์œ„ํ•ด, DSRV๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์ธ๋„ท๊ณผ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ •๋ณด๋ฅผ ์ฐพ๊ธฐ ์–ด๋ ค์›Œ ์‰ฝ์‚ฌ๋ฆฌ ์‹œ์ž‘ํ•˜์ง€ ๋ชปํ–ˆ๋˜ Web3 dApp ๋ฐ ์ปจํŠธ๋ž™ํŠธ ๊ฐœ๋ฐœ, ์ด์ œ Dev Playground์™€ ํ•จ๊ป˜ ์ฐจ๊ทผ์ฐจ๊ทผ ์•Œ์•„๊ฐ€๋ณด์•„์š”! ๐Ÿ‘ฉโ€๐Ÿ’ป

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ธ”๋ก์ฒด์ธ, ์›น ๊ฐœ๋ฐœ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • ๋ธ”๋ก์ฒด์ธ/Web3 dApp ๋ฐ ์ปจํŠธ๋ž™ํŠธ ๊ฐœ๋ฐœ

  • ๋ฉ”์ธ๋„ท๊ณผ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ

CosmWasm 101 ์™€์”€! 
์›น3 ์‹œ๋Œ€, ๋‚ด ์†์œผ๋กœ ๋งŒ๋“œ๋Š” ๋””์•ฑ ๐ŸŒŽ 

์žฌ๋ฏธ์žˆ๋Š” ๋””์•ฑ ๋งŒ๋“ค๊ธฐ 
ํ•œ๋ฒˆ ํ•ด๋ณด์‹ค๋ž˜์š”? ๐Ÿ™Œ

CosmWasm ๋„คํŠธ์›Œํฌ ์œ„์—์„œ ๊ฐ„๋‹จํ•œ dApp์„ ๋งŒ๋“ค๋ฉฐ 
WEB3์™€ ํ•œ ๊ฑธ์Œ ๋” ์นœํ•ด์ ธ ๋ณด์„ธ์š”. 

์•ˆ๋…•ํ•˜์„ธ์š”, ์›น3 ์‹œ๋Œ€์˜ ์ธํ”„๋ผ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋Š” DSRV์ž…๋‹ˆ๋‹ค!

์š”์ฆ˜ ๋Œ€์„ธ๋กœ ๋– ์˜ค๋ฅธ WEB3, ์™ ์ง€ ๋ง‰์—ฐํ•˜๊ฒŒ ๋А๊ปด์ง€์‹œ๋‚˜์š”? WEB3๋ฅผ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฃŒ๋ฅผ ์ฐพ์•„๋ณด๋ฉด ๊ธฐ์ˆ ์ ์œผ๋กœ ์“ฐ์—ฌ์ง„ ํŠœํ† ๋ฆฌ์–ผ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ WEB3๊ฐ€ ์ƒ์†Œํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์ด๋Ÿฐ ์„ค๋ช…๋“ค์ด ๋”ฑ๋”ฑํ•˜๊ณ  ๋ณต์žกํ•ด ๋ณด์—ฌ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋งˆ๋ จ์ด์ฃ . ํ•˜์ง€๋งŒ DSRV๋Š” ๋” ๋งŽ์€ ์›น ๊ฐœ๋ฐœ์ž๊ฐ€ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ(Smart Contract) ๊ฐœ๋ฐœ์„ ์ ‘ํ•  ์ˆ˜ ์žˆ๋„๋ก, ์ง์ ‘ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉด์„œ WEB3๋ฅผ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.  

์ด๋ฒˆ CosmWasm 101 ์‹œ๋ฆฌ์ฆˆ๋Š” ๊ฐ„๋‹จํ•œ ํด๋ฆฌ์ปค ๊ฒŒ์ž„(Clicker Game)์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ปจํŠธ๋ž™ํŠธ ์„ค๋ช…, ๋ฐฐํฌ, ๋ฆฌ์•กํŠธ(React) ํ”„๋ก ํŠธ์—”๋“œ ์—ฐ๊ฒฐ๊นŒ์ง€ ํ•„์š”ํ•œ ๋ชจ๋“  ๋‚ด์šฉ์„ ์‹ค์Šต์„ ํ†ตํ•ด ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. WEB3.0๊ณผ ๋ธ”๋ก์ฒด์ธ์— ๊ด€์‹ฌ์ด ๋งŽ์€ ์›น ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ํ•จ๊ป˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค!


๊ทธ๋Ÿฐ๋ฐ, CosmWasm์ด ๋ญ์ฃ ? ๐Ÿ˜ฎ

๋‹ค์–‘ํ•œ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒํ˜ธ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ด๋”๋ฆฌ์›€(Ethereum)์˜ ๊ฐ•๋ ฅํ•œ ๊ฒฝ์Ÿ์ž๋กœ ๊ผฝํžˆ๋Š” Cosmos ๋„คํŠธ์›Œํฌ๋Š” ์ตœ๊ทผ WebAssembly์™€ Rust๋ฅผ ์‚ฌ์šฉํ•ด ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” CosmWasm(์ฝ”์Šด์™€์ฆ˜)์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 

CosmWasm์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ๋†’์•„์ง€๊ณ  ์žˆ์ง€๋งŒ, CosmWasm ๋„คํŠธ์›Œํฌ์—์„œ Rust ์–ธ์–ด๋ฅผ ํ™œ์šฉํ•ด ์ปจํŠธ๋ž™ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์˜ˆ์ œ๋Š” ๊ทธ๋™์•ˆ ๊ณต์‹ ๋ฌธ์„œ์— ์˜์–ด๋กœ๋งŒ ์ œ๊ณต๋˜์–ด ์™”์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ดˆ์‹ฌ์ž ์ž…์žฅ์—์„œ ์‹ค์ œ๋กœ CosmWasm์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํŠœํ† ๋ฆฌ์–ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์•˜๊ณ , ์ง„์ž… ์žฅ๋ฒฝ์ด ๋งค์šฐ ๋†’๊ฒŒ ๋А๊ปด์งˆ ์ˆ˜๋ฐ–์— ์—†์—ˆ์Šต๋‹ˆ๋‹ค. 

์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚˜๋ฉด CosmWasm ๋„คํŠธ์›Œํฌ ์œ„์—์„œ ๊ฐ„๋‹จํ•œ ์ปจํŠธ๋ž™ํŠธ ๋ฐ ํ”„๋ก ํŠธ์—”๋“œ ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. CosmWasm, ๊ทธ๋ฆฌ๊ณ  ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™ํŠธ ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ์—ˆ์ง€๋งŒ ์‰ฝ์‚ฌ๋ฆฌ ์‹œ์ž‘ํ•˜์ง€ ๋ชปํ•˜๋˜ ๋งŽ์€ ๋ถ„๋“ค๊ป˜ ์ด ๊ฐ•์˜๊ฐ€ ์ข‹์€ ์ถœ๋ฐœ์ ์ด ๋  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

โš’๏ธ ๊ฐ•์˜์—์„œ ์“ฐ์ด๋Š” ํˆด ๋ฐ ์„ ์ˆ˜ ์ง€์‹

  • IDE: IntelliJ ๋˜๋Š” Visual Studio Code (์›ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.)
  • Front-End: JavaScript & React, CosmJS, Keplr Wallet
  • Contract: Rust & Cargo, Osmosisd, CosmJS
  • JavaScript๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”, Web3.0๊ณผ ๋ธ”๋ก์ฒด์ธ์— ๊ด€์‹ฌ์ด ๋งŽ์€ ํ”„๋ก ํŠธ์—”๋“œ/๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ธฐ๋ณธ์ ์ธ Ethereum์— ๋Œ€ํ•œ ์ง€์‹์ด ์žˆ๋‹ค๋ฉด ๋”์šฑ ์ข‹์Šต๋‹ˆ๋‹ค.)

CosmWasm 101์—์„œ 
๋ฐฐ์šฐ๋Š” ๋‚ด์šฉ ๐Ÿ“š

๋ณธ ๊ฐ•์˜๋Š” ์‹ค์Šต ์œ„์ฃผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ค‘๊ฐ„์ค‘๊ฐ„ ํ•„์š”ํ•œ ์ด๋ก ์„ ์„ค๋ช…ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋จผ์ € 1ํŽธ์—์„œ๋Š” Counter ์ปจํŠธ๋ž™ํŠธ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•ด๋ณด๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผ์‹œ์ผœ๋ณด๋ฉฐ ํ•ด๋‹น ์ปจํŠธ๋ž™ํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. Entrypoint, Processor, Error ๋“ฑ CosmWasm์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋””์ž์ธ ํŒจํ„ด์— ๋Œ€ํ•ด ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ 2ํŽธ์—์„œ๋Š” Counter ์ปจํŠธ๋ž™ํŠธ๋ฅผ Osmosis์™€ Juno Testnet์—์„œ ๋ฐฐํฌํ•ด๋ด…๋‹ˆ๋‹ค. osmosisd์™€ CosmJS, ๊ทธ๋ฆฌ๊ณ  DSRV์˜ Multi RPC ๋…ธ๋“œ ํ”Œ๋žซํผ์ธ All That Node๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ง€์‹๊ณผ Node.js๋ฅผ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด ํฐ ๋ฌด๋ฆฌ ์—†์ด ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ 3ํŽธ์—์„œ๋Š” ์ด์ „์— ๋ฐฐํฌํ•˜์—ฌ ์ž‘์„ฑํ•œ ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ”„๋ก ํŠธ์—”๋“œ์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. CosmJS์™€ Keplr Wallet๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐฐํฌํ•œ ์ปจํŠธ๋ž™ํŠธ๊ฐ€ React.js์™€ ์ƒํ˜ธ ํ†ต์‹ ํ•˜๋ฉด์„œ ์ปจํŠธ๋ž™ํŠธ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๋ธ”๋ก์ฒด์ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Q&A๋ฅผ ํ™•์ธํ•ด๋ณด์„ธ์š”! ๐Ÿ’ฌ

Q. Solidity(์†”๋ฆฌ๋””ํ‹ฐ) ๋“ฑ ๊ธฐ์กด ์ด๋”๋ฆฌ์›€ ๊ด€๋ จ ์ง€์‹์ด ์–ด๋А ์ •๋„๊นŒ์ง€ ํ•„์š”ํ•˜๋‚˜์š”?

๊ธฐ๋ณธ์ ์ธ ERC20 ์ปจํŠธ๋ž™ํŠธ๋ฅผ ๋ฐฐํฌํ•ด๋ณด๊ณ  ํ”„๋ก ํŠธ์—”๋“œ์™€ ํ†ต์‹ ํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q. Rust ์–ธ์–ด์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€๋ฐ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

๋ณธ ๊ฐ•์˜๋Š” Rust ์–ธ์–ด๋ฅผ ์ง‘์ค‘์ ์œผ๋กœ ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Rust์˜ ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋…๋งŒ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๊ตญ์–ด Rust Docs๋ฅผ 1~4์žฅ ์ •๋„๊นŒ์ง€ ์ฝ์–ด์˜ค์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. (https://rinthel.github.io/rust-lang-book-ko/)

Q. Cosmos ๊ธฐ๋ฐ˜ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ข‹์€ ๊ฒƒ ๊ฐ™๋„ค์š”. ๊ฐœ์ธ์ ์œผ๋กœ ํˆฌ์žํ•ด์•ผ ํ• ๊นŒ์š”?

์ด ๊ฐ•์˜๋Š” ์ •๋ณด ์ „๋‹ฌ์„ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ํŠน์ • ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ํˆฌ์ž ๊ถŒ๊ณ , ๋ฒ•๋ฅ ์  ์ž๋ฌธ ๋“ฑ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํˆฌ์ž์˜ ์ฑ…์ž„์€ ๊ฐœ์ธ์—๊ฒŒ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ๋ฐœ์ƒ๋œ ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด ์–ด๋–ค ๋ถ€๋ถ„์—์„œ๋„ DSRV๋Š” ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜์—์„œ ํฌ๊ด„ํ•˜๋Š” ๋‚ด์šฉ๋“ค์€ ํŠน์ • ์ž์‚ฐ์— ๋Œ€ํ•œ ํˆฌ์ž๋ฅผ ์ถ”์ฒœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ฉฐ, ์–ธ์ œ๋‚˜ ๊ฐ•์˜ ๋‚ด์šฉ๋งŒ์„ ํ†ตํ•œ ์˜์‚ฌ ๊ฒฐ์ •์€ ์ง€์–‘ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๋ธ”๋ก์ฒด์ธ ์ปจํŠธ๋ž™ํŠธ ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ

  • ์›น3 ์ƒํƒœ๊ณ„๋ฅผ ๋งŒ๋“ค์–ด๋‚˜๊ฐ€๋Š” ๋นŒ๋”๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ธ ์ดํ•ด

์•ˆ๋…•ํ•˜์„ธ์š”
DSRV Dev Guild์ž…๋‹ˆ๋‹ค.

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!

๋ฌด๋ฃŒ