Tech Lab2 min read

스마트 컨트랙트 배포 과정: 컴파일부터 온체인 배포까지

스마트 컨트랙트는 컴파일을 통해 EVM이 이해하는 형태로 변환된 뒤, 배포 트랜잭션을 통해 블록체인에 저장됩니다. Truffle·Hardhat 기준으로 전체 흐름을 한눈에 정리합니다.

#스마트컨트랙트#컴파일#배포#Solidity#EVM

이 글을 통해 Solidity 스마트 컨트랙트가 어떻게 블록체인에 배포되는지를 단계별로 이해하고, 개발 도구(Truffle·Hardhat) 기준의 실제 흐름을 파악할 수 있습니다.

컨트랙트 배포과정

스마트 컨트랙트 배포 과정 개요

스마트 컨트랙트를 블록체인 네트워크에 올리는 과정은 크게 두 단계로 나뉩니다.

  1. 컴파일(Compile)
    Solidity 소스 코드를 EVM이 이해할 수 있는 바이트코드(Bytecode)ABI로 변환합니다.
  2. 배포(Deploy)
    생성된 바이트코드를 트랜잭션으로 전송해 블록체인에 저장합니다.

이 두 단계는 EVM 기반 스마트 컨트랙트 개발에서 반드시 거쳐야 하는 기본 절차입니다.

컴파일(Compile)

컴파일은 사람이 읽는 Solidity 코드를 머신이 실행 가능한 형태로 바꾸는 과정입니다.

실행 명령어

truffle compile
# 또는
npx hardhat compile

컴파일 단계에서 수행되는 작업

  • .sol 파일을 바이트코드(.bin) 로 변환
  • 컨트랙트 외부와 상호작용하기 위한 ABI(Application Binary Interface) 생성
  • 컴파일 결과를 JSON 형태로 저장

컴파일 결과물 예시 구조

// Truffle
build/
└── contracts/
    └── SimpleContract.json  # 바이트코드 + ABI 포함

// Hardhat
artifacts/
└── contracts/

컴파일은 배포 이전에 반드시 수행되는 준비 단계이며, 이 결과물이 있어야 배포가 가능합니다.

배포(Deploy)

배포는 컴파일된 바이트코드를 실제 블록체인 상태(state) 에 기록하는 과정입니다.

배포 시 일어나는 일

  • 스마트 컨트랙트 배포용 트랜잭션 생성
  • 트랜잭션이 블록에 포함되며 컨트랙트 코드가 온체인에 저장
  • 컨트랙트 주소(Address) 가 생성되어 반환

배포 이후 상태

  • 블록체인에 스마트 컨트랙트 코드가 영구 저장됨
  • 고유한 컨트랙트 주소가 부여됨
  • 해당 주소를 통해 함수 호출 및 상태 조회 가능

컴파일 vs 배포 비교

구분컴파일배포
목적실행 가능한 코드 생성블록체인에 코드 저장
결과바이트코드 + ABI컨트랙트 주소
온체인 여부오프체인온체인
비용없음가스 비용 발생

주의: 컴파일은 무료지만, 배포는 트랜잭션이므로 반드시 가스 비용이 발생합니다.

정리

  • 컴파일은 Solidity 코드를 EVM이 이해할 수 있는 형태로 바꾸는 단계
  • 배포는 변환된 코드를 트랜잭션으로 블록체인에 기록하는 단계

참고 링크

다음으로 읽어볼 글