본문으로 건너뛰기
0%

Ethereum에서 다른 스마트 컨트랙트를 호출하는 방법

Alchemy team headshot

작성자 Alchemy

2022년 10월 4일에 게시됨2분 읽기

Solidity에서는 다른 컨트랙트의 함수를 빌려오는 스마트 컨트랙트를 만들 수 있습니다. 함수를 빌려오는 스마트 컨트랙트를 호출 스마트 컨트랙트(caller smart contract), 함수가 빌려지는 대상이 되는 스마트 컨트랙트를 **피호출 스마트 컨트랙트(called smart contract)**라고 부릅니다.

이 글에서는 개발자가 다른 컨트랙트를 호출해야 하는 상황을 설명하고, 예제 코드를 통해 튜토리얼을 진행합니다.

다른 컨트랙트를 호출하는 이유

Ethereum이 블록체인에 가져온 가장 큰 발전 중 하나는 온체인에서 코드를 업로드하고 실행할 수 있게 된 것입니다. 스마트 컨트랙트라고 알려진 이 프로그램들은 블록체인에 업로드되면 수정할 수 없습니다. 누구나 이를 볼 수 있으며, 제대로 작성되었다면 소유자들이 서로를 몰라도 스마트 컨트랙트끼리 상호작용할 수 있어, 사실상 스마트 컨트랙트를 재사용 가능한 라이브러리로 만듭니다. 특정 목적을 위해 작성된 스마트 컨트랙트를 수천 명의 다른 사람들이 호출을 통해 각자의 용도로 재사용할 수 있습니다.

사람들이 다른 스마트 컨트랙트를 호출하는 또 다른 이유는, 프로그래밍 과정에서 원래 작성하던 스마트 컨트랙트가 완성 전에 24,577바이트라는 크기 제한에 도달했기 때문입니다. 이를 우회하기 위해 개발자들은 바이트 제한 이하가 되도록 충분한 수의 함수를 새로운 스마트 컨트랙트로 옮깁니다.

다른 스마트 컨트랙트를 호출하는 예제

한 컨트랙트가 다른 스마트 컨트랙트를 어떻게 호출하는지 보여주기 위해 아래에 두 개의 예제 스마트 컨트랙트를 만들었습니다.

컨트랙트를 호출하고 값을 업데이트하기

이 첫 번째 컨트랙트에서는 CalledContract에 담긴 값이 CallerContract에 의해 업데이트됩니다.

호출과 함께 ETH 보내기

이 두 번째 컨트랙트에서는 CalledContractReceivesEther의 x 값이 CallerContractAndSendEther에 의해 업데이트될 뿐만 아니라, 호출과 함께 ETH도 함께 전송됩니다.

Solidity에 대해 더 알아보는 방법

Solidity를 더 배우고 싶으신가요? 최근 Solidity 교육 플랫폼인 ChainShot을 인수함에 따라, Alchemy University는 원래 3,000달러짜리 인증 부트캠프였던 7주 과정의 Ethereum developer crash course를 무료로 대중에게 제공하고 있습니다. 지금 바로 자리를 확보하세요!

개발 전반이 처음이라면, Ethereum 부트캠프를 시작하기 전 사전 과정으로 Alchemy의 3주 JavaScript crash course가 좋은 선택입니다.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.