블록체인 학습
0 XP

실습: mapping + struct 로 회원 관리

주소별로 회원 정보를 묶어 저장하는 컨트랙트를 만들어봅시다. mapping 의 value 로 struct 를 두어 여러 필드를 하나의 key 에 묶는 패턴을 익히는 실습입니다.

회원 한 명에게는 이름·나이 등 여러 정보가 필요합니다. 정보마다 mapping 을 따로 두는 대신, struct 로 묶어 mapping(address => User) 하나로 관리하면 코드가 훨씬 깔끔해집니다. mapping 안의 struct 는 storage 에 저장되므로 users[키].필드 로 직접 읽고 쓸 수 있습니다.

핵심 문법 복습

  • 통째로 저장: users[키] = User(name, age);
  • 필드 하나만 읽기: users[키].age
  • 저장 전 key 는 모든 필드가 기본값(빈 문자열, 0)인 struct 를 돌려줍니다.

해야 할 일:

  1. UserRegistry 컨트랙트 안에 name(string)과 age(uint256) 필드를 가진 User struct 를 선언하세요.
  2. 주소를 User 에 연결하는 public mapping users 를 선언하세요.
  3. register(string memory name, uint256 age) 함수를 만들어 msg.sender 의 정보를 저장하세요.
  4. getAge(address user) 함수를 만들어 해당 주소의 나이를 반환하세요. (view, returns (uint256))

struct 의 필드 선언 순서와 User(...) 에 넘기는 인자 순서가 일치해야 합니다.

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

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