블록체인 학습
0 XP

실습: struct 배열로 사용자 등록부 만들기

이번에는 한 건이 아니라 여러 건의 데이터를 다룹니다. 앞 실습에서는 책 한 권을 상태 변수에 저장했지만, 실제 서비스는 사용자가 수십·수백 명입니다. 같은 모양(이름, 점수)의 데이터가 여러 개라면 struct 배열 이 정답입니다. 게임 점수판, 회원 명단, 게시글 목록 등 대부분의 "목록형" 기능을 이 패턴으로 만듭니다.

User[] public users; 처럼 선언한 동적 배열은 길이가 고정되어 있지 않아, 등록이 일어날 때마다 push 로 끝에 새 요소를 덧붙일 수 있습니다. 저장된 사용자 수는 users.length 로 언제든 알 수 있고, users 가 public 이라 인덱스 getter가 자동 생성됩니다.

해야 할 일:

  1. UserRegistry 컨트랙트 안에 User struct 를 선언하세요.
    • string name
    • uint256 score
  2. User 타입의 public 동적 배열 users 를 선언하세요.
  3. register(string memory _name, uint256 _score) 함수로 새 User 를 users 에 push 하세요.
  4. total() 함수로 등록된 사용자 수를 반환하세요. (returns (uint256))
배열의 길이는 users.length 로 얻을 수 있습니다.

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

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

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