블록체인 학습
0 XP

실습: interface 구현하기

인터페이스를 정의하고, 그 인터페이스를 따르는 컨트랙트를 직접 구현해봅니다. 약속(interface)과 구현(컨트랙트)을 분리하는 감각을 익히는 실습입니다.

Counter 컨트랙트가 ICounter 를 is 로 상속하면, ICounter 가 약속한 함수를 빠짐없이 구현하겠다고 컴파일러에 선언하는 셈입니다. 약속된 함수가 하나라도 비어 있으면 컨트랙트는 abstract 가 되어 배포할 수 없습니다. 여기서 눈여겨볼 점은, public 상태 변수가 만들어내는 자동 getter 입니다.

자동 getter로 view 약속 충족하기

count 라는 public uint256 상태 변수를 선언하면, Solidity 가 count() 라는 view getter 함수를 자동으로 생성합니다. 이 자동 getter 가 인터페이스의 count() external view returns (uint256) 약속을 그대로 만족시키므로, 별도로 count() 함수를 작성할 필요가 없습니다.

해야 할 일:

  1. ICounter 인터페이스에는 이미 count() 와 increment() 가 약속되어 있습니다.
  2. Counter 컨트랙트가 ICounter 를 상속(is) 하도록 만드세요.
  3. count 라는 public uint256 상태 변수를 선언하세요. (인터페이스의 count() getter 와 매칭됩니다)
  4. increment 함수를 구현해 count 를 1 증가시키세요. (external override)

public 상태 변수는 같은 이름의 getter 함수를 자동으로 만들어주므로, 인터페이스의 count() view 요구사항을 그대로 만족시킵니다.

Code Editor
에디터를 불러오는 중...
실행 결과

Run 버튼을 눌러 코드를 실행하세요.