Documentation Index
Fetch the complete documentation index at: https://daehan-base.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Base 배포 퀵스타트 가이드에 오신 것을 환영합니다! 이 종합 가이드는 환경을 설정하고 Base에 스마트 컨트랙트를 배포하는 방법을 안내합니다. 숙련된 개발자든 이제 막 시작하는 분이든, 이 가이드가 도움이 될 것입니다.
달성 목표
이 퀵스타트를 마치면 다음을 할 수 있습니다:
- Base에 배포하기 위한 개발 환경 설정
- Base에 스마트 컨트랙트 배포
- 프론트엔드를 스마트 컨트랙트에 연결
왜 Base인가?Base는 다음 10억 명의 사용자를 온체인으로 온보딩하기 위해 구축된 빠르고, 저렴하며, 빌더 친화적인 이더리움 L2입니다. 이 가이드를 따르면, 글로벌 온체인 경제를 구축하고 있는 활발한 개발자, 창작자, 혁신가 생태계에 합류하게 됩니다.
개발 환경 설정
- 새 프로젝트 디렉토리 생성
mkdir my-base-project && cd my-base-project
- 스마트 컨트랙트 개발을 위한 강력한 프레임워크인 Foundry 설치
curl -L https://foundry.paradigm.xyz | bash
foundryup
이 명령은 Foundry를 설치하고 최신 버전으로 업데이트합니다.
- 새 Solidity 프로젝트 초기화
이제 Foundry 프로젝트가 준비되었습니다. src 디렉토리에서 예제 컨트랙트를 찾을 수 있으며, 자신의 컨트랙트로 교체할 수 있습니다. 이 가이드에서는 /src/Counter.sol에 제공된 Counter 컨트랙트를 사용합니다.
Foundry는 이더리움 애플리케이션 개발을 위한 도구 모음을 제공합니다. Forge(테스팅용), Cast(체인과 상호작용), Anvil(로컬 노드 설정)이 포함됩니다. Foundry에 대해 더 알아보려면 여기를 참조하세요.
Base로 Foundry 설정
스마트 컨트랙트를 Base에 배포하려면 두 가지 핵심 요소가 필요합니다:
- Base 네트워크와 상호작용하기 위한 노드 연결
- 컨트랙트를 배포하기 위한 자금이 있는 프라이빗 키
두 가지를 모두 설정해보겠습니다:
1. 노드 연결 설정
- 프로젝트 루트 디렉토리에
.env 파일 생성
.env 파일에 Base 네트워크 RPC URL 추가
BASE_RPC_URL="https://mainnet.base.org"
BASE_SEPOLIA_RPC_URL="https://sepolia.base.org"
- 환경 변수 로드
Base Sepolia는 Base의 테스트 네트워크로, 이 가이드의 나머지 부분에서 사용됩니다. 여기에 나열된 파우셋에서 무료 Base Sepolia ETH를 받을 수 있습니다.
2. 프라이빗 키 보안
- Foundry의 보안 키스토어에 프라이빗 키 저장
cast wallet import deployer --interactive
- 프롬프트가 표시되면 프라이빗 키와 비밀번호를 입력합니다.
프라이빗 키는 git에서 추적하지 않는 ~/.foundry/keystores에 저장됩니다.
절대로 프라이빗 키를 공유하거나 커밋하지 마세요. 항상 안전하게 보관하고 신중하게 취급하세요.
컨트랙트 배포
이제 환경이 설정되었으니, Base Sepolia에 컨트랙트를 배포해보겠습니다.
- (선택 사항) 먼저 드라이 런을 수행하여 배포를 시뮬레이션하고 모든 것이 올바르게 설정되었는지 확인합니다:
forge create ./src/Counter.sol:Counter --rpc-url $BASE_SEPOLIA_RPC_URL --account deployer
이는 네트워크에 트랜잭션을 브로드캐스트하지 않고 시뮬레이션을 수행합니다. 트랜잭션 세부 정보와 컨트랙트 ABI를 볼 수 있지만 실제 배포는 발생하지 않습니다.
--broadcast 플래그를 추가하여 컨트랙트를 배포합니다:
forge create ./src/Counter.sol:Counter --rpc-url $BASE_SEPOLIA_RPC_URL --account deployer --broadcast
--broadcast 플래그는 실제로 컨트랙트를 네트워크에 배포하기 위해 필수입니다. 이 플래그 없이는 Foundry가 드라이 런 시뮬레이션만 수행합니다.
배포되는 컨트랙트의 형식은 <contract-path>:<contract-name>입니다.
- 배포가 성공하면 다음과 같은 출력이 표시됩니다:
Deployer: 0x...
Deployed to: 0x... <-- 귀하의 컨트랙트 주소
Transaction hash: 0x...
- 배포된 컨트랙트 주소를 복사하여
.env 파일에 추가합니다:
COUNTER_CONTRACT_ADDRESS="0x..."
0x...를 위 출력에서 실제 배포된 컨트랙트 주소로 교체하세요.
- 새 환경 변수 로드:
.env 파일을 수정한 후에는 현재 터미널 세션에서 새 변수를 로드하기 위해 source .env를 실행해야 합니다.
배포 확인
컨트랙트가 성공적으로 배포되었는지 확인하려면:
- 트랜잭션 해시를 사용하여 Sepolia Basescan에서 트랜잭션 확인
cast 명령을 사용하여 커맨드 라인에서 배포된 컨트랙트와 상호작용:
cast call $COUNTER_CONTRACT_ADDRESS "number()(uint256)" --rpc-url $BASE_SEPOLIA_RPC_URL
이 명령을 실행하기 전에 .env 파일에 COUNTER_CONTRACT_ADDRESS를 추가하고 source .env를 실행했는지 확인하세요. 그렇지 않으면 환경 변수가 정의되지 않아 명령이 실패합니다.
이는 Counter 컨트랙트의 number 스토리지 변수의 초기값인 0을 반환합니다.
축하합니다! Base Sepolia에 스마트 컨트랙트를 배포했습니다!
다음 단계
- wagmi 또는 viem을 사용하여 프론트엔드를 컨트랙트에 연결하세요.
- Foundry 튜토리얼에서 Foundry를 사용하여 커맨드 라인에서 컨트랙트와 상호작용하는 방법에 대해 더 알아보세요.