ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toBackend
์๋ฌธ ์ฝ๊ธฐ
Struct์ Array๋ฅผ ํ์ฉํ Solidity ๊ธฐ๋ฐ Zombie ๋ฐ์ดํฐ ์คํค๋ง ์ค๊ณ
๐ง Level 2: The DNA Blueprints & The Zombie Army (Solidity Quest)
AI ์์ฝ
Context
์ค๋งํธ ์ปจํธ๋ํธ ๋ด ๊ฐ๋ณ ์ํฐํฐ์ ์์ฑ์ ์ ์ํ๊ณ ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์ฅ ๊ตฌ์กฐ ํ์. ๋จ์ ๋ณ์ ๋์ด ๋ฐฉ์์ผ๋ก๋ ํ์ฅ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง๊ณผ ๋๊ท๋ชจ ๊ฐ์ฒด ๊ด๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํ ํ๊ณ ์กด์ฌ.
Technical Solution
- Struct ๋์ ์ ํตํ Zombie ์ํฐํฐ์ ์์ฑ(name, dna) ๊ทธ๋ฃนํ ๋ฐ ๋ฐ์ดํฐ ์์ง๋ ํฅ์
- Dynamic Array(Zombie[]) ์ค๊ณ๋ฅผ ํตํ ๊ฐ๋ณ์ ์ธ ๊ฐ์ฒด ์ ์์ฉ ๋ฐ ID ๊ธฐ๋ฐ์ ์ธ๋ฑ์ฑ ๊ตฌ์กฐ ํ๋ณด
- State Variable๋ฅผ ํ์ฉํ dnaDigits(16์๋ฆฌ) ์์ ์ ์๋ก ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ฐ ๋น์ฆ๋์ค ๋ฃฐ ๊ฐ์
- Public ๊ฐ์์ฑ ์ค์ ์ ํตํ ๋ธ๋ก์ฒด์ธ ์์ ๋ฐ์ดํฐ ํฌ๋ช ์ฑ ๋ฐ ์ธ๋ถ ์ ๊ทผ ๊ฐ๋ฅ ์ธํฐํ์ด์ค ์ ๊ณต
- dnaModulus ๊ณ์ฐ์์ ํตํ DNA ๊ฐ์ ๋ฒ์ ์ ํ ๋ฐ ์ํ์ ์ ์ฝ ์กฐ๊ฑด ์ค์
์ค์ฒ ํฌ์ธํธ
- Solidity Struct๋ฅผ ํ์ฉํด ์ฐ๊ด๋ ๋ฐ์ดํฐ ํ๋๋ฅผ ํ๋์ ํ์ ์ผ๋ก ๋ฌถ์ด ๊ฐ๋ ์ฑ๊ณผ ๊ด๋ฆฌ ํจ์จ์ ๋์๋์ง ํ์ธ - Dynamic Array ์ฌ์ฉ ์ ๊ฐ์ค ๋น์ฉ(Gas Cost) ์ฆ๊ฐ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ฌ ๋ฐ์ดํฐ ์ ๊ทผ ํจํด ์ต์ ํ ๊ฒํ - ๋น์ฆ๋์ค ๋ก์ง์ ํต์ฌ ์ ์ฝ ์กฐ๊ฑด์ State Variable๋ก ๋ช ์ํ์ฌ ์ปจํธ๋ํธ ์ ์ฒด์ ์ผ๊ด์ฑ ์ ์ง