페이지 5: 상속, 인터페이스 및 외부 상호 작용

5. 상속, 인터페이스 및 외부 상호 작용

복잡한 시스템을 구축하기 위해서는 계약을 모듈화하고 재사용하며, 다른 계약과 효과적으로 통신하는 방법을 알아야 합니다.

5.1. 상속 (Inheritance)

Solidity는 is 키워드를 사용하여 계약 상속을 지원합니다. 부모 계약의 기능을 자식 계약에서 사용할 수 있습니다.

contract Parent { 
address public creator;
}

contract Child is Parent {
function getCreator() public view returns (address) {
return creator;
}
}

5.2. 인터페이스 (Interfaces)

인터페이스는 함수 선언만 포함하며, 특정 계약이 어떤 기능을 제공하는지 외부에서 알 수 있게 해줍니다. external 함수만 선언할 수 있습니다.

5.3. 외부 계약과의 상호 작용

다른 계약의 함수를 호출하려면, 해당 계약의 인터페이스나 주소를 사용하여 인스턴스를 생성해야 합니다.

// Example: Interacting with an ERC20 token contract 
interface IERC20 {
function transfer(address recipient, uint256 amount) external returns (bool);
}

contract TokenHandler {
function sendToken(address tokenAddress, address recipient, uint256 amount) public {
IERC20 token = IERC20(tokenAddress);
require(token.transfer(recipient, amount), "Token transfer failed.");
}
}

이 가이드의 5단계를 마스터했다면, 이더리움 기반의 실용적이고 안전한 스마트 계약을 개발할 수 있습니다.