๐ŸŽ“ ๋ธ”๋ก์ฒด์ธ ๋ฐธ๋ฆฌ X ์•Œ๊ณ ๋žœ๋“œ ๊ฐœ๋ฐœ์ž ๋ถ€ํŠธ์บ ํ”„

๐Ÿšฉ ์„ธ์…˜ 2: ํŒŒ์ด์ฌ์œผ๋กœ ์•Œ๊ณ ๋žœ๋“œ์—์„œ ๋””์ง€ํ„ธ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž!

๋‘๋ฒˆ์งธ ์•Œ๊ณ ๋žœ๋“œ ๊ฐœ๋ฐœ์ž ๋ถ€ํŠธ์บ ํ”„์— ์˜ค์‹  ๋ธ”๋ก์ฒด์ธ ๋ฐธ๋ฆฌ ํ•™ํšŒ์›๋ถ„๋“ค ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค~!

์„ธ๋ถ€ ์ผ์ •:

  1. ์•Œ๊ณ ๋žœ๋“œ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์— ๊ด€ํ•œ ๋ชจ๋“ ๊ฒƒ ์•Œ์•„๋ณด๊ธฐ (30๋ถ„)
  2. ์ฝ”๋“œ ๋ฐ๋ชจ (30๋ถ„)
  3. ์ฝ”๋”ฉ ์„ธ์…˜ (2์‹œ๊ฐ„)

์•Œ๊ณ ๋žœ๋“œ ์Šค๋งˆํŠธ ๊ณ„์•ฝ์— ๊ด€ํ•œ ๋ชจ๋“  ๊ฒƒ ๐Ÿ‘‰ PPT ์Šฌ๋ผ์ด๋“œ

์ด๋ฒˆ ์ฝ”๋”ฉ ์„ธ์…˜์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋””์ง€ํ„ธ ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์•Œ๊ณ ๋žœ๋“œ ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

DigitalMarketplace ์•ฑ ์„ค๋ช…

์ด ๊ฐ„๋‹จํ•œ DigitalMarketplace ์•ฑ์€ ์—์„ฏ(ASA)๋ฅผ ํŒ๋งคํ•  ์ˆ˜ ์žˆ๋Š” ์Šค๋งˆํŠธ ๊ณ„์•ฝ์ž…๋‹ˆ๋‹ค.

์ด ์•ฑ์˜ lifecycle์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์•ฑ ์ƒ์„ฑ์ž(ํŒ๋งค์ž)๊ฐ€ ์•ฑ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์•ฑ ์ƒ์„ฑ์ž(ํŒ๋งค์ž)๊ฐ€ ์•ฑ์„ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ๋ถ€ํŠธ์ŠคํŠธ๋žฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์•ฑ์€ ํŒ๋งคํ•  ์—์…‹(ASA)์„ ์„ค์ •ํ•˜๊ณ , ๋‹จ๊ฐ€๋ฅผ ์„ค์ •ํ•˜๊ณ , ์•ฑ ๊ณ„์ •์ด ์˜ตํŠธ์ธ์„ ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ตฌ๋งค์ž๊ฐ€ ์•ฑ์—์„œ ํŒ๋งคํ•˜๋Š” ์—์…‹(ASA)์„ buy๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ๊ตฌ๋งคํ•ฉ๋‹ˆ๋‹ค.
  4. ์•ฑ ์ƒ์„ฑ์ž(ํŒ๋งค์ž)๊ฐ€ withdraw_and_delete ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ์•ฑ ๊ณ„์ •์— ๋‚จ์•„์žˆ๋Š” ์—์…‹(ASA)์„ ์•ฑ ๊ณ„์ •์œผ๋กœ ์ „์†กํ•˜๊ณ , ๋ชจ๋“  ์ˆ˜์ต๊ธˆ์„ ํŒ๋งค์ž ๊ณ„์ •์œผ๋กœ ์†ก๊ธˆํ•œ ๋’ค, ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋ฒˆ์™ธ: set_price ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํŒ๋งคํ•  ์—์…‹(ASA)์˜ ๋‹จ๊ฐ€๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋”ฉ ๊ณผ์ œ๋Š” ์ด 5๋ฌธ์ œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ฐ ๋ฌธ์ œ์— "*** ์—ฌ๊ธฐ์— ์ฝ”๋“œ ์ž‘์„ฑ ***" ๋ถ€๋ถ„์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ฐ‘์— ์ฒดํฌํฌ์ธํŠธ๋“ค์„ ๋”ฐ๋ผ์„œ ์ง„ํ–‰ํ•ด์ฃผ์„ธ์š”!

์ฒดํฌํฌ์ธํŠธ 1: ๐Ÿงฐ ์•Œ๊ณ ๋žœ๋“œ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ํˆดํ‚ท ์„ค์น˜

  1. AlgoKit ์„ค์น˜.
  2. Docker ์„ค์น˜. It is used to run a local Algorand network for development.
  3. Node.JS / npm ์„ค์น˜

์ฒดํฌํฌ์ธํŠธ 2: ๐Ÿ’ป ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์…‹์—…

  1. ์ด ๋ฆฌํฌ๋ฅผ fork ํ•ด์ฃผ์„ธ์š”.
  2. Forkํ•œ ๋ฆฌํฌ๋ฅผ git clone ํ•ด์ฃผ์„ธ์š”.
