<titledata-rh="true">Foundry를 사용하여 스마트 컨트랙트 배포하기 | Status Network Documentation</title><metadata-rh="true"name="viewport"content="width=device-width,initial-scale=1"><metadata-rh="true"property="og:locale"content="ko_KR"><metadata-rh="true"property="og:locale:alternate"content="en_US"><metadata-rh="true"property="og:locale:alternate"content="zh_CN"><metadata-rh="true"property="og:locale:alternate"content="ja_JP"><metadata-rh="true"name="docusaurus_locale"content="ko"><metadata-rh="true"name="docsearch:language"content="ko"><metadata-rh="true"name="keywords"content="status network, blockchain, web3, documentation, gasless transactions, social network, cryptocurrency"><metadata-rh="true"name="author"content="Status Network"><metadata-rh="true"property="og:image"content="https://docs.status.network/img/sn-social-card.png"><metadata-rh="true"property="og:url"content="https://docs.status.network"><metadata-rh="true"property="og:type"content="website"><metadata-rh="true"property="og:site_name"content="Status Network Documentation"><metadata-rh="true"name="twitter:card"content="summary_large_image"><metadata-rh="true"name="twitter:site"content="@statusL2"><metadata-rh="true"name="twitter:title"content="Status Network Documentation"><metadata-rh="true"name="twitter:description"content="Documentation for Status Network - The gasless network with sustainable funding for app builders. Launch and scale your social apps and games with truly free transactions."><metadata-rh="true"name="twitter:image"content="https://docs.status.network/img/sn-social-card.png"><metadata-rh="true"name="docusaurus_version"content="current"><metadata-rh="true"name="docusaurus_tag"content="docs-default-current"><metadata-rh="true"name="docsearch:version"content="current"><metadata-rh="true"name="docsearch:docusaurus_tag"content="docs-default-current"><metadata-rh="true"property="og:title"content="Foundry를 사용하여 스마트 컨트랙트 배포하기 | Status Network Documentation"><metadata-rh="true"name="description"content="이 튜토리얼에서는 Foundry를 사용하여 Status Network 테스트넷에 스마트 컨트랙트를 배포하는 과정을 안내합니다."><metadata-rh="true"property="og:description"content="이 튜토리얼에서는 Foundry를 사용하여 Status Network 테스트넷에 스마트 컨트랙트를 배포하는 과정을 안내합니다."><linkdata-rh="true"rel="icon"href="/ko/img/favicon.ico"><linkdata-rh="true"rel="canonical"href="https://docs.status.network/ko/tutorials/deploying-contracts/using-foundry"><linkdata-rh="true"rel="alternate"href="https://docs.status.network/tutorials/deploying-contracts/using-foundry"hreflang="en-US"><linkdata-rh="true"rel="alternate"href="https://docs.status.network/zh/tutorials/deploying-contracts/using-foundry"hreflang="zh-CN"><linkdata-rh="true"rel="alternate"href="https://docs.status.network/ko/tutorials/deploying-contracts/using-foundry"hreflang="ko-KR"><linkdata-rh="true"rel="alternate"href="https://docs.status.network/ja/tutorials/deploying-contracts/using-foundry"hreflang="ja-JP"><linkdata-rh="true"rel="alternate"href="https://docs.status.network/tutorials/deploying-contracts/using-foundry"hreflang="x-default"><linkdata-rh="true"rel="preconnect"href="https://M7J93TRPJ9-dsn.algolia.net"crossorigin="anonymous"><linkrel="search"type="application/opensearchdescription+xml"title="Status Network Documentation"href="/ko/opensearch.xml"><linkrel="stylesheet"href="/ko/assets/css/styles.9ec3d21b.css">
<p>이 튜토리얼에서는 Foundry를 사용하여 Status Network 테스트넷에 스마트 컨트랙트를 배포하는 과정을 안내합니다.</p>
<h2 class="anchoranchorWithStickyNavbar_LWe7"id="사전-요구사항">사전 요구사항<ahref="#사전-요구사항"class="hash-link"aria-label="사전 요구사항에 대한 직접 링크"title="사전 요구사항에 대한 직접 링크"></a></h2>
<li><strong>이더리움 지갑</strong>: Status Network 테스트넷용 개인키</li>
<li><strong>테스트넷 ETH</strong>: Status Network 테스트넷 ETH가 필요합니다<!-- -->
<ul>
<li>Status Network 테스트넷 ETH는 <ahref="/ko/tools/testnet-faucets">수도꼭지</a>에서 받을 수 있습니다</li>
</ul>
</li>
<li><strong>기본 지식</strong>: Solidity와 명령줄 사용 경험</li>
</ul>
<h2class="anchor anchorWithStickyNavbar_LWe7"id="달성-목표">달성 목표<ahref="#달성-목표"class="hash-link"aria-label="달성 목표에 대한 직접 링크"title="달성 목표에 대한 직접 링크"></a></h2>
<ul>
<li>Foundry 프로젝트 초기화</li>
<li>기본 이더리움 스마트 컨트랙트 작성</li>
<li>Status Network 테스트넷 배포를 위한 Foundry 구성</li>
<li>스마트 컨트랙트 배포</li>
</ul>
<h2class="anchor anchorWithStickyNavbar_LWe7"id="단계">단계<ahref="#단계"class="hash-link"aria-label="단계에 대한 직접 링크"title="단계에 대한 직접 링크"></a></h2>
<h3class="anchor anchorWithStickyNavbar_LWe7"id="1-foundry-프로젝트-초기화">1. Foundry 프로젝트 초기화<ahref="#1-foundry-프로젝트-초기화"class="hash-link"aria-label="1. Foundry 프로젝트 초기화에 대한 직접 링크"title="1. Foundry 프로젝트 초기화에 대한 직접 링크"></a></h3>
<p>먼저 새로운 Foundry 프로젝트를 생성합니다:</p>
<divclass="language-bash codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-bash codeBlock_bY9V thin-scrollbar"style="color:#bfc7d5;background-color:#292d3e"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"># 새 프로젝트 생성</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">forge init hello_status</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">cd hello_status</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"># 개인키를 위한 .env 파일 생성</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">touch .env</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">echo "PRIVATE_KEY=your_private_key_here">> .env</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="클립보드에 코드 복사"title="복사"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgviewBox="0 0 24 24"class="copyButtonIcon_y97N"><pathfill="currentColor"d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgviewBox="0 0 24 24"class="copyButtonSuccessIcon_LjdS"><pathfill="currentColor"d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3class="anchor anchorWithStickyNavbar_LWe7"id="2-스마트-컨트랙트-작성">2. 스마트 컨트랙트 작성<ahref="#2-스마트-컨트랙트-작성"class="hash-link"aria-label="2. 스마트 컨트랙트 작성에 대한 직접 링크"title="2. 스마트 컨트랙트 작성에 대한 직접 링크"></a></h3>
<h3class="anchor anchorWithStickyNavbar_LWe7"id="3-status-network를-위한-foundry-구성">3. Status Network를 위한 Foundry 구성<ahref="#3-status-network를-위한-foundry-구성"class="hash-link"aria-label="3. Status Network를 위한 Foundry 구성에 대한 직접 링크"title="3. Status Network를 위한 Foundry 구성에 대한 직접 링크"></a></h3>
<h3class="anchor anchorWithStickyNavbar_LWe7"id="4-컨트랙트-배포">4. 컨트랙트 배포<ahref="#4-컨트랙트-배포"class="hash-link"aria-label="4. 컨트랙트 배포에 대한 직접 링크"title="4. 컨트랙트 배포에 대한 직접 링크"></a></h3>
<h3class="anchor anchorWithStickyNavbar_LWe7"id="5-컨트랙트와-상호작용">5. 컨트랙트와 상호작용<ahref="#5-컨트랙트와-상호작용"class="hash-link"aria-label="5. 컨트랙트와 상호작용에 대한 직접 링크"title="5. 컨트랙트와 상호작용에 대한 직접 링크"></a></h3>
<h3class="anchor anchorWithStickyNavbar_LWe7"id="6-빠른-상호작용을-위한-cast-명령어">6. 빠른 상호작용을 위한 Cast 명령어<ahref="#6-빠른-상호작용을-위한-cast-명령어"class="hash-link"aria-label="6. 빠른 상호작용을 위한 Cast 명령어에 대한 직접 링크"title="6. 빠른 상호작용을 위한 Cast 명령어에 대한 직접 링크"></a></h3>
<p><code>cast</code>를 사용하여 컨트랙트와 상호작용할 수도 있습니다:</p>
<h3class="anchor anchorWithStickyNavbar_LWe7"id="7-테스트">7. 테스트<ahref="#7-테스트"class="hash-link"aria-label="7. 테스트에 대한 직접 링크"title="7. 테스트에 대한 직접 링크"></a></h3>
<p>테스트 파일 <code>test/HelloWorld.t.sol</code>을 생성합니다:</p>
<divclass="language-solidity codeBlockContainer_Ckt0 theme-code-block"style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><divclass="codeBlockContent_biex"><pretabindex="0"class="prism-code language-solidity codeBlock_bY9V thin-scrollbar"style="color:#bfc7d5;background-color:#292d3e"><codeclass="codeBlockLines_e6Vv"><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">// SPDX-License-Identifier: MIT</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">pragma solidity ^0.8.24;</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">import "forge-std/Test.sol";</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">import "../src/HelloWorld.sol";</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">contract HelloWorldTest is Test {</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> HelloWorld hello;</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> function setUp() public {</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> hello = new HelloWorld();</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> }</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"style="display:inline-block"></span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> function testGreeting() public {</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> assertEq(hello.getGreet(), "Hello, Status Network!");</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"></span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> hello.setGreet("New greeting");</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> assertEq(hello.getGreet(), "New greeting");</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain"> }</span><br></span><spanclass="token-line"style="color:#bfc7d5"><spanclass="token plain">}</span><br></span></code></pre><divclass="buttonGroup__atx"><buttontype="button"aria-label="클립보드에 코드 복사"title="복사"class="clean-btn"><spanclass="copyButtonIcons_eSgA"aria-hidden="true"><svgviewBox="0 0 24 24"class="copyButtonIcon_y97N"><pathfill="currentColor"d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svgviewBox="0 0 24 24"class="copyButtonSuccessIcon_LjdS"><pathfill="currentColor"d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2class="anchor anchorWithStickyNavbar_LWe7"id="추가-리소스">추가 리소스<ahref="#추가-리소스"class="hash-link"aria-label="추가 리소스에 대한 직접 링크"title="추가 리소스에 대한 직접 링크"></a></h2>