인프런 커뮤니티 질문&답변

이용규님의 프로필 이미지

작성한 질문수

[D.P.(DappProject)] 디앱 프로젝트(NFT 생성, NFT 구매 및 판매)

리팩토링 (스마트 컨트랙트 수정) 1

리팩토링 1 강의 getAnimalTokens() 함수 사용 권한 문의

작성

·

144

0

리팩토링 1 강의 13:25초에 setSaleNft(contract_address) 를 실행시켜야 getAnimalTokens() 함수를 사용한다고 하셨는데 왜 실행시켜야 하는지 모르겠습니다..!
import 해오고

SaleAnimalToken public saleAnimalToken;
시점에 사용 할 수있는게 아닌건가요?
saleAnimalToken.sol deploy 할 때도 이미 contract_address 가 등록된 줄 알았는데
setSaleNft(contract_address); 를 한번 실행시켜야 한다는게 잘 이해가 되지 않습니다ㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
네, 님의 질문에 답변드리겠습니다.

리팩토링하는 과정에서 setSaleNft(contract_address)를 호출하는 이유는 해당 함수가 스마트 컨트랙트 간의 연결을 설정하는 역할을 하기 때문입니다. SaleAnimalToken 컨트랙트의 인스턴스를 사용하기 위해서는 먼저 컨트랙트의 주소를 설정해야 합니다.

import 구문은 스마트 컨트랙트 코드를 가져오는 것입니다. 실제 컨트랙트의 인스턴스와 소통하기 위해서는 컨트랙트가 배포된 주소를 이용하여 해당 인스턴스를 지정하는 과정이 필요합니다. 이 때 setSaleNft 함수는 contract_address를 인자로 받아 SaleAnimalToken 컨트랙트와의 연결 주소를 설정하는 역할을 합니다.

즉, import로 코드를 가져왔다고 하더라도, 우리가 실제로 배포된 SaleAnimalToken.sol 컨트랙트와 상호 작용하려면 주소를 통해 연결해주어야 하고, 이는 setSaleNft(contract_address)로 실행됩니다. 다시 말해, 스마트 컨트랙트 주소를 연결해주는 단계가 필요하며, 이를 통해 해당 주소에 배포된 컨트랙트의 함수들을 사용할 수 있게 되는 것입니다.

이해가 되셨기를 바라며, 추가적인 질문이 있으시면 문의해 주시기 바랍니다.