블록체인 학습
0 XP

실습: struct 선언하고 인스턴스 저장하기

이번 실습에서는 구조체(struct) 를 선언하고, 그 타입으로 만든 인스턴스를 상태 변수에 저장합니다. 도서관에서 "이 달의 추천 도서" 한 권을 보관하는 상황을 떠올려 보세요. 책 한 권은 제목과 출판 연도라는 두 값을 항상 함께 가지므로, struct 로 묶기에 딱 좋은 데이터입니다.

제목과 연도를 따로 변수 두 개로 두면 "같은 책의 정보"라는 관계가 코드에 드러나지 않습니다. Book struct 로 묶으면 한 권의 정보가 하나의 단위로 움직이고, 이를 public 상태 변수 에 담으면 블록체인에 영구 저장되며 자동 생성된 getter로 외부에서 조회까지 가능합니다. 인스턴스를 만들 때는 이름 기반 생성({ ... })을 쓰면 어떤 값이 어느 필드인지 한눈에 보입니다.

해야 할 일:

  1. BookShelf 컨트랙트 안에 Book 이라는 struct 를 선언하세요.
    • string title (제목)
    • uint256 year (출판 연도)
  2. Book 타입의 featured 라는 public 상태 변수 를 선언하세요.
  3. setFeatured(string memory _title, uint256 _year) 함수를 만들어 featured 에 새 Book 을 저장하세요.

이름 기반 생성 Book({ title: _title, year: _year }) 을 사용하면 가독성이 좋습니다. featured 가 public 이므로 getter 가 자동 생성됩니다.

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

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

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