νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ λν μ¬μΈ΅ κ°μ΄λλ‘ Web3μ μ μ¬λ ₯μ μ΄μ΄λ³΄μΈμ. μΉμ¬μ΄νΈλ₯Ό μ΄λ리μκ³Ό ν΅ν©νκ³ λΆμ°ν μ ν리μΌμ΄μ (dApp)μ λ§λλ λ°©λ²μ μμ보μΈμ.
νλ‘ νΈμλ λΈλ‘체μΈ: Web3 λ° μ΄λ리μ ν΅ν©μ λν ν¬κ΄μ μΈ κ°μ΄λ
λΈλ‘μ²΄μΈ κΈ°μ μ μΈκ³λ μνΈννλ₯Ό ν¨μ¬ λμ΄μλλ€. λΆμ°ν μΉμΈ Web3λ μ¬μ©μμκ² λ°μ΄ν°μ λμ§νΈ μμ°μ λν λ ν° μ μ΄ κΆνμ λΆμ¬ν©λλ€. νλ‘ νΈμλ κ°λ°μλ λΈλ‘μ²΄μΈ κΈ°μ κ³Ό μ¬μ©μ μΉνμ μΈ μ ν리μΌμ΄μ κ°μ 격차λ₯Ό ν΄μνλ λ° μ€μν μν μ ν©λλ€. μ΄ κ°μ΄λλ Web3 λ° μ΄λ리μ ν΅ν©μ μ€μ μ λ νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ λν ν¬κ΄μ μΈ κ°μλ₯Ό μ 곡ν©λλ€.
Web3λ 무μμΈκ°?
Web3λ νμ€μν, ν¬λͺ μ±, μ¬μ©μ κΆν λΆμ¬λ₯Ό νΉμ§μΌλ‘ νλ μΈν°λ·μ λ€μ μ§νλ₯Ό λνλ λλ€. λ°μ΄ν°κ° μ’ μ’ μ€μ μ§μ€μ μν°ν°μ μν΄ μ μ΄λλ Web2μ λ¬λ¦¬ Web3λ λΈλ‘μ²΄μΈ κΈ°μ μ νμ©νμ¬ μ¬μ©μ λ€νΈμν¬μ μ μ΄λ₯Ό λΆμ°ν©λλ€.
Web3μ μ£Όμ νΉμ§μ λ€μκ³Ό κ°μ΅λλ€.
- νμ€μν: λ°μ΄ν°κ° λ€νΈμν¬ μ 체μ λΆμ°λμ΄ μ€μ λΉκ΅μ λν μμ‘΄λλ₯Ό μ€μ λλ€.
- ν¬λͺ μ±: λΈλ‘μ²΄μΈ κΈ°μ μ κ±°λ λ° λ°μ΄ν°μ 곡κ°μ κ²μ¦μ 보μ₯ν©λλ€.
- μ¬μ©μ κΆν λΆμ¬: μ¬μ©μλ λ°μ΄ν°μ λμ§νΈ μμ°μ λν λ ν° μ μ΄ κΆνμ κ°μ΅λλ€.
- 무μ λ’° μνΈ μμ©: μ€λ§νΈ κ³μ½μ κ³μ½μ μλννκ³ λΉμ¬μ κ°μ 무μ λ’° μνΈ μμ©μ μ΄μ§ν©λλ€.
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ΄ μ€μν μ΄μ
νλ‘ νΈμλ κ°λ°μλ Web3 μ ν리μΌμ΄μ (dApp)μ μ¬μ©μ μΈν°νμ΄μ€(UI) λ° μ¬μ©μ κ²½ν(UX)μ λ§λλ μν μ ν©λλ€. μ¬μ©μλ₯Ό λΈλ‘체μΈμ μ°κ²°νμ¬ μ€λ§νΈ κ³μ½ λ° λΆμ°ν λ€νΈμν¬μ μνΈ μμ©ν μ μλλ‘ ν©λλ€. μ μ€κ³λ νλ‘ νΈμλλ λΈλ‘μ²΄μΈ κΈ°μ μ μ κ·Ό κ°λ₯νκ³ μ¬μ©μ μΉνμ μΌλ‘ λ§λλ λ° νμμ μ λλ€.
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ΄ μ€μν μ΄μ λ λ€μκ³Ό κ°μ΅λλ€.
- μ κ·Όμ±: νλ‘ νΈμλ κ°λ°μ λ λ§μ μ²μ€μ΄ λΈλ‘μ²΄μΈ κΈ°μ μ μ κ·Όν μ μλλ‘ ν©λλ€.
- μ¬μ©μ±: μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€λ dApp μ±νμ νμμ μ λλ€.
- μ°Έμ¬λ: λ§€λ ₯μ μΈ μ¬μ©μ κ²½νμ μ¬μ©μκ° dApp λ° λΈλ‘체μΈκ³Ό μνΈ μμ©νλλ‘ μ λν©λλ€.
- νμ : νλ‘ νΈμλ κ°λ°μλ νμ μ μ΄κ³ μ§κ΄μ μΈ μ ν리μΌμ΄μ μ λ§λ€μ΄ Web3μ κ²½κ³λ₯Ό λν μ μμ΅λλ€.
μ΄λ리μ λ° μ€λ§νΈ κ³μ½
μ΄λ리μμ λΆμ°ν μ ν리μΌμ΄μ μ ꡬμΆνκΈ° μν μΈκΈ° μλ λΈλ‘μ²΄μΈ νλ«νΌμ λλ€. μ΄λ μ½λμ μμ±λμ΄ λΈλ‘체μΈμ μ μ₯λλ μ체 μ€ν κ³μ½μΈ μ€λ§νΈ κ³μ½μ κ°λ μ λμ ν©λλ€. μ΄λ¬ν κ³μ½μ μ€κ°μ μμ΄ λΉμ¬μ κ°μ κ³μ½ 쑰건μ μλμΌλ‘ μνν©λλ€.
μ€λ§νΈ κ³μ½μ Solidityμ κ°μ μΈμ΄λ‘ μμ±λλ©° μ΄λ리μ λΈλ‘체μΈμ λ°°ν¬λ μ μμ΅λλ€. νλ‘ νΈμλ κ°λ°μλ Web3.js λ° Ethers.jsμ κ°μ λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ μ΄λ¬ν μ€λ§νΈ κ³μ½κ³Ό μνΈ μμ©ν©λλ€.
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ νμμ μΈ λꡬ
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ νμμ μΈ λͺ κ°μ§ λꡬμ λΌμ΄λΈλ¬λ¦¬κ° μμ΅λλ€.
- Web3.js: νλ‘ νΈμλμμ μ΄λ리μ λ Έλ λ° μ€λ§νΈ κ³μ½κ³Ό μνΈ μμ©ν μ μλ JavaScript λΌμ΄λΈλ¬λ¦¬μ λλ€.
- Ethers.js: TypeScript μ§μ λ° ν₯μλ 보μ κΈ°λ₯μΌλ‘ μ λͺ ν μ΄λ리μκ³Ό μνΈ μμ©νκΈ° μν λ λ€λ₯Έ μΈκΈ° μλ JavaScript λΌμ΄λΈλ¬λ¦¬μ λλ€.
- MetaMask: μνΈνν μ§κ° μν μ νκ³ μ¬μ©μκ° dAppμ μ°κ²°ν μ μλλ‘ νλ λΈλΌμ°μ νμ₯ νλ‘κ·Έλ¨ λ° λͺ¨λ°μΌ μ±μ λλ€.
- Truffle: μ€λ§νΈ κ³μ½μ μ»΄νμΌ, λ°°ν¬ λ° ν μ€νΈνκΈ° μν λꡬλ₯Ό μ 곡νλ μ΄λ리μ κ°λ° νλ μμν¬μ λλ€.
- Remix IDE: Solidity μ€λ§νΈ κ³μ½μ μμ±, μ»΄νμΌ λ° λ°°ν¬νκΈ° μν μ¨λΌμΈ IDEμ λλ€.
- Infura: μ체 λ Έλλ₯Ό μ€ννμ§ μκ³ λ μ΄λ리μ λ€νΈμν¬μ μ°κ²°ν μ μλ νΈμ€ν λ μ΄λ리μ λ Έλ μΈνλΌμ λλ€.
- Hardhat: λ λ€λ₯Έ μ΄λ리μ κ°λ° νκ²½μ λλ€. μ€λ§νΈ κ³μ½μ μ»΄νμΌ, λ°°ν¬, ν μ€νΈ λ° λλ²κΉ ν μ μμ΅λλ€.
κ°λ° νκ²½ μ€μ
dAppμ ꡬμΆνκΈ° μ μ κ°λ° νκ²½μ μ€μ ν΄μΌ ν©λλ€. λ€μμ κΈ°λ³Έ λ¨κ³μ λλ€.
- Node.js λ° npm μ€μΉ: Node.jsλ JavaScript λ°νμ νκ²½μ΄κ³ npm(Node Package Manager)μ μ’ μμ±μ μ€μΉνκ³ κ΄λ¦¬νλ λ° μ¬μ©λ©λλ€.
- MetaMask μ€μΉ: MetaMask λΈλΌμ°μ νμ₯ νλ‘κ·Έλ¨ λλ λͺ¨λ°μΌ μ±μ μ€μΉν©λλ€.
- νλ‘μ νΈ λλ ν 리 μμ±: νλ‘μ νΈμ λν λλ ν 리λ₯Ό μμ±νκ³ npmμΌλ‘ μ΄κΈ°νν©λλ€:
npm init -y
- Web3.js λλ Ethers.js μ€μΉ: npmμ μ¬μ©νμ¬ Web3.js λλ Ethers.jsλ₯Ό μ€μΉν©λλ€:
npm install web3
λλnpm install ethers
MetaMaskμ μ°κ²°
MetaMaskλ dAppκ³Ό μ΄λ리μ λΈλ‘μ²΄μΈ κ°μ λΈλ¦¬μ§ μν μ ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ¬μ©μλ μ΄λ리μ κ³μ μ κ΄λ¦¬νκ³ κ±°λμ μλͺ ν μ μμ΅λλ€. νλ‘ νΈμλμμ MetaMaskμ μ°κ²°νλ €λ©΄ λ€μ μ½λ μ‘°κ°(Ethers.js μ¬μ©)μ μ¬μ©ν μ μμ΅λλ€.
Ethers.jsλ₯Ό μ¬μ©ν μ:
async function connectToMetaMask() {
if (window.ethereum) {
try {
await window.ethereum.request({ method: "eth_requestAccounts" });
const provider = new ethers.providers.Web3Provider(window.ethereum);
const signer = provider.getSigner();
console.log("Connected to MetaMask!");
return {provider, signer};
} catch (error) {
console.error("User denied account access", error);
}
} else {
console.error("MetaMask not detected");
}
}
connectToMetaMask();
μ€λ§νΈ κ³μ½κ³Ό μνΈ μμ©
MetaMaskμ μ°κ²°λλ©΄ μ€λ§νΈ κ³μ½κ³Ό μνΈ μμ©ν μ μμ΅λλ€. μ€λ§νΈ κ³μ½κ³Ό μνΈ μμ©νλ €λ©΄ μ€λ§νΈ κ³μ½μ ABI(Application Binary Interface)μ μ£Όμκ° νμν©λλ€.
Ethers.jsλ₯Ό μ¬μ©ν μ:
// Smart contract ABI (replace with your actual ABI)
const abi = [
{
"inputs": [
{
"internalType": "string",
"name": "_message",
"type": "string"
}
],
"name": "setMessage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getMessage",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
];
// Smart contract address (replace with your actual address)
const contractAddress = "0x...";
async function interactWithContract() {
const {provider, signer} = await connectToMetaMask();
if (!provider || !signer) {
console.error("Not connected to MetaMask");
return;
}
const contract = new ethers.Contract(contractAddress, abi, signer);
try {
// Call the `setMessage` function
const transaction = await contract.setMessage("Hello, Blockchain!");
await transaction.wait(); // Wait for the transaction to be mined
// Call the `getMessage` function
const message = await contract.getMessage();
console.log("Message from contract:", message);
} catch (error) {
console.error("Error interacting with contract:", error);
}
}
interactWithContract();
μ€μ: 0x...
λ₯Ό λ°°ν¬λ μ€λ§νΈ κ³μ½μ μ€μ μ£Όμλ‘ λ°κΎΈμμμ€. ABI λ°°μ΄μ λ°°ν¬λ μ€λ§νΈ κ³μ½μ ABIλ‘ λ°κΎΈμμμ€.
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ μΌλ°μ μΈ κ³Όμ
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ λͺ κ°μ§ κ³ μ ν κ³Όμ λ₯Ό μ μν©λλ€.
- λΉλκΈ° μμ : λΈλ‘μ²΄μΈ κ±°λλ λΉλκΈ°μ μ΄λ―λ‘ μ²λ¦¬νλ λ° μκ°μ΄ 걸립λλ€. νλ‘ νΈμλ κ°λ°μλ κ±°λκ° λ³΄λ₯λλ λμ μ¬μ©μμκ² νΌλλ°±μ μ 곡νμ¬ μ΄λ¬ν λΉλκΈ° μμ μ μ μ νκ² μ²λ¦¬ν΄μΌ ν©λλ€.
- κ°μ€ μκΈ: μ΄λ리μ κ±°λμλ λ€νΈμν¬ νΌμ‘λμ λ°λΌ λ³λλ μ μλ κ°μ€ μκΈμ΄ νμν©λλ€. νλ‘ νΈμλ κ°λ°μλ μ¬μ©μμκ² κ°μ€ μκΈμ λν λͺ νν μΆμ μΉλ₯Ό μ 곡νκ³ κ°μ€ κ°κ²©μ μ‘°μ ν μ μλλ‘ νμ©ν΄μΌ ν©λλ€.
- μ§κ° ν΅ν©: MetaMaskμ κ°μ μνΈνν μ§κ°κ³Όμ ν΅ν©μ μ¬μ©μ κ³μ λ° κ±°λ μλͺ μ μ μ€νκ² μ²λ¦¬ν΄μΌ νλ―λ‘ λ³΅μ‘ν μ μμ΅λλ€.
- 보μ: 보μμ λΈλ‘μ²΄μΈ κ°λ°μμ κ°μ₯ μ€μν©λλ€. νλ‘ νΈμλ κ°λ°μλ νΌμ± 곡격, κ΅μ°¨ μ¬μ΄νΈ μ€ν¬λ¦½ν (XSS) λ° κΈ°ν 보μ μ·¨μ½μ±μΌλ‘λΆν° μ¬μ©μλ₯Ό 보νΈν΄μΌ ν©λλ€.
- μ¬μ©μ κ²½ν: λΆμ°ν νκ²½μμ μ¬μ©μ μΉνμ μΈ κ²½νμ λ§λλ κ²μ μ΄λ €μΈ μ μμ΅λλ€. νλ‘ νΈμλ κ°λ°μλ λΈλ‘μ²΄μΈ κΈ°μ μ 볡μ‘μ±μ μΆμννλ μ§κ΄μ μΈ μΈν°νμ΄μ€λ₯Ό μ€κ³ν΄μΌ ν©λλ€.
- νμ₯μ±: μ΄λ리μ νμ₯μ±μ μ§μμ μΈ κ³Όμ μ λλ€. λ€νΈμν¬κ° λ νΌμ‘ν΄μ§μ λ°λΌ κ±°λ μμλ£κ° μ¦κ°νκ³ κ±°λ μκ°μ΄ λλ €μ§λλ€. νλ‘ νΈμλ κ°λ°μλ μ΄λ¬ν μ ν μ¬νμ μΈμνκ³ νμ₯ κ°λ₯νκ³ ν¨μ¨μ μΈ μ ν리μΌμ΄μ μ μ€κ³ν΄μΌ ν©λλ€. λ μ΄μ΄ 2 νμ₯ μ루μ μ΄ λμ± λ리 보κΈλκ³ μμ΅λλ€.
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ λͺ¨λ² μ¬λ‘
μ΄λ¬ν κ³Όμ λ₯Ό 극볡νκ³ μ±κ³΅μ μΈ dAppμ ꡬμΆνλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄μμμ€.
- 보μ μ°μ : 곡격μΌλ‘λΆν° μ¬μ©μλ₯Ό 보νΈνκΈ° μν΄ κ°λ ₯ν 보μ μ‘°μΉλ₯Ό ꡬνν©λλ€. μμ ν μ½λ© λ°©μμ μ¬μ©νκ³ , μ¬μ©μ μ λ ₯μ κ²μ¦νκ³ , XSS μ·¨μ½μ±μ λ°©μ§ν©λλ€.
- λͺ νν νΌλλ°± μ 곡: κ±°λ μνμ λν΄ μ¬μ©μμκ² μ립λλ€. κ±°λκ° λ³΄λ₯λλ λμ νΌλλ°±μ μ 곡νκ³ μ€λ₯ λ©μμ§λ₯Ό λͺ ννκ² νμν©λλ€.
- κ°μ€ μκΈμ μ ννκ² μΆμ : μ¬μ©μμκ² κ°μ€ μκΈμ λν μ νν μΆμ μΉλ₯Ό μ 곡νκ³ κ±°λ μλμ λΉμ©μ μ΅μ ννκΈ° μν΄ κ°μ€ κ°κ²©μ μ‘°μ ν μ μλλ‘ νμ©ν©λλ€.
- λΉλκΈ° μμ μ μ μ νκ² μ²λ¦¬: UIλ₯Ό μ°¨λ¨νμ§ μκ³ λΈλ‘μ²΄μΈ κ±°λλ₯Ό μ²λ¦¬νκΈ° μν΄ λΉλκΈ° νλ‘κ·Έλλ° κΈ°μ (μ: Promise, async/await)μ μ¬μ©ν©λλ€.
- μ¬μ©μ κ²½ν μ΅μ ν: λΈλ‘μ²΄μΈ κΈ°μ μ μ²μ μ νλ μ¬μ©μλΌλ μ¬μ©νκΈ° μ¬μ΄ μ§κ΄μ μΈ μΈν°νμ΄μ€λ₯Ό μ€κ³ν©λλ€.
- ννμ΄ μ’μ μ§κ° ν΅ν© λΌμ΄λΈλ¬λ¦¬ μ¬μ©: web3modalκ³Ό κ°μ λΌμ΄λΈλ¬λ¦¬λ μ§κ° ν΅ν©μ λ¨μννκ³ λ§μ 볡μ‘μ±μ μΆμνν©λλ€.
- μ΅μ μ 보 μ μ§: λΈλ‘μ²΄μΈ κΈ°μ μ λμμμ΄ μ§ννκ³ μμ΅λλ€. μ΅μ λꡬ, λΌμ΄λΈλ¬λ¦¬ λ° λͺ¨λ² μ¬λ‘μ λν μ΅μ μ 보λ₯Ό μ»μΌμμμ€.
- μ² μ ν ν μ€νΈ: νΈνμ± λ° κΈ°λ₯μ 보μ₯νκΈ° μν΄ λ€μν λΈλΌμ°μ μ μ₯μΉμμ dAppμ μ² μ νκ² ν μ€νΈν©λλ€.
- λ μ΄μ΄ 2 μ루μ κ³ λ €: νμ₯μ±μ κ°μ νκ³ κ±°λ μμλ£λ₯Ό μ€μ΄κΈ° μν΄ Polygon, Optimism λ° Arbitrumκ³Ό κ°μ λ μ΄μ΄ 2 νμ₯ μ루μ μ νμν©λλ€.
μ±κ³΅μ μΈ Web3 μ ν리μΌμ΄μ μ μ
λͺ κ°μ§ μ±κ³΅μ μΈ Web3 μ ν리μΌμ΄μ μ λΈλ‘μ²΄μΈ κΈ°μ μ μ μ¬λ ₯μ 보μ¬μ€λλ€.
- Uniswap: μ€κ°μ μμ΄ μ¬μ©μκ° μνΈννλ₯Ό κ±°λν μ μλ λΆμ°ν κ±°λμ(DEX).
- Aave: μ¬μ©μκ° μνΈν μμ°μ λν μ΄μλ₯Ό μ»κ±°λ μμ°μ λμΆλ°μ μ μλ λΆμ°ν λμΆ λ° μ°¨μ νλ«νΌ.
- OpenSea: μ¬μ©μκ° λμ§νΈ μμ§νμ μ¬κ³ , νκ³ , κ±°λν μ μλ λ체 λΆκ°λ₯ν ν ν°(NFT) λ§μΌνλ μ΄μ€.
- Decentraland: μ¬μ©μκ° κ°μ ν μ§λ₯Ό μ¬κ³ , νκ³ , κ°λ°νκ³ λνν κ²½νμ λ§λ€ μ μλ κ°μ μΈκ³.
- Axie Infinity: νλ μ΄μ΄κ° λμ§νΈ μλ¬Όμ μ ν¬νκ³ λ²μνμ¬ μνΈννλ₯Ό μ»μ μ μλ νλ μ΄ ν¬ μΈ λΈλ‘μ²΄μΈ κ²μ.
- Brave Browser: κ΄κ³ λ₯Ό λ³΄κ³ κ°μΈ μ 보λ₯Ό 보νΈνλ μ¬μ©μμκ² κΈ°λ³Έ μ£Όμ ν ν°(BAT)μ 보μνλ μΉ λΈλΌμ°μ .
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ λ―Έλ
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ μμ²λ μ μ¬λ ₯μ κ°μ§ λΉ λ₯΄κ² μ§ννλ λΆμΌμ λλ€. λΈλ‘μ²΄μΈ κΈ°μ μ΄ μ£Όλ₯νλ¨μ λ°λΌ μλ ¨λ νλ‘ νΈμλ κ°λ°μμ λν μμλ κ³μ μ¦κ°ν κ²μ λλ€. λ€μμ μ£Όμν΄μΌ ν λͺ κ°μ§ μ£Όμ νΈλ λμ λλ€.
- λ μ΄μ΄ 2 μ루μ μ μ±ν μ¦κ°: λ μ΄μ΄ 2 νμ₯ μ루μ μ dAppμ νμ₯μ±κ³Ό μ¬μ©μ κ²½νμ κ°μ νλ λ° μ μ λ μ€μν΄μ§ κ²μ λλ€.
- λμ± μ κ΅ν μ§κ° ν΅ν©: μ§κ° ν΅ν©μ λμ± μννκ³ μ¬μ©μ μΉνμ μ΄ λμ΄ μ¬μ©μκ° dAppμ μ½κ² μ°κ²°ν μ μκ² λ©λλ€.
- κ°μ λ κ°λ° λꡬ: κ°λ°μκ° dAppμ λ μ½κ² ꡬμΆνκ³ λ°°ν¬ν μ μλλ‘ μλ‘μ΄ κ°λ° λꡬμ νλ μμν¬κ° λ±μ₯ν κ²μ λλ€.
- μ¬μ©μ κ²½νμ λν λ ν° μ΄μ : νλ‘ νΈμλ κ°λ°μλ dAppμ λν΄ λ μ§κ΄μ μ΄κ³ λ§€λ ₯μ μΈ μ¬μ©μ κ²½νμ λ§λλ λ° μ§μ€ν κ²μ λλ€.
- κΈ°μ‘΄ μΉ κΈ°μ κ³Όμ ν΅ν©: Web3 κΈ°μ μ κΈ°μ‘΄ μΉ κΈ°μ κ³Ό λμ± ν΅ν©λμ΄ Web2μ Web3 κ°μ κ²½κ³κ° λͺ¨νΈν΄μ§λλ€.
- ν¬λ‘μ€ μ²΄μΈ νΈνμ±: λ λ§μ λΈλ‘체μΈμ΄ λ±μ₯ν¨μ λ°λΌ ν¬λ‘μ€ μ²΄μΈ νΈνμ±μ΄ μ μ λ μ€μν΄μ§ κ²μ λλ€. νλ‘ νΈμλ κ°λ°μλ μ¬λ¬ λΈλ‘체μΈκ³Ό μνΈ μμ©ν μ μλ dAppμ ꡬμΆν μ μμ΄μΌ ν©λλ€.
- νμ€μν μ μ: μ¬μ©μκ° κ°μΈ λ°μ΄ν°μ λν λ λ§μ μ μ΄ κΆνμ κ°λλ‘ νλ νμ€μν μ μ μ루μ μ΄ λ±μ₯ν κ²μ λλ€.
κ²°λ‘
νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ°μ νμ μ μ΄κ³ μν₯λ ₯ μλ μ ν리μΌμ΄μ μ ꡬμΆν μ μλ 보λ μλ λΆμΌμ λλ€. Web3 λ° μ΄λ리μ ν΅ν©μ κΈ°λ³Έ μ¬νμ μ΄ν΄ν¨μΌλ‘μ¨ μ¬μ©μμ κΆνμ κ°ννκ³ μΈν°λ·κ³Ό μνΈ μμ©νλ λ°©μμ νμ νλ dAppμ λ§λ€ μ μμ΅λλ€. μ΄ κ°μ΄λλ νλ‘ νΈμλ λΈλ‘μ²΄μΈ κ°λ° μΈκ³λ‘μ μ¬μ μ μν νΌνΌν κΈ°λ°μ μ 곡ν©λλ€. λμ μ λ°μλ€μ΄κ³ , νΈκΈ°μ¬μ μ μ§νλ©°, μΉμ λ―Έλλ₯Ό ꡬμΆνμμμ€.