cd [DIRECTORY_OF_YOUR_CHOICE]
git clone [FORKED_REPO_URL]
  1. VSCode์—์„œ ์ด ํด๋”๋ฅผ ์—ด๋žŒํ•ด์ฃผ์„ธ์š”.
  2. ์—ด๋žŒ ํ›„ blockchain-valley-session-2.code-workspace ํŒŒ์ผ์„ ์—ด๋žŒ ํ›„ open workspace ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ workspace ๋ชจ๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ์„ธ์š”.
  3. ์ด์ œ VSCode ํ„ฐ๋ฏธ๋„์ด 3๊ฐœ๊ฐ€ ์ž๋™ ์ƒ์„ฑ๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค: ROOT blockchain-valley-2 coding-assignment. ์ด ์ค‘ ROOT VSCode ํ„ฐ๋ฏธ๋„์—์„œ algokit project bootstrap all ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ dependencies๋“ค์„ ์„ค์น˜ํ•ด์ฃผ์„ธ์š”. ์ด๋Ÿฌ๋ฉด ๋ชจ๋“  ํ”„๋กœ์ ํŠธ ํด๋”์˜ dependencies๋“ค์ด ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
algokit project bootstrap all
  1. ์ด์ œ coding-assignment ํ„ฐ๋ฏธ๋„์„ ์„ ํƒํ•œ ๋’ค poetry shell ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•ด ํŒŒ์ด์ฌ virtual environment๋ฅผ ํ™œ์„ฑํ™” ์‹œ์ผœ์ฃผ์„ธ์š”.
    1. ํŒŒ์ด์ฌ virtual environment๋ฅผ ๋น„ํ™œ์„ฑํ™” ์‹œํ‚ฌ๋•Œ๋Š” exit ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ฆฌํฌ fork, clone ํŠœํ† ๋ฆฌ์–ผ: https://github.com/algorand-fix-the-bug-campaign/challenge-1/assets/52557585/acde8053-a8dd-4f53-8bad-45de1068bfda

์ฒดํฌํฌ์ธํŠธ 3: ๐Ÿ“ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์„ธ์š”!

  1. ๋„์ปค ๋ฐ์Šคํฌํƒ‘์„ ์‹คํ–‰ํ•œ ๋’ค ํ„ฐ๋ฏธ๋„์—์„œ algokit localnet start ์ปค๋งจ๋“œ๋กœ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ์„ธ์š”.๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•ด์ฃผ์„ธ์š”!.
  2. smart_contracts/digital_marketplace/contract.py ํŒŒ์ผ๋กœ ๊ฐ€์…”์„œ ์„ค๋ช…์„ ์ฝ์œผ์‹œ๊ณ  ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜์„ธ์š”!
  3. ๋ฌธ์ œ๋ฅผ ๋‹ค ํ•ด๊ฒฐํ•œ ๋’ค ํ„ฐ๋ฏธ๋„์—์„œ algokit project run build ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•ด ์Šค๋งˆํŠธ ๊ณ„์•ฝ์„ ์ปดํŒŒ์ผ ํ•˜์‹œ๊ณ  algokit project deploy localnet ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•ด smart_contracts/digital_marketplace/deploy-config.ts ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์„ธ์š”! ์‹คํ–‰ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ˜์†” ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ ๊ฒ๋‹ˆ๋‹ค!

๊ณผ์ œ๋ฅผ ์ผ์ฐ ๋๋‚ด๋ฒ„๋ฆฐ ๊ทธ๋Œ€๋ฅผ ์œ„ํ•œ ๋ณด๋„ˆ์Šค ๊ณผ์ œ!

  1. smart_contracts/digital_marketplace/deploy-config.ts ํŒŒ์ผ ์•ˆ์— ๋ณด๋ฉด btsScenario ํ•จ์ˆ˜๊ฐ€ ์ฃผ์„์œผ๋กœ comment out ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์„์„ ํ•ด์ œํ•˜๊ณ  ์„ค๋ช…์— ๋”ฐ๋ผ ์ด 7๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์„ธ์š”!
  2. ๋ฌธ์ œ๋ฅผ ๋‹ค ํ•ด๊ฒฐํ•œ ๋’ค ํ„ฐ๋ฏธ๋„์—์„œ algokit project deploy localnet ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•ด smart_contracts/digital_marketplace/deploy-config.ts ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์„ธ์š”! ์‹คํ–‰ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ˜์†” ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ๋ณด๋„ˆ์Šค ๊ณผ์ œ๊นŒ์ง€ ํ•ด๊ฒฐํ•˜์‹ ๊ฒ๋‹ˆ๋‹ค!

์ฒดํฌํฌ์ธํŠธ 4: ๐Ÿ’ฏ ๊ณผ์ œ ์ œ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

  1. ์„ฑ๊ณต์ ์œผ๋กœ ๋‹ค์„ฏ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ํ›„ ๋ณธ์ธ์ด forkํ•œ ๊นƒํ—™ ๋ฆฌํฌ๋กœ ์ฝ”๋“œ๋ฅผ ํ‘ธ์‰ฌํ•ด์ฃผ์„ธ์š”. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์›๋ž˜์˜ ๋ฆฌํฌ๋กœ Pull request๋ฅผ ํ•ด์ฃผ์„ธ์š”.
  2. Pull Request ํ…œํ”Œ๋ ›์„ ๋”ฐ๋ผ ์ถœ๋ ฅ๋œ ๊ฐ’์„ ๋ณด์—ฌ์ฃผ๋Š” ํ„ฐ๋ฏธ๋„์˜ ์Šคํฌ๋ฆฐ์ƒท์„ ์ฒจ๋ถ€ํ•ด์ฃผ์„ธ์š”.