Chapter1. ์ปจํธ๋ํธ์ ๋ถ๋ณ์ฑ
์ด๋๋ฆฌ์์ ์ปจํธ๋ํธ๋ฅผ ๋ฐฐํฌํ๊ณ ๋๋ฉด, ์ปจํธ๋ํธ๋ ๋ณํ์ง ์๋๋ค. (์์ ์ด๋ ์ ๋ฐ์ดํธ ๋ถ๊ฐ)
๋ง์ฝ ์ปจํธ๋ํธ์ ๊ฒฐ์ ์ด ์์ด๋ ์ดํ์ ๊ณ ์น ์ ์๋ ๋ฐฉ๋ฒ์ด ์ ํ ์๋ค.
๊ทธ ๋๊ตฌ๋ ๋ฐฐํฌ ์ดํ์ ํจ์๋ฅผ ์์ ํ๊ฑฐ๋ ์์์น ๋ชปํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ํค์ง ๋ชปํ๋ค.
์ธ๋ถ ์์กด์ฑ
์ธ๋ถ ์ปจํธ๋ํธ์ ์ฃผ์๋ฅผ ํ๋์ฝ๋ฉ ํด๋ฒ๋ฆฌ๋ฉด
๋์ค์ ์ธ๋ถ ์ปจํธ๋ํธ๊ฐ ํ๊ดด๋์์ ๊ฒฝ์ฐ ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ DApp์ ์ธ๋ชจ ์์ด์ง๋ค.
(์์ ํ ์ ์๊ธฐ ๋๋ฌธ)
๋ฐ๋ผ์ ํ๋์ฝ๋ฉ ๋์ ์ฃผ์๋ฅผ ๊ฐ์ ธ์ค๋ ๋ ๋ค๋ฅธ ํจ์๋ฅผ ๋ง๋๋ ๊ฒ์ด ํจ์จ์
Chapter2. ์์ ๊ฐ๋ฅํ ์ปจํธ๋ํธ
์ฃผ์๋ฅผ ๊ฐ์ ธ์ค๋ ๋ ๋ค๋ฅธ ํจ์๋ฅผ ๋ง๋ค ๊ฒฝ์ฐ,
์ฐ๋ฆฌ๊ฐ ์์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด external๋ก ์ ์ธ์ ํ ํ ๋ฐ
๊ทธ๋ฌ๋ฉด ๋ชจ๋ ์ฌ๋์ด ์ฃผ์๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์์ผ๋ฏ๋ก ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ๋์ฒํ๊ธฐ ์ํด์ ์ปจํธ๋ํธ๋ฅผ ์์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ ๋ค.
- OpenZepplin : DApp์์ ์ฌ์ฉํ ์ ์๋, ์์ ํ๊ณ ์ปค๋ฎค๋ํฐ์์ ๊ฒ์ฆ๋ฐ์ ์ค๋งํธ ์ปจํธ๋ํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ.
๊ฐ ์์ ์ค๋ช )
(1) ์์ฑ์ Constructor: function Ownable()๋ ์์ฑ์.
์ปจํธ๋ํธ์ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง, ์๋ตํ ์ ์๋ ํน๋ณํ ํจ์. ์ปจํธ๋ํธ๊ฐ ์์ฑ๋ ๋ ๋ฑ ํ๋ฒ๋ง ์คํ.
(2) ํจ์ ์ ์ด์ Function Modifier: modifier onlyOwner() ๋ค๋ฅธ ํจ์๋ค์ ๋ํ ์ ๊ทผ์ ์ ์ดํ๊ธฐ ์ํด ์ฌ์ฉ ๋๋ ์ผ์ข ์ ์ ์ฌ ํจ์. ์๊ตฌ์ฌํญ ์ถฉ์กฑ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ฐ์ ์ฌ์ฉ.
ํจ์ ์คํ ์ ์ ์๊ตฌ์ฌํญ ์ถฉ์กฑ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ฐ์ ์ฌ์ฉ.
onlyOwner์ ๊ฒฝ์ฐ ์ ๊ทผ์ ์ ํํด์ ์ค์ง ์ปจํธ๋ํธ์ ์์ ์๋ง ํด๋น ํจ์๋ฅผ ์คํํ ์ ์๋๋ก ํ๊ธฐ ์ํด ์ฌ์ฉ๋ ์ ์๋ค.
์ฆ, Ownable ์ปจํธ๋ํธ๊ฐ ํ๋ ์ผ์
- ์ปจํธ๋ํธ๊ฐ ์์ฑ๋๋ฉด ์ปจํธ๋ํธ์ ์์ฑ์๊ฐ owner์ msg.sender(์ปจํธ๋ํธ๋ฅผ ๋ฐฐํฌํ ์ฌ๋)์ ๋์ .
- ํน์ ํ ํจ์๋ค์ ๋ํด์ ์ค์ง ์์ ์๋ง ์ ๊ทผํ ์ ์๋๋ก ์ ํ ๊ฐ๋ฅํ onlyOwner ์ ์ด์๋ฅผ ์ถ๊ฐ.
- ์๋ก์ด ์์ ์์๊ฒ ํด๋น ์ปจํธ๋ํธ์ ์์ ๊ถ์ ์ฎ๊ธธ ์ ์๋๋ก ํ๋ค.
Chapter3. onlyOwner ํจ์์ ์ด์
ํจ์ ์ ์ด์๋ ํจ์์ฒ๋ผ ๋ณด์ด์ง๋ง, function ํค์๋ ๋์ modifier ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.
ํจ์ ํธ์ถ ํ๋ฏ ์ง์ ํธ์ถํ ์ ์๋ค. ๋์ ํจ์ ์ ใ ์๋ถ ๋์ ํด๋น ํจ์์ ์๋๋ฐฉ์์ผ๋ก ๋ฐ๊พธ๋๋ก ์ ์ด์์ ์ด๋ฆ์ ๋ถ์ผ ์ ์๋ค.
์ด๋ ๊ฒ ์ค๋ช ๋์ด ์๋๋ฐ ์ด๊ฒ ์ดํด๊ฐ ์๋๋ ๋ฏ ํ๋ค.
ํจ์์ onlyOwner ์ ์ด์๋ฅผ ์ถ๊ฐํ๋ฉด ์ค์ง ์ปจํธ๋ํธ์ ์์ ์๋ง ํด๋น ํจ์๋ฅผ ํธ์ถํ ์ ์๋ค.
์ ์ฉ๋๋ค๋ฉด: ์์ ์๊ฐ ๋ฐฑ๋์ด ํจ์๋ฅผ ์ถ๊ฐํ ์๋ ์๋ค.
๋๊ธ