블록체인 학습
0 XP

실습: 생성자로 초기화하기

생성자는 배포 시점에 단 한 번 실행되어 컨트랙트의 초기 상태를 정합니다. 이후에는 다시 호출할 수 없으므로, "처음 한 번만 정하고 싶은 값"을 설정하기에 알맞습니다. 대표적인 예가 소유자(owner) 와 생성 시각 입니다.

생성자 안에서 msg.sender 는 컨트랙트를 배포한 주소를 가리키고, block.timestamp 는 그 블록의 시각(초 단위 Unix time)을 가리킵니다. 두 전역 값을 읽어 상태 변수에 저장하면, 배포된 순간의 맥락을 영구히 기록할 수 있습니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
 
contract Example {
    address public deployer;
    constructor() {
        deployer = msg.sender; // 배포자를 기록하는 전형적인 패턴
    }
}

이번 실습에서는 생성자를 사용해 소유자와 생성 시각을 기록하는 컨트랙트를 만듭니다.

해야 할 일:

Owned 컨트랙트를 다음 조건에 맞게 완성하세요.

  1. owner : address 타입의 public 상태 변수
  2. createdAt : uint256 타입의 public 상태 변수
  3. 생성자 안에서
    • owner 를 배포자(msg.sender)로 설정
    • createdAt 을 현재 블록 시각(block.timestamp)으로 설정

msg.sender 는 생성자 안에서 컨트랙트를 배포한 주소를 가리킵니다. block.timestamp 는 현재 블록의 타임스탬프(초 단위 Unix time)입니다.

완성 후 Run 을 눌러 모든 조건을 통과하는지 확인하세요.

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

